Ангел-шоу — комплекс устройств и программ для управления светодиодными костюмами
Проект создания светодиодного костюма, в моем случае управляемого с компьютера (нетбук) с ОС Linux.
Костюм управляетя удаленно, используется радиомодули FS1000A, работающие на частоте 433 МГц
Приемник и передатчик
Компонеты комплекса
1) компьютер OC Linux, на котором установлена программа — редактор сценариев для управления RGB светодиодной лентой
2) передатчик — плата Arduino, соединенная по последовательному порту с нетбуком, на плате установлен передатчик FS1000A
3) приемники — платы Arduino — контроллеры RGB-лент, c установленными приемниками FS1000A
Приемников несколько — каждый управляет своей светодиодной лентой,
каждый приемник имеет свой код
Схема передатчика
Печатная плата не создавалась, внешний вид устройства
Схема приемник
Транзисторы TIP120
Печатная плата сразу на 2 приемника
Файл в формате lay в архиве в конце статьи
И внешний вид
Программа — редактор сценариев (написана на python, используются библиотеки Tkinter (графический интерфейс) и pygame (использовал только для встраивания медиапроигрывателя))
состоит из 6 окон
— выбор сценария;
— просмотр сценария;
— подбор цвета;
— настройки (порт подключения, коды для устройств)
— редактирование сценария;
— звуковая шкала.
каждое из которых может быть показано/скрыто нажатием на соответствующую кнопку
Программа позволяет создавать сценарии с использованием звуковой дорожки — файла для музыкального сопровождения светодиодного шоу
По кнопке Запуск происходит запуск музыкального файла и отправка команд сценария на плату Arduino — передатчик
Можно прогнать файл и без отправки на плату
Внизу на кнопках происходит эмуляция изменения цвета светодиодной ленты во время проигрывания музыкального ролика
Программа на python по последовательному порту передает команды на плату Arduino — передатчик, которая просто ретранслирует команды в эфир
Скетч для платы передатчика
Для Arduino имеются библиотеки для работы с разными управляемыми по 433/315 МГц исполнительными устройствами. Я использовал такую:
rc-switch — Arduino library to operate low cost 315 MHz / 433 MHz remote control devices — Скачать
#include <VirtualWire.h> char msg[10]={char(55),char(0),char(0),char(0),char(0),char(0), char(0),char(0),char(0),char(0)}; int id1=0; void setup() { Serial.begin(115200); // Debugging only Serial.println("setup"); // Initialise the IO and ISR vw_set_ptt_inverted(true); // Required for DR3100 vw_set_tx_pin(10); // Bits per sec vw_setup(5000); // Bits per sec delay(5000); } void loop() { while(Serial.available()>0) { byte c=Serial.read(); msg[id1]=c; id1=id1+1; } if(id1>0) { digitalWrite(13, true); // Flash a light to show transmitting vw_send((uint8_t *)msg,id1); vw_wait_tx(); // Wait until the whole message is gone digitalWrite(13, false); } //if(id1>0) // {Serial.print("id1=");Serial.println(id1);} id1=0; }
На костюме может быть несколько отдельных линий, для каждой из которых существует своя программа свечения.
Каждая отдельная линия подключена к своему контроллеру приемнику. Первый отправляемый байт пакета — код линии
Получая все пакеты, контроллер отправляет на выполнение только свои.
Скетч для приемника-контроллера
#include <VirtualWire.h> #define REDPIN 6 #define GREENPIN 11 #define BLUEPIN 5 unsigned long time1=0; uint8_t color[]={0,10,10,10}; // Код линии byte kod=55; //byte kod=66; uint8_t buf[10]; uint8_t buflen = 10; void setup() { pinMode(REDPIN, OUTPUT); pinMode(GREENPIN, OUTPUT); pinMode(BLUEPIN, OUTPUT); Serial.begin(115200); //mySwitch.enableReceive(0); // Receiver on inerrupt 0 => that is pin #2 Serial.println("setup01"); // Initialise the IO and ISR vw_set_ptt_inverted(true); // Required for DR3100 vw_setup(5000); // Bits per sec vw_set_rx_pin(2); // Arduino pin to connect the receiver data vw_rx_start(); // Start the receiver PLL running } void loop() { if (vw_get_message(buf, &buflen)) // Non-blocking { int i; digitalWrite(13, true); // Flash a light to show received good message if(kod==buf[0]) { color[1]=buf[1]-1; color[2]=buf[2]-1; color[3]=buf[3]-1; } //Serial.println(buf[1]); digitalWrite(13, false); } if(millis()-time1>500) { time1=millis(); //Serial.println(millis()); flash(); } } void flash() { analogWrite(REDPIN,color[1]); analogWrite(GREENPIN, color[2]); analogWrite(BLUEPIN, color[3]); }
0 комментариев на «“Ангел-шоу — комплекс устройств и программ для управления светодиодными костюмами”»
очень интересная тема, занимаюсь организацией праздников, и над световыми эффектами управляемыми с ардуино тоже думал…
а где можно увидеть ваши костюмы в действии, как это происходит?
Сейчас костюм 3 версия недоделан, 2 версии отработали по нескольку раз, переделку вели из-за плохих соединений частей лент. Но работало нормально для в целом статического варианта (персонаж — Ангел играющий на флейте (белое платье)). Съемок не получалось сделать, поэтому увидеть нельзя. И заказов сейчас нет и времени.
если вопросы есть пишите [email protected] или skype victor.petin1