Например TDA7294

РадиоКот > Схемы > Светотехника > Бегущие огни и световые эффекты

Елочная гирлянда

Автор: Сергей
Опубликовано 28.11.2011.
Создано при помощи КотоРед.

Давно хотелось сделать елочную гирлянду на радость детям. Конечно Вы можете сказать что сейчас есть много разных китайских светящихся ленточек из которых можно выбрать что-то подходящее, но я среди китайского товарного многообразия так ничего и не нашел того что бы мне подошло.

Требования к елочной гирлянде ставились такие:

  1. Управление RGB светодиодами каждым по отдельности, включая управление яркостью.
  2. Возможность загрузки программ световых эффектов по USB без перепрошивки контроллера.
  3. Возможность эмуляции работы гирлянды на персональном компьютерею

В результате получилось устройство состоящее из следующих частей:

  1. Корпус и блок питания – использовалось то, что было под рукой, а именно корпус и блок питания от старого сетевого свитча. Блок питания имеет на выходе два напряжения - +5в по-слабее и +3.3в по-мощнее. Было решено использовать линию +5в для питания процессоров, а линию +3.3в – для питания светодиодов. Если у Вас будет источник питания только +5в – это не страшно, так как контроллеры RGB светодиодов на ATTiny2313A могут работать и от +5в только надо подобрать токоограничивающие резисторы для светодиодов. Я подбирал по току 10ма при напряжении на 0.3в меньше чем напряжение питания светодиодов.
  2. Контроллер гирлянды на STM32F2XX. В архиве со схемами, программами и чертежами плат есть два варианта платы – для 64pin QFP корпуса и для 144pin QFP корпуса. В качестве бонуса еще есть чертеж платы для STM32F1xx в корпусе 64pin QFP, благо STM32F1 и STM32F2 варианты отличаются только назначением двух выводов. В кажестве разъема JTAG использовался разъем под плоский кабель XF2W-1615-1A. Плата переходника на стандартный 20-контактный разъем есть в файлах приложеных к этой статье.
  3. Макетная плата, на которой установлены платы контроллера гирлянды на STM32F2XX, SPI eeprom (я использовал W25Q16 емкостью 16 мбит, выпаянную из какой-то старой платы, возможна замена на другую, только придется менять параметры файловой системы и вносить коррективы в протокол общения с микросхемой памяти).
  4. Плоский 10-жильный кабель длиной 3.6 метра с прикрепленными через каждые 20 см разъемами IDC-10 для подключения собственно плат контроллеров RGB светодиодов.
  5. Контроллеры RGB светодиодов (в моем варианте 16 штук). Используется процессор ATTiny2313A. Позволяет управлять двумя RGB светодиодами. Номер контроллера записывается по адресу 1 в eeprom. Он не может быть нулем так как нулевой номер контроллера используется для обращения ко всем контроллерам сразу. В моем варианте с 16-ю контроллерами они имеют номера с 1 по 16 соответственно.

Все схемы нарисованы с помощью KiCad. На схемах плат STM32 я не указывал блокировочные конденсаторы в цепях питания. Они имеют следующие номиналы: те которые 0402 и 0603 – 0.1uF, те которые 1206 – 2.2 uF. Самые большие – 100uF или 47uF.

Программирование световых эффектов выполняется на языке Java – смотрите папку sergvs201ledc_jvmDebug – там находятся все нужные файлы для компиляции программ.

Вкратце пройдемся по структуре архива:

                - в корне архива лежат файлы печатных плат.

- в папке kikad – схемы.

- в папке sergvs2010ledc_jvm – эмулятор гирлянды для Windows.

- sergmyProgramsARMboard_stm32f207_ledc_java – проект Keil uVision с исходниками для прошивки контроллера STM32.

- sergmyProgramsAVRRGB_Led_Control – проект AVRStudio для прошивки ATTiny2313.

                Общение с контроллером гирлянды происходит через виртуальный USB ком порт. Команды которые понимает контроллер таковы:

                - dir – вывод каталога файлов на SPI eeprom.

                - reset – сброс контроллеров RGB светодиодов.

                - format – форматирование SPI eeprom.

                - run program_name arguments – запуск программы на исполнение.

                - stop – останов программы.

                - deletefile – удаление файла из файловой системы SPI eeprom.

 

                Инициализация устройства:

  1. Форматирование SPI eeprom командой format.
  2. Загрузка обязательных файлов с помощью утилиты spi_flash_write:

 

                   spi_flash_write имя_ком_порта classes/Message.class /binary

                   spi_flash_write имя_ком_порта classes/Syst.class /binary

                   spi_flash_write имя_ком_порта Board.class /binary

                Файлы находятся в папке sergvs201ledc_jvmDebug.

                По умолчанию устройство при старте пытается выполнить программу записанную в файл main.class. Загрузить другие файлы в устройство можно с помощью той же программы spi_flash_write.

                В файле main1.java Вы найдете четыре программы которые я использовал для тестов. Также файл ledc_test служит для тестирования модулей на ATTiny2313. (он имеет один параметр коммандной строки – номер устройства).

                Пройдемся вкратце по API для работы с гирляндой:

 

  1. Класс classes/Syst:

-          HeapgetFree – получение размера свободной памяти.

-          GC_Collect – вызов garbage collector.

-          delay – задержка в миллисекундах.

  1. Класс classes/Message:

-          show – вывод сообщения в ком порт.

-          printf – аналог такой же команды на языке С за исключением того что внутри этой функции все параметры ппреобразуются в строки так что для любого типа переменных надо указывать в строке формата %s.

  1. Класс Board:

-          ledc_reset – сброс контроллеров RGB светодиодов.

-          ledc_send – команда контроллеру RGB светодиодов. Имеет семь параметров – номер контроллера (на номер 0 откликаются сразу все контроллеры), и значения яркостей R, G, B для первого и второго светодиода. Значения яркости могут быть от 0 до 255.

-          random – получение случайного числа от 0 до 0xFFFFFFFF.

Должен предупредить, что далеко не все классы реализованы во встроенной java машине. Список классов и список реализованных функций вы сможете найти в исходниках Java машины.

 

           Фото контроллера RGB светодиодов:

         Фото платы для STM32F2 144pin QFP:

  Фото устройства:


Файлы:
переходник с 20 контактного jtag на разъем XF2W-1615-1A
Схемы, прошивки, исходные тексты программ, файлы печатных плат


Все вопросы в Форум.


ID: 1132

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

49 19 45
1 3 10
Подробно