Para comenzar el video. (Esto no es exactamente Ambilight, es un indicador de color de la salud del tanque). El video se balancea y tiembla debido al hecho de que disparo con una mano, trato de jugar con la segunda.En la fabricaci贸n de todo result贸 muy simple.Ingredientes necesarios:1. Arduino - lo que es;2. LED WS2812B (us茅 el anillo; lo compr茅 mucho tiempo, ahora decid铆 aplicarlo);3. Mod para tanques . El mod para mi proyecto fue escrito por un amigo Kotyarko_O del foro koreanrandom, por lo que le agradezco especialmente. En el archivo con los c贸digos fuente mod se adjuntan;4. La aplicaci贸n para PC. - en el archivo, la fuente y la aplicaci贸n en la carpeta bin.No se ve muy hermoso, lo pegu茅 a un monitor en una cinta de doble cara.PERO! Detalles m铆nimos. Le pido que no juzgue estrictamente el c贸digo, es una curva inclinada :) Soy un programador de copia pasteur :) A quien no le guste mucho, puede rehacerlo de manera hermosa y pr谩ctica.C贸digo 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 programa para PC escrito 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-
}
Bueno, eso es todo, respectivamente. Funciona de la manera m谩s simple. El mod para tanques agrega toda la informaci贸n necesaria al archivo xml, y la aplicaci贸n para PC, a su vez, lee el xml y transfiere toda la informaci贸n al arduine, que a su vez controla el color.PD: Todo esto se puede finalizar, completar, terminar, mejorar ... Pero ya quiero dormir :)PPS 隆 Todo con la llegada!