开始播放视频。(这不完全是流光溢彩,它是水箱运行状况的颜色指示器)。由于我用一只手拍摄,而我尝试用第二只手播放,因此视频在摇摆和晃动。在制造业中,一切都变得非常简单。必要的成分:1. Arduino-什么;2. WS2812B LED(我用了戒指-我买了很长时间,现在决定使用它);3. Mod for tanks。我项目的mod是由koreanrandom论坛的一位朋友Kotyarko_O编写的,对此特别感谢。在带有mod的存档中,附加了源代码。4. PC 的应用程序。-在归档文件中bin文件夹中的源和应用程序。它看起来不是很漂亮,我用双面胶带将其粘贴到显示器上。但是!细节最少。我要求您不要严格地对代码进行判断,这是一条倾斜的曲线:)我是复制粘贴程序的程序员:)谁不喜欢它,您都可以在美观和实用方面对其进行重新制作。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();
}
}
}
用C#编写的PC程序
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-
}
好吧,仅此而已。它以最简单的方式工作。坦克的mod将所有必要的信息添加到xml文件中,然后PC应用程序读取xml并将所有信息传输到arduine中,而后者又控制了颜色。PS所有这些都可以最终确定,完成,完成,改进……但是我已经想睡觉了:)PPS即将到来!