063-12-ти канальный генератор эффектов на ATtiny2313.

Автор: | 13.01.2011

В преддверии новогодних праздников как-то захотелось порадовать себя и близких чем-то необычным. Вот решил сделать иллюминацию в комнате. Традиционно для украшения комнаты и елки мы используем гирлянды. С обычными лампочками накаливания или нового варианта – светодиодные. Китайцы завалили нас этими гирляндами так, что редко можно найти квартиру, где бы не имелась парочка таких гирлянд. Как не крути, но тягаться с китайцами по стоимости, той же новогодней гирлянды, ну никак не получается. Значит, если нельзя сделать дешевле, сделаем лучше! Что же можно сделать лучше того, что есть в продаже? В большинстве своем дешевые китайские гирлянды имеют 4 канала с несколькими предустановленными программами эффектов, а из управления имеется одна кнопка. В качестве альтернативы мы сделаем 12-ти канальный генератор эффектов, с возможностью вручную создавать свои эффекты, при помощи специальной программы и сохранять их в EEPROM контроллера.

Поначалу устройство планировалось как простой генератор эффекта типа бегущих огней, но в процессе реализации проекта, меня зацепило и понесло (слишком много памяти в ATtiny2313 для такого устройства :), а незадействованная память действует на меня как красная тряпка). Я подумал, а почему только бегущие огни? А если, вдруг, захочется организовать красивую подсветку полочки с фотографиями или световое сопровождение компьютерных игр или красивое освещение комнаты или еще какие-то появятся идеи визуальных эффектов? В итоге родилось довольно интересное, многофункциональное устройство с возможностью гибкой настройки и управления, как с компьютера, так и переключателями на самом устройстве. Но времени на это я потратил гораздо больше, чем планировал. Поэтому извините, что НЕМНОГО 🙂 запоздал к новогодним праздникам, но зато Вы получите устройство, которое может пригодиться не только под Новый Год.

1 Схема устройства примитивна, проста в повторении и содержит минимум деталей:

063-Effector-Shem.spl7 - Схема Эффектора-12

Плату устройства
— несложно повторить (а если понадобиться в других габаритах, то несложно и переделать) :
063-TH-Effector-12.lay - Плата Эффектора-12 для ТН-компонентов

Дополнения

1 Тут sig подкинул идею расположения светодиодов для платки индикации
063-LED-ring.lay - Вариант расположения светодиодов
Внешний круг — красные светодиоды, внутренний — синие. В центре 10мм светодиод. Если круги светодиодов расположить на разных уровнях, то должно получиться красиво … теоретически 🙂

Как Вы понимаете, таких вариантов может быть множество — присылайте если получиться что-то интересное.


2 Опубликовал статью со светодиодным светильником в котором есть еще один вариант платы.

Вариант платы от SVN


063-Effector-Shem_m.zip - Плата от SVN

2 Поговорим о подключении светодиодов / лампочек.
Тут есть множество вариантов. Все зависит от того, что Вы будете подключать к каналам.

2.1 Если Вы решили подключить только 12 светодиодов – все очень просто: ставим светодиод последовательно с резистором в 300 Ом в каждый канал и все!

В случае подключения светодиодов напрямую к микроконтроллеру очень желательно по питанию, кроме керамического конденсатора, поставить конденсатор большой емкости (10-100мкФ).
Одновременно зажженные 12 светодиодов дадут довольно приличный токовый «удар», просадкой напряжения питания может сбросить микроконтроллер.

2.2 Если светодиодов нужно больше, тут варианты такие:
Падение напряжения на белом, синем, зеленом светодиодах (ультраярких) составляет около 3 вольт, на красном – до 2 х. Значит если включить последовательно с красным, какой либо другой светодиод + резистор на пару десятку Ом, то яркость свечения будет нормальной. При последовательной работе двух не красных светодиодов яркость будет недостаточной, здесь придется поставить в каналы транзисторы

Использование транзисторов

Эта же схема подойдет для включения светодиодов большой мощности (1Вт, 3Вт).
Еще можно применить ULN2003 – только отображение каналов будет инверсным. Как вариант для гирлянд с большим количеством последовательно включенных лампочек / светодиодов подойдут твердотельные реле. Обычные реле применять не стоит, так как все каналы имеют ШИМ выход. Читайте предыдущую статью «Как подключить к микроконтроллеру нагрузку?» — там все написано.


3 Плата готова, нужно залить прошивку устройства.
Подключаем программатор к боковому разъему – там есть все нужные для этого выводы.
o63-T2313-effector-12.hex - Прошивка Эффектора-12
Выставляем фьюз-биты на работу микроконтроллера от внутреннего генератора на 8МГц.
063-fuse-bits.png - Фьюз-биты для Эффектора-12
Напоминаю:Для Algorithm Builder и UniProf галочки ставятся как на картинке.
Для PonyProg, AVR Studio, SinaProg галочки ставятся инверсно.
Как программировать микроконтроллеры читаем в FAQ.


4 Устройство готово! Теперь расскажу как оно работает.
У генератора эффектов есть 12 ШИМ каналов (8 бит, 100Гц), которые управляются алгоритмами, заложенными в микроконтроллер. В прошивке предустановленны 8 программ эффектов, причем 4 из них, при первом старте или по специальной команде UART, копируются в EEPROM микроконтроллера. Позже их можно подкорректировать или заменить другими при помощи специальной программы. Для выбора эффектов используется три перемычки или переключателя на ножках 7, 8, 9. Комбинация замкнутых на «землю» ножек будет определять какой эффект сейчас задействован:
Переключатели в порядке — 2,1,0 (где 0 – разомкнуто — висит в воздухе, 1 – замкнуто на «землю»)
000 – запуск первой программы EEP1 с EEPROM
001 – запуск второй программы EEP2 с EEPROM
010 – запуск третьей программы EEP3 с EEPROM
011 – запуск четвертой программы EEP4 с EEPROM
100 – запуск первой программы P1 с Flash
101 – запуск второй программы P2 с Flash
110 – запуск последовательности программ с EEPROM (4 программы)
111 – запуск последовательности программ с Flash (8 программ)
Переключать программы возможно и по UART, причем по UART возможно выбрать и оставшиеся 2 программы P3 и P4 с Flash.При запуске последовательностей (комбинации 110 и 111), программы через определенное время чередуются.

Вот такой функционал доступен с платы устройства. Не очень впечатляет, правда? Хотите чего-то большего? Подключайте устройство через UART к компьютеру и при помощи специальной программы получите возможность задействовать весь функционал устройства!

А именно:
— Уровни 12-ти ШИМ каналов можно непосредственно изменять из программы;
— 4 программы, записанных в EEPROM, можно менять по своему усмотрению;
— задавать программу поведения для каждого канала отдельно;
— включать/отключать любой из 6 общих эффектов, действующих сразу на все каналы, (стробоскоп, движение по заданной программе, мерцание, изменение яркости, сдвиг/скольжение каналов);
— менять скорость работы программы эффектов или полностью ее остановить;
— задавать изменение каналов под музыку.


5 Подключение к компьютеру.
Устройство имеет UART выход с TTL уровнями, а это значит, что для подключения к компьютеру необходим преобразователь.

5.1 Если Вы хотите сделать подключение через COM порт, понадобится преобразователь уровней для RS232-протокола COM порта. Например, подойдет широко известная MAX232. Проблем со схемой возникнуть не должно – в даташите, на эту микросхему, все описано.
MAX220-MAX249.pdf - Даташит на серию преобразователей MAX (MAX232)

5.2 Подключение через USB можно сделать через FT232RL или попроще, через преобразователь на ATtiny2313, который мы уже делали.

UART устройства работает на следующих настройках
— биты данных (data bits) – 8
— стоп биты (stop bits) – 2
— контроль четности (parity) – нет
— скорость (baud rate) — 9600

Работа по UART организована в виде 2-х символьных посылок. Первый символ — всегда буква (большие буквы латинского алфавита), она указывает, что изменять в устройстве (например, буквы от A до L указывают на каналы от 1 до 12). Второй символ, чаще всего цифра, задает значение параметра (например, для установки яркости каналов, посылаются цифры от 0 до 8).
Пример: Для того чтобы установить среднюю яркость третьего канала, нужно по UART отослать устройству “C5”.
Если управление устройством планируется только с компьютера – не заморачивайтесь этими командами — специальная программа сделает все сама.
Если Вы планируете управлять устройством из своего терминала или при помощи другого микроконтроллера, вот полный перечень команд:
063-UART-Command.pdf - Перечень UART команд Эффектора-12


6 Управление устройством через программу «GCn Effector 12».
Так как устройство имеет довольно обширный функционал, управление через обычную программу терминала хоть и возможно, но не очень удобно. Поэтому, для удобного и наглядного управления мною была написана специальная программа — «GCn Effector 12».
GCn_Effector_12.exe v2.0 - Программа управления эффектором
Программа имеет небольшой размер, не требует установки. Работает через COM порт (или его эмуляцию, в случае преобразователя на FT232RL или на ATtiny2313). Программа проста, особо описывать нечего, разве что очень кратко пройдусь по основным функциям.

«GCn Effector 12» имеет 3 закладки, для различных возможностей генератора эффектов:
6.1 Закладка «Работа с СОМ портом».Первая закладка
Здесь мы выбираем СОМ порт, к которому подключено устройство – «Выбор порта». Можем посылать команды управления вручную – «Передача пакета». Смотрим «Помощь» с перечнем команд.

6.2 Закладка «Настройка эффектов».Вторая закладка
Эта закладка немного веселее предыдущей. Сюда вынесено все, что можно настроить или поменять в устройстве.
«Работа с EEPROM, программами». Кнопки позволяют сохранить сделанные настройки в текущей (выбранной) EEP-программе, восстановить, все четыре программы EEPROM к начальным настройкам (как при первом старте), прочитать текущую программу из контроллера.
«Выбор программы». Это то, что можно сделать на устройстве при помощи переключателей, кроме того можно включить две программы (Р3 и Р4), недоступные для переключателей.
«Скорость работы». Меняет скорость работы программы эффектов или полностью останавливает работу эффекта (статичное отображение состояния каналов).
«Яркость каналов». Перемещая ползунки, меняем яркость каждого канала по отдельности. Кнопка «Rst» сбрасывает все каналы в ноль.
«Направление изменения яркости». Задаем программу изменения каждого канала по отдельности (эффекты Work и Jump).
«Выбор эффектов». Можно выбрать сразу несколько или все отключить – кнопка «Rst».

Перечень эффектов.
Work — отработка программы изменения яркости для каждого канала отдельно (см. Направление изменения яркости);
Jump — отработка программы скачкообразного изменения яркости для каждого канала отдельно (см. Направление изменения яркости);
Strobo — со случайным периодом и случайной длительностью включается стробоскопический эффект на всех каналах;
Move — эффект сдвига. Плавно и случайно меняется скорость и направление сдвига;
Bright — плавное и случайное изменение яркости всех каналов;
Blink — Случайное мерцание всех каналов.

Любые действия в настройщике формируют и отправляют соответствующую UART команду. Последняя отправленная команда отображается в окошке «COM» в правой части области настройки.

6.2 Закладка «Музыка».
Третья закладка
Эта закладка совсем веселая, так как позволяет изменять состояние каналов в соответствии с входным аудиоканалом компьютера. Выберите в микшере звуковой карты нужное входное устройство или «Wave», «What U hear», «Stereo Mix», если хотите чтобы отображалась проигрываемая на PC музыка, (или звуки) и жмите «Пуск» — все остальное программа будет делать сама. Есть варианты отображения «Норма» и «Зеркало» — пробуйте. Также можно подкорректировать чувствительность. При работе «музыки» можно переключиться на вторую закладку и работать параллельно с эффектами.


7 Демонстрация.
Для демонстрации устройства я подключил по два светодиода последовательно в каждый канал (24 светодиода). Светодиоды установлены по кругу, для демонстрации эффектов сдвига (ну и так получается прикольней :)).

Демоплата эффектора

Светодиоды смонтированы на макетной плате навесным монтажом. К плате припаян разъем «мама» и напрямую подключается к плате устройства. Все устройство готовое к демонстрации:

Демонстрация в сборе

Как работает устройство и программа смотрим на видео:


8 Возможные применения.
Использование генератора эффектов не ограничиваются лишь праздничной иллюминацией.
Как варианты можно рассматривать:
— различные световые эффекты для различных композиций, поделок;
— различные подсветки интерьера (мебель, потолок, аквариум …);
— так как устройство позволяет сохранять в памяти программы изменений каналов, можно использовать устройство как автомат для каких либо повторяющихся действий (устройства автоматики, умный дом …);
— так как устройство имеет возможность непосредственно с компьютера управлять двенадцатью ШИМ каналами это можно использовать как пульт управления какими либо механизмами (привода, исполнительные элементы …);
— подсветка экстерьера (фасады зданий, фонтаны, беседки …); и т.д.


Ссылки:
Преобразователь USB-UART
Как подключить к микроконтроллеру нагрузку?


Файлы:
063-Effector-Shem.spl7 - Схема Эффектора-12
063-TH-Effector-12.lay - Плата Эффектора-12 для ТН-компонентов
o63-T2313-effector-12.hex - Прошивка Эффектора-12
063-fuse-bits.png - Фьюз-биты для Эффектора-12
063-UART-Command.pdf - Перечень UART команд Эффектора-12
GCn_Effector_12.exe v2.0 - Программа управления эффектором

Выкладываю исходники, но сразу предупреждаю, они изначально не предназначались для показа, поэтому не оформлены соответствующим образом. Берите «как есть».
063-Effector_12-AB-Source - Исходник генератора эффектов на Algorithm Builder
063-GCn_Effector_12-HiAsm-Source - Исходник GCn_Effector_12 на HiAsm

(Visited 14 543 times, 7 visits today)

063-12-ти канальный генератор эффектов на ATtiny2313.: 537 комментариев

  1. alexey_nsk

    GetChiper :

    alexey_nsk :
    @GetChiper https://youtu.be/4JGChkrnbyY вот такой наблюдался эффект. Завтра попробую новую прошивку. А по uart в гирлянде есть управление? С помощью вашей программы.

    Нет. А что нужно по UART? Если эффекты подойдут – можно попробовать приделать.

    По UART скорость поменять и эффекты подправить.

  2. GetChiper Автор записи

    Для какого эффектора?

  3. micky1954

    Уважаемый GetСhiper, или я чего-то не понимаю:
    в 063 статье указано- «063-fuse-bits.png — Фьюз-биты для Эффектора-12
    Напоминаю:Для Algorithm Builder и UniProf галочки ставятся как на картинке.
    Для PonyProg, AVR Studio, SinaProg галочки ставятся инверсно.»,
    в 024 — «Да, у uniprof фьюзы выставляются инверсно(наоборот) моим картинкам.»
    Так как всё-таки правильно пользоваться UniProf? Пытаюсь построить эффектор, а он после программирования стоит на месте.
    Спасибо.

  4. GetChiper Автор записи

    Да, моя ошибка — подумал про другое. В UniProf галочки ставятся как у меня на картинке.

  5. micky1954

    Спасибо.
    Продолжим наши игры…

  6. micky1954

    но всё равно — молчит контроллер, хоть и запрограммирован в соответствии с Вашими рисунками и даташитом на контроллер.

  7. micky1954

    Уважаемый GetСhiper, большое спасибо, записал тестовую прошивку в контроллер — он заработал, переписал с фьюзами от тестовой прошивки основную программу (сняв деление частоты на 8) — всё работает!
    Возможно, мистика …..
    Буду пытаться разобраться дальше.
    Спасибо.

  8. micky1954

    Уважаемый GetСhiper, что такое за элемент на Вашей плате — круглый и чёрный, вроде пищалки?Зачем он?
    Спасибо.

  9. GetChiper Автор записи

    Это действительно пищалка. Плата перекочевала с другого проекта. В данном проекте пищалка не используется.

  10. vinserg40688

    Здравствуйте! Подскажите, возможен ли вариант, переделать Ваше устройство под СДУ ATtiny 2313 4 RGB канала? Вот ссылка для примера, нужного дэвайса…Спасибо!
    https://www.youtube.com/watch?v=dbKe5_j6OdY&index=32&list=WL

  11. GetChiper Автор записи

    СДУ?
    Может СМУ? — тогда нет у тини2313 нет АЦП, что не позволяет ему обрабатывать аналоговые сигналы.
    Но я думаю об эффекторе на другом МК где можно такое делать.

  12. Сергей-Вихров

    Подскажите пожалуйста как правильно запрограммировать микроконтроллер и поставить фьюз биты в программе Phyton ChipProgUSB Programmer 6.04.00 ? (Первый опыт программирования) А то устройство не видит команды посылаемые с CОM-порта , но в тоже время переключатели на плате работают.

  13. admin Автор записи

    В окне прошивки фьюзов должна быть строчка
    «Отмеченная» опция означает логическое состояние «0»
    если есть значит галочки нужно ставить обратно моей картинке

  14. Андрей-Гордиенко

    Здравствуйте, я видимо чего то не понимаю но у тини 2313 2 кб под параграмму, а скачанный hex 5033 как он туда поместиться?

  15. strem

    HEX-файл — это текстовое отображение прошивки. Соответственно файл больше.

  16. Дед-Изя

    а кто сможет помочь, мне надо шоб при включении эффектора проигрывалась первая програма памяти 2 цыкла и включалась вторая програмка на постоянку( это без подключеного компа)

  17. Дед-Изя

    меня некто неслышет и даже разработчик((((((((

  18. admin Автор записи

    Пока я не смогу это сделать — занят другим

  19. Дед-Изя

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

  20. Дед-Изя

    Доброе время суток много уважаемый автор.
    Вот прошла неделя. И я осмелюсь вам напомнить о своем посте ниже.

  21. admin Автор записи

    Еще не освободился 🙁

  22. Дед-Изя

    Сори что беспокою, мож у вас появилась немного времени?

  23. admin Автор записи

    надеюсь на неделе

  24. Дед-Изя

    За меня забыли((((((

  25. admin Автор записи

    Действительно забыл (
    Попытался я сделать модификацию, но в виду того что этот вариант эффектора очень криво написан — вижу что не получится этого реализовать.
    Нужно или на более новом эффекторе это делать либо использовать другое устройство — например автомат нагрузок http://www.getchip.net/posts/130-mnogokanalnyjj-avtomat-upravleniya-nagruzkami-na-attiny2313/

  26. Мансур

    Подскажите а можно собрать на этом контролере такую вещь чтобы хаотично точнее прошел цикл перебегающего огня там из 4 -6 светодиодов через разное время . Хочу сделать эффект падающей звезды
    чтобы были Интервалы между эффектами — от секунд до минут. и как это сделать ? Как написать программу?

  27. GetChiper Автор записи

    Думаю, не стоит что-то выдумывать с падающей звездой. Если взять Ардуину там таких готовых проектов очень много (популярный эффект).

  28. Мансур

    Спасибо Автор . а ссылку можно ? Что такое Ардуину

  29. GetChiper Автор записи

    Вот пару ресурсов:
    http://arduino.ru/
    http://amperka.ru/

    А вообще в поисковике забивай фразу «проекты на Arduino» и будет море проектов.

  30. Sergey

    У меня на компе нет LPT и COM портов. Как быть?

  31. GetChiper Автор записи

    Подойдет любой преобразователь USB-UART

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