لبدء الفيديو. (هذه ليست Ambilight بالضبط - إنها مؤشر لون لصحة الخزان). يتأرجح الفيديو ويهتز لأنني أصور بيد واحدة ، أحاول اللعب باليد الثانية.في تصنيع كل شيء اتضح بسيط جدا.المكونات الضرورية:1. Arduino - ما هو ؛2. WS2812B LEDs (استخدمت الحلقة - اشتريتها لفترة طويلة ، والآن قررت تطبيقها) ؛3. وزارة الدفاع للدبابات . تمت كتابة التعديل لمشروعي من قبل صديق Kotyarko_O من منتدى koreanrandom ، والذي شكر خاص له. في الأرشيف مع رموز مصدر وزارة الدفاع المرفقة.4. تطبيق للكمبيوتر. - في أرشيف المصدر والتطبيق في مجلد سلة المحذوفات.لا يبدو جميلًا جدًا ، قمت بلصقه على شاشة على شريط مزدوج الجوانب.لكن! تفاصيل الحد الأدنى. أطلب منك عدم الحكم بدقة على الشفرة ، فهو منحنى مائل :) أنا مبرمج نسخ الباستر :) من لم يعجبه كثيرًا ، يمكنك إعادة صنعه بشكل جميل وعملي لنفسك.كود اردوينو#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 6
#define NUMPIXELS 8
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
String ser;
int red = 0;
int green =0;
void setup() {
pixels.begin();
Serial.begin(9600);
while (!Serial) {
;
}
Serial.setTimeout(100);
}
void loop() {
if (Serial.available() > 0)
{
ser = Serial.readString();
if (ser != "end")
{
green = ser.toInt()*2;
red = green-100;
for(int i=0;i<NUMPIXELS;i++)
{
pixels.setPixelColor(i, pixels.Color(red,green,0));
}
pixels.show();
}
else
{
for(int i=0;i<NUMPIXELS;i++)
{
pixels.setPixelColor(i, pixels.Color(0,0,0));
}
pixels.show();
}
}
}
برنامج للكمبيوتر مكتوب بلغة C #
private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
SerialPort serialPort1 = new SerialPort();
doc.Load(@«C:\World_of_Tanks\res_mods\0.9.17.0.1\scripts\client\gui\mods\mod_ArduinoHP.xml»);
string maxHealth = doc.DocumentElement.ChildNodes[0].InnerText;
string currentHealth = doc.DocumentElement.ChildNodes[1].InnerText;
string healthProgress = doc.DocumentElement.ChildNodes[2].InnerText;
serialPort1.PortName = «COM13»; // COM-, Arduino
serialPort1.Open(); // COM-
if (healthProgress != "")
{
serialPort1.Write(healthProgress);
}
else
serialPort1.Write(«end»);
serialPort1.Close(); // COM-
}
حسنًا ، هذا كل شيء على التوالي. يعمل في أبسط طريقة. يضيف التعديل الخاص بالصهاريج جميع المعلومات الضرورية إلى ملف xml ، ويقرأ تطبيق الكمبيوتر بدوره xml وينقل جميع المعلومات إلى arduine ، والتي بدورها تتحكم في اللون.PS يمكن الانتهاء من كل هذا ، والانتهاء ، والانتهاء ، وتحسين ... ولكن بالفعل أريد النوم :)PPS كل ذلك مع القادمة!