Art-Net гейт на базе Arduino

Нет, она в этом (WiFi) случае бесполезна .

Всем привет! собрал девайс на Arduino uno. Работает не стабильно. зависает. блоки питания менял. в коментариях ничего толком не нашел. может кто сталкивался?

Нужно использовать Arduino  MEGA. Вероятно будет работать нормально на Arduino Leonardo.

А предыдущие коментарии по поводу УНО ничему не учат ?

Всем привет, Скажите можно ли настроить два artnet node на базе ардуино уно на разные юниверсы или они оба будут только по первому?

С Arduino uno разобрались - не работает. Нужно использовать ка минимум Arduino Mega. У Меги есть 4 выхода TX,TX1,TX2,TX3, то есть можно сделать четыре выхода DMX с разными адресами.

Ну у меня вроде работает. Но вопрос можно ли поменять юниверс скажем с первого на третий если он всего один, а то получаеься что несколько устройсв и все по первому юниверсу работают

 

Если исходники прошивки есть - то легко. А если нужен второй выход то придётся делать SoftwareSerial - производительности может не хватить.

исходники есть. А что нужно сделать?

Изменить стартовый адрес, с которого начинается приём из Artnet.

Прошивка на 4 юниверса под мегу но они отключены, в работе только один и везде стартовый адрес 1. 

Можно уточнить что на что поменять?

Нужно найти место где происходит приём данных и пропустить ненужные данные до нужного адреса, а затем принять сколько требуется.

Спасибо, приблизительно понял, буду пробовать

Я не силен в прошивках)) может подскажите что нужно сделать, чтобы 1 юниверс стал 3, Вот прошивка которой я пользуюсь

dmx_artnet_node_v0.2.zip

Самое простое решение подправить в файле Udp.cpp процедуру чтения пакета из порта

Примерно вот так: 

 

int UdpClass::readPacket(uint8_t * buf, uint16_t bufLen, uint8_t *ip, uint16_t *port) {   int packetLen = available()-8; //skip UDP header;   if(packetLen < 0 ) return 0; // no real data here       if(packetLen > (int)bufLen) {     //packet is too large - truncate     //HACK - hand-parse the UDP packet using TCP recv method     uint8_t tmpBuf[8];     int i;     //read 8 header bytes and get IP and port from it     recv(_sock,tmpBuf,8);     ip[0] = tmpBuf[0];     ip[1] = tmpBuf[1];     ip[2] = tmpBuf[2];     ip[3] = tmpBuf[3];     *port = tmpBuf[4];     *port = (*port <<8 + tmpBuf[5];

    i=0;     while (i++<1024){       recv(_sock,tmpBuf,1);     }

    //now copy first (bufLen) bytes into buf             for(i=0;i<(int)bufLen;i++) {       recv(_sock,tmpBuf,1);       buf_=tmpBuf[0];__    } _

 

Не выводятся данные.

Пришлось поменять  MAC, с адресом по умолчанию устройство не видно в сети 

Spoiler

uint8_t factory_mac          [6] = {   0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // the mac address of node //uint8_t factory_mac          [6] = {   1,   2,   3,   0,   0,  10}; // the mac

 

Настраивал сеть под 192.168.100.1

Spoiler

uint8_t factory_mac          [6] = {   0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // the mac address of node uint8_t factory_localIp      [4] = {   192,   168,   100,  10};           // the IP address of node uint8_t factory_broadcastIp  [4] = {   192, 168, 100, 255};           // broadcast IP address uint8_t factory_gateway      [4] = {   192,   168,   100,   1};           // gateway IP address (use ip address of controller) uint8_t factory_subnetMask   [4] = { 255,   255,   255,   0};           // network mask (art-net use ‘A’ network type)

 

Результат

Clip.thumb.jpg.2f2aa88761a298a6c7ec5399b55c8bce.jpg

Подскажите как настроить или куда копать дальше?

Вот получилось собрать, все работает. На ардуино мега работает, на ардуино уно не захотело. 

DIY ArtNet DMX контроллер

На ардуино УНО тоже работает НО… У меня на оригинальном УНО всё отлично, а на УНО от Robotdyn - написано “совместимость 100%” -  Ethernet Shield глючит, полноценно не работает.

Ну у меня как бы на ардуино Уно запустилось но коряво работало, световой прибор плохо откликался и его дёргало. Хотя я ставил оригинал ардуино Уно. А поставил мега и все норм работало без всяких проблем.