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 21 407 times, 4 visits today)

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

  1. ExxR

    Доброе время суток. Не планируется изменение прошивки с управлением с пульта и одной тактовой кнопочкой??

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

    Да, планируется.

  3. Valeriy

    Уважаемый GetChiper! Cобрал 063Эффектор на IRF640 как на схеме. 3ярких светодиода+резистор.4 таких цепочки параллельно на канал.12 каналов по кругу.При работе автомата светодиоды полностью не гаснут. Что сделать.Резисторы подбирал на каждый цвет. Б/П-импульсный 12в/2А.Спасибо за ответ.

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

    @ExxR
    еще не занимался. Сайчас занимаюсь другим проектом.

    @Valeriy
    Должны гаснуть. Затвор полевика «прижат» к земле резистором?

  5. Valeriy

    Да прижат-10к.Может подобрать 3к-увеличить?

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

    Попробуй 3к.
    Еще отключи полевик и через резистор поцепи светодиод (на вывод МК)- проверь как работает.

  7. Valeriy

    Спасибо GetChiper, буду пробовать.

  8. kamaz6141

    А Attiny2313 можно любую использовать? А то есть ATTINY2313A-PU, ATTINY2313V-10PU

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

    Да, должна работать любая.

  10. ExxR

    Такая проблема, преобразователь и сам эффектор по отдельности работают, а вот вместе никак не получается т.е управление через прогу. В чем может быть причина. Плату проверял, все в норме. Ночки преобразователя перемыкал — в терминале сообщение проходит.

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

    Скорость 9600?
    Сигналы ЮАРТ включены накрест?

  12. ExxR

    ДА, пробовал ЮАРТ через сопротивления, на прямую, перешивал контроллеры уже раз по пать — ни в какию. Думаю попробовать схему согласования как на меге8.

    Бывает мне удается переключать эффект, буквально пару, после чего опять устройство становится бесконтрольным…

  13. ExxR

    C ЮАРТ разобрался, т.к. схема на макетке, все еще раз почистил от флюса, пустил провода ТхD и RxD по другому пути

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

    Ну вот и хорошо.

  15. kamaz6141

    Кондёр в схеме на 47мкФ электролит?

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

    По питанию стоит электролит + керамика (0.1мкФ)

  17. kamaz6141

    Спасибо, просто в разводке оба под керамику сделаны, ножки разгибать приходиться у лита 🙂

  18. kamaz6141

    Собрал ваше устройство, классно 🙂 Осталось только UART собрать 🙂 Спасибо за старания, отличный сайт и информация, успехов в разработках 🙂

  19. baubnfbe

    Спасибо за сайт, с 1987г дружу с паяльником, но микроконтроллеры попробовал только месяц назад. Получился COMM-программатор, usb-UART, генератор эффектов, а также часы и термометр с др. сайтов. Сыну 11 лет, он тоже увлекся, у него уже есть свои схемки (RGB лампа). Ждем новых предложений.

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

    Новые устройства будут. Обязательно будут 🙂

  21. Alexey

    Здравствуйте! Очень хочу сделать ваше устройство, но есть проблемка: Мне надо его приспособить для управлением обычными лампочками на 220В. Я не новичок и любую нагрузку к МК умею подключать любыми способами, но вопрос всё же возникает: Лампочку ведь надо включать при переходе сети через 0, а конец полуволны резать, чтобы регулировать её яркость. А в этой схеме на выходе ШИМ и для управления симистором она ведь не подойдёт, правильно? Не посоветуете-ли мне, что бы такое придумать для управления лампочками…? Заранее спасибо!

  22. Alexey

    Да, спасибо, там алгоритм управления как раз как мне нужно. Но изменить прошивку этого устройства я вряд-ли смогу, я с программированием недавно столкнулся! Может, кому-то ещё надо перевести эту схему на лампочки и мне заодно помочь:) с прошивкой? Правда, придётся отказаться от чего-нибудь для освобождения ноги для детекции нуля, я бы пожертвовал кнопкой… А то придётся мне, если прошивку не менять: Питать лампы постоянным напряжением 220в с большим-большим кондёром для сглаживания пульсаций, зажигать ШИМом огромным транзистором К->Э 300В ~1А, не знаю даже, найду ли такой и сколько он будет стоить…

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

    Просо нужно поставить симисторы и они будут рулить переменным напряжением (единственно нужно подобрать симисторы с небольшим током отпирания или поставить усилительные каскады для управления).
    Кстати, а зачем сглаживать постоянку для ламп? мерцания видно не будет.

  24. Alexey

    Вот тут-то я начинаю не понимать… просто ведь поставить симисторы нельзя, они будут отпираться в произвольный момент по импульсам ШИМ, которые не синхронизированы с частотой в розетке, а запираться при переходе сети через 0, то есть симистор будет работать как попало: то откроется в начале полуволны, то в середине. Может быть конечно это на лампочке будет не заметно, но это всё равно как-то неправильно… Но наверное придётся мне так и сделать и посмотреть, что получится. А со сглаживанием возможно я и перемудрил) ну, думал, ШИМ лучше пойдёт, будет устойчивее светить лампочка… Если оставить пульсации, импульсы шим ведь могут попасть на «околонулевое» состояние а могут попасть по центру полуволны и будет разное свечение… Но наверное я ошибаюсь)

  25. Alexey

    А я наоборот, не говорил про ту схему, а говорил про эффектор) Та схема конечно хорошая, но она мне не подойдёт, потому что она, к сожалению, не цветомузыка… Туда-то я симисторы поставил бы без проблем. Вот бы объединить 2 схемы: алгоритм управления с той схемы, а всё остальное оставить с этой… Спасибо за ответы!

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

    В апгреде сделаю (вот только когда я до него доберусь 🙁 )

  27. Alexey

    Буду терпеливо ждать) Спасибо!

  28. muflic

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

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

    На звук схема способна реагировать только через специальную программу на PC. Сама по себе схема умеет воспроизводить различные эффекты.

  30. muflic

    Ребята, кто прошьет мне микроконтроллер для этой схемы? USИ единственный вариант, который мне подходит, мне не под силу собрать пока.Перерыв в «радиолюбительстве» было более чем долгим. Последний раз паял в 1998 году.Тогда о таких микросхемах только в «Радиолюбителе» писали. В общем решил возобновить тягу, но с наскоку никак. Кто выручит? Я оплачу затраты

  31. Gserv

    muflic :Ребята, кто прошьет мне микроконтроллер для этой схемы? USИ единственный вариант, который мне подходит, мне не под силу собрать пока.

    Во первых спасибо GetChiper отдельное. Классный сайт и устройство. Во- вторых по поводу вопроса. По себе знаю, прошьёте контроллер, захочиться посмотреть, как он под музыку работает, эффекты свои посоздавать, дальше, больше. Я вот например на основе этой схемы фонтан в ресторане танцующий сделал, сейчас ещё круче проект делаю в гостинице. Купите готовый переходник, или закажите (если у вас дорого), недельку подождёте и наслаждайтесь. Вот здесь например http://www.ebay.com/sch/i.html?_from=R40&_sacat=0&_nkw=usb+uart&_sop=15
    ну даром почти, зато удовольствия)))

  32. Juris

    Muflic, с возвращением Вас! 🙂 У меня сколько-там лет назад тоже была пауза по радиолюбительству, но тоже вернулся, какраз когда микроконтроллерство шло в гору. Помню, начал своё возвращение сборкой LC-измерителья на PIC микроконтроллере, ну и по ходу сначала собрав программатор для оных. Ну а с ATMEL совсем просто, пару проводов и пару деталеи к COM или LPT порту (компик с такими всегда хорошо иметь под рукой), и можно программировать. По этои конкретной конструкции Эффектор-12 заметьте, что есть первое продолжение сдесь:
    http://www.getchip.net/posts/082-avtomat-upravleniya-nagruzkami-apdejjt-gcn_effector_12/
    , ну и есть надежда за скорое (?) обновление, на новую версию с подправками и наворотами. Успехов!!

  33. muflic

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

  34. Gserv

    muflic :я правильнво понимаю, что смогу при помощи этого преобразователя программировать это контролер прямо на плате?

    правильно понимаете, не только программировать, но и эффектами управлять.

  35. streetboy163

    Ребята подмкажите пожалуйста Fuse в sinaprog по калькулятору получается LOW — F4 а в sinaprog не получается так выставить на внутренний генератор 8 мГц там получается либо С4 D4 E4, в ручную то конечно можно выставить и F4 но мне кажется это не верно, в общем выручайте кому не сложно пожалуйста!

  36. Yura789

    Хорошая вещь, только плавности не хватает, на низких скоростях не используешь. Надеюсь, что обновление будет. Спасибо, будем ждать.

  37. hawk

    Уважаемый автор. Собрал эффектор с тремя диодами на порт через транзисторы, эффекты меняются, но два канала просто горят и все (5 и 6 пины МК) Вернее один моргает (5), а 6 просто горит. Попробовал поиграться с настройками через GCn_Effector_12.exe v2.0, нажал обе кнопки ресет, все диоды погасли кроме 5 и 6. В чем может быть проблема?
    вот мое устройство [URL=http://savepic.org/3247788.htm][IMG]http://savepic.org/3247788m.jpg[/IMG][/URL]

  38. streetboy163

    @GetChiper
    Подскажи пожалуйста фьюзы для sinaprog?

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

    Есть хорошая штука фьюз-калькулятор. Он может пересчитать фьюзы в любой удобный для Вас вид (галочки в нем нужно ставить инверсно моей картинке) http://avr.roboforum.ru/calc.html?part=

  40. hawk

    Разобрался, проблема в транзисторах была. Ох и красота получилась 🙂
    Спасибо Вам за прекрасный сайт 🙂

  41. streetboy163

    @GetChiper
    да это я знаю я не могу понять что выбирать в строке где выбор генератора я понимаю что нужен внутренний 8мгц но там дальше чтото типа 14СК+65 что выбрать?

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

    Просто проставьте галочки в нижнем поле (инверсно моим) и оно в верхнем само все установи как нужно

  43. streetboy163

    выставляю и та строка пустая становится…это нормально?

  44. streetboy163

    @streetboy163
    на картинке не выбран ниодин бит sut (время запуска) как так то полюбому же нужен он

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

    Пустая строка — это ничего.
    sut — выставлен — нулевые значения — можно поставить там все что угодно.

    Главное следить чтобы БЫЛА галочка здесь:
    Разрешить внутрисхемное программирование (SPI); [SPIEN=0]

    и НЕ БЫЛО здесь:
    Reset Disabled (Enable PA2 as i/o pin); [RSTDISBL=0]

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

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