рдЯреИрдВрдХреЛрдВ рдХреА рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП Ambilight - рдирдП рд╕рд╛рд▓ рдХреА рд░реЛрд╢рдиреА

рд╡реАрдбрд┐рдпреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред (рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ Ambilight рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдЯреИрдВрдХ рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХрд╛ рдПрдХ рд░рдВрдЧ рд╕рдВрдХреЗрддрдХ рд╣реИ)ред рд╡реАрдбрд┐рдпреЛ рдЭреВрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣рд┐рд▓ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рд╣рд╛рде рд╕реЗ рд╢реВрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рдореИрдВ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред


рд╕рдм рдХреБрдЫ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдмрд╣реБрдд рд╕рд░рд▓ рдирд┐рдХрд▓рд╛ред

рдЖрд╡рд╢реНрдпрдХ рд╕рд╛рдордЧреНрд░реА:

1. Arduino - рдХреНрдпрд╛ рд╣реИ;
2. WS2812B рдПрд▓ рдИ рдбреА (рдореИрдВрдиреЗ рдЕрдВрдЧреВрдареА рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ - рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЦрд░реАрджрд╛, рдЕрдм рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛);
3. рдЯрдВрдХрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдореЙрдб ред рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдореЛрдб рдХреЛ рдХреЛрд░рдЯрд╛рд░рдХреЛ_ рдУ рдиреЗ рдХреЛрд░рдЯреНрд░реИрдВрдб рдлреЛрд░рдо рд╕реЗ рд▓рд┐рдЦрд╛ рдерд╛ , рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рджред рдореЙрдб рд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдХреЛрдб рд╕рдВрд▓рдЧреНрди рд╣реИрдВ;
4. рдкреАрд╕реА рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрдиред - рдмрд┐рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрд░реЛрдд рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВред

рдпрд╣ рдмрд╣реБрдд рд╕реБрдВрджрд░ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рджреЛ рддрд░рдлрд╛ рдЯреЗрдк рдкрд░ рдПрдХ рдореЙрдирд┐рдЯрд░ рд╕реЗ рдЪрд┐рдкрдХрд╛ рджрд┐рдпрд╛ред

рдЫрд╡рд┐

рд▓реЗрдХрд┐рди! рд╡рд┐рд╡рд░рдг рдиреНрдпреВрдирддрдоред рдореИрдВ рдЖрдкрдХреЛ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдХрдбрд╝рд╛рдИ рд╕реЗ рдиреНрдпрд╛рдп рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВ, рдпрд╣ рдПрдХ рддрд┐рд░рдЫрд╛ рд╡рдХреНрд░ рд╣реИ :) рдореИрдВ рдПрдХ рдХреЙрдкреА рдкреЗрд╕реНрдЯрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реВрдВ :) рдЬреЛ рдХреЛрдИ рднреА рдЗрд╕реЗ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд░реАрдореЗрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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 # рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо

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 рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ PC рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдмрджрд▓реЗ рдореЗрдВ, xml рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ arduine рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рд░рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

PS рдпрд╣ рд╕рдм рдЕрдВрддрд┐рдо рд░реВрдк рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕рдорд╛рдкреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ... рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореИрдВ рд╕реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ :) рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА

рдкреАрдкреАрдПрд╕ !

Source: https://habr.com/ru/post/hi400461/


All Articles