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

Автор: | 13.01.2011

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

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

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

063-Effector-Shem.zip (7747 Загрузок)

Плату устройства
— несложно повторить (а если понадобиться в других габаритах, то несложно и переделать) :
063-TH-Effector-12.zip (7936 Загрузок)

Дополнения

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

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

 

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

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


063-Effector-Shem_m.zip (1960 Загрузок)

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

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

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

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

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

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

 

3 Плата готова, нужно залить прошивку устройства.
Подключаем программатор к боковому разъему – там есть все нужные для этого выводы.
o63-T2313-effector-12.zip (8334 Загрузки)
Выставляем фьюз-биты на работу микроконтроллера от внутреннего генератора на 8МГц.
063-fuse-bits.png (10292 Загрузки)
Напоминаю:Для 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 (4016 Загрузок)

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 (5685 Загрузок)

 

6 Управление устройством через программу «GCn Effector 12».
Так как устройство имеет довольно обширный функционал, управление через обычную программу терминала хоть и возможно, но не очень удобно. Поэтому, для удобного и наглядного управления мною была написана специальная программа — «GCn Effector 12».
GCn_Effector_121.exe (8902 Загрузки)
Программа имеет небольшой размер, не требует установки. Работает через 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_12-AB-Source.zip (5205 Загрузок)
063-GCn_Effector_12-HiAsm-Source.zip (Одна Загрузка)

(Visited 36 562 times, 1 visits today)

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

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

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

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

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

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

  2. streetboy163

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

  3. streetboy163

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

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

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

  5. streetboy163

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

  6. hawk

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

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

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

  8. streetboy163

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

  9. 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]

  10. Yura789

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

  11. streetboy163

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

  12. Gserv

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

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

  13. muflic

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

  14. Juris

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

  15. Gserv

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

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

  16. muflic

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

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

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

  18. muflic

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

  19. Alexey

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

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

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

  21. Alexey

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

  22. Alexey

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

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

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

  24. Alexey

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

  25. Alexey

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

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

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

  27. baubnfbe

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

  28. kamaz6141

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

  29. kamaz6141

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

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

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

  31. kamaz6141

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

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

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

  33. ExxR

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

  34. ExxR

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

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

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

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

  36. ExxR

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

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

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

  38. kamaz6141

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

  39. Valeriy

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

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

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

  41. Valeriy

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

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

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

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

  43. Valeriy

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

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

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

  45. ExxR

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

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