Ангел-шоу — комплекс устройств и программ для управления светодиодными костюмами
Проект создания светодиодного костюма, в моем случае управляемого с компьютера (нетбук) с ОС 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 версии отработали по нескольку раз, переделку вели из-за плохих соединений частей лент. Но работало нормально для в целом статического варианта (персонаж — Ангел играющий на флейте (белое платье)). Съемок не получалось сделать, поэтому увидеть нельзя. И заказов сейчас нет и времени.
если вопросы есть пишите victor.petin@gmail.com или skype victor.petin1