Ангел-шоу — комплекс устройств и программ для управления светодиодными костюмами


Ангел-шоу — комплекс устройств и программ для управления светодиодными костюмами
Проект создания светодиодного костюма, в моем случае управляемого с компьютера (нетбук) с ОС 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]);

  }

Скетчи Arduino — скачать
Программа python — скачать


0 комментариев на «“Ангел-шоу — комплекс устройств и программ для управления светодиодными костюмами”»

  1. очень интересная тема, занимаюсь организацией праздников, и над световыми эффектами управляемыми с ардуино тоже думал…
    а где можно увидеть ваши костюмы в действии, как это происходит?

    • Сейчас костюм 3 версия недоделан, 2 версии отработали по нескольку раз, переделку вели из-за плохих соединений частей лент. Но работало нормально для в целом статического варианта (персонаж — Ангел играющий на флейте (белое платье)). Съемок не получалось сделать, поэтому увидеть нельзя. И заказов сейчас нет и времени.

Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна конкурс манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение