Добрый суток, есть лента WS2812 и UNO, написал скетч управления адреской через comport, и на Python + Flask написал страницу управления, чтобы можно было в локальной сети управлять лентой с любого устройства, сайт конечно с сокетом, и всё шикарно, но когда меняю цвет ленты есть шумы из-за большого количества команд, если менять цвет всей ленты это не критично, но вот по секторам уже не ахти, и это всё нужно для фотосъемок, может кто поможет.
Код:
#define COLOR_DEBTH 2
#include <microLED.h>
#include <GParser.h>
#define STRIP_PIN 6
#define NUMLEDS 150
microLED< NUMLEDS, STRIP_PIN, -1, LED_WS2812, ORDER_GRB> strip;
void fillLent(int *data){
strip.clear();
strip.fill(mRGB(data[1],data[2],data[3]));
strip.show();
}
void setup()
{
Serial.begin(115200);
Serial.setTimeout(5);
strip.fill(mRGB(0,255,0));
strip.setMaxCurrent(2);
strip.show();
}
void loop()
{
if (Serial.available()) {
char str[500];
int amount = Serial.readBytesUntil(';', str, 500);
str[amount] = NULL;
GParser data(str, ',');
int ints[16];
int am = data.parseInts(ints);
if (ints[0] == 0){
fillLent(ints);
}
}
Код:
from flask import Flask, render_template, redirect, request
from PIL import ImageColor
from flask_socketio import SocketIO
import serial
arduino = serial.Serial(port='COM11', baudrate=115200, timeout=.1)
def write_read(x):
arduino.write(bytes(x, 'utf-8'))
@socketio.on('color1')
def color1(data):
color = data.get("data")
color = ImageColor.getcolor(color, "RGB")
color = f'0,{color[0]},{color[1]},{color[2]}'
write_read(color)
Изменено: