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 светодиода). Светодиоды установлены по кругу, для демонстрации эффектов сдвига (ну и так получается прикольней :)).

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

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

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

Как работает устройство и программа смотрим на видео:
http://www.youtube.com/watch?v=V5hWZvli9as


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 5 970 times, 29 visits today)

There are 524 comments

Комментарии подгрузятся после небольшой паузы.