Всем хелло) Появился сторонний вопрос по Processing. Как получить цвет прямоугольника к примеру 16 на 16 пикселей и по углам монитора? Нужно для проекта по типу “фоновая подсветка монитора”. Программа на processing будет отправлять цвета в каком-нибудь формате, ардуинка будет получать эти цвета, и зная каждый цвет будет показывать на адреску градиент. Знаю программку AmbiBox, но по словам Гувера ( от него и мысль моего проекта ) она нагружает процессор. И в правду зашёл в ту-же КС2 и начала нереально лагать. Выключил программу - всё как обычно. Надеюсь на помощь. Вот что уже сделал:
int speed = 9600;
int wle = 1;
String portName;
import processing.serial.*;
Serial serial;
import controlP5.*;
ControlP5 cp5;
void setup(){
size(400, 200);
surface.setTitle("Glow Pro v 1.0 ");
cp5 = new ControlP5(this);
cp5.addScrollableList("comlist").close();
cp5.addButton("refresh").setPosition(105, 0);
cp5.addButton("strip_ON").setPosition(180, 0);
cp5.addButton("stripOFF").setPosition(255, 0);
}
void refresh() {
String list[] = Serial.list();
cp5.get(ScrollableList.class, "comlist").addItems(list);
}
void comlist(int n) {
portName = Serial.list()[n];
}
void strip_ON() {
serial = new Serial(this, portName, speed);
}
void strip_OFF() {
serial.stop();
}
void draw(){
background(120);
if (serial != null ) {
}
}
Я, конечно, могу путать (так как сам никогда подобное не дела, а лишь читал о таком), но на сколько знаю амбибокс делает скриншот экрана и вычисляет цвета и интенсивность по сделанному скриншоту. Потому и тормозить может всё.
Вроде бы у того же гувера был проект с определением цвета и интенсивности сторонними датчиками, прикрепленными к экрану (а может и не у него, не помню).
VNC (то же самое что скришотить, но можно переложить нагрузку на другой комп, например атом соплерон или raspberry)
камера + opencv. OBS + opencv. возможно есть ещё плуги к obs. в конце концов, она умеет процессить фильтрами. есть даже плуг-шейдерпроцессор, так и называется obs-shader-plugin
FPGA в разрыв видеокабеля.
(тоже лютый колхоз но технически проще чем FPGA) - врезаться в разрыв кабелей LVDS (на выводы матрицы грубо говоря)
про амбибокс: скриншот скриншоту рознь.
писать его можно на диск или в оперативную память (гуглим imdisk-tk)
считать RMS цвета можно целочисленным или FP способом
считать можно на компилируемом или интерпретируемом языке
и т д.
я лично прелагаю 1 как самое простое. vnc позволяет объявлять области экрана на отдельные порты, по умолчанию в tcp 5900 идёт экран целиком. но можно брать куски не только со второго монитора, но и с основного. и куски могут быть например очень длинным “экраном” с соотношением 1280:16, который vnc будет отдавать в порт 5901. вверху экрана. внизу - в 5902. и т д.
потом это останется через сеть собрать и юзать. можно даже в eth shield, но скорее всего на mega2560 т к обычная 328 захлебнётся от трафика (у неё всего 2 кб мозгов).
хз конечно, но я думаю это самый простой способ.
upd. но это чисто первое впечатление, imo видеозахват через obs должен быть производительнее. VNC это очень древняя технология, примерно 1996 года.