坦克世界的流光溢彩-新年灯

开始播放视频。(这不完全是流光溢彩,它是水箱运行状况的颜色指示器)。由于我用一只手拍摄,而我尝试用第二只手播放,因此视频在摇摆和晃动。


在制造业中,一切都变得非常简单。

必要的成分:

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(); // This initializes the NeoPixel library.
    Serial.begin(9600);
    while (!Serial) {
    ; // wait for port to be ready
  }
  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即将到来!

Source: https://habr.com/ru/post/zh-CN400461/


All Articles