Pour démarrer la vidéo. (Ce n'est pas exactement Ambilight - c'est un indicateur de couleur de la santé du réservoir). La vidéo oscille et tremble du fait que je tire avec une main, j'essaye de jouer avec la seconde.Dans la fabrication de tout s'est avéré très simple.Ingrédients nécessaires:1. Arduino - ce qui est;2. LED WS2812B (j'ai utilisé la bague - je l'ai achetée longtemps, maintenant j'ai décidé de l'appliquer);3. Mod pour réservoirs . Le mod de mon projet a été écrit par un ami Kotyarko_O du forum koreanrandom, pour lequel un merci spécial à lui. Dans l'archive avec les codes source mod sont attachés;4. L' application pour le PC. - dans l'archive la source et l'application dans le dossier bin.Il n'a pas l'air très beau, je l'ai collé à un moniteur sur une bande double face.MAIS! Détails minimum. Je vous demande de ne pas juger strictement pour le code, c'est une courbe oblique :) Je suis un programmeur de copie pasteur :) Celui qui ne l'aime pas beaucoup, vous pouvez le refaire magnifiquement et pratiquement par vous-même.Code Arduino#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();
}
}
}
Un programme pour PC écrit en 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-
}
Eh bien, c'est tout, respectivement. Cela fonctionne de la manière la plus simple. Le mod pour les réservoirs ajoute toutes les informations nécessaires au fichier xml, et l'application PC, à son tour, lit le xml et transfère toutes les informations à l'arduine, qui à son tour contrôle la couleur.PS Tout cela peut être finalisé, complété, terminé, amélioré ... Mais déjà j'ai envie de dormir :)PPS Tout à venir!