Данное устройство USB-LED-Fader позволяет управлять несколькими светодиодами (LED) через USB. Я использовал его для отображения статуса моего интернет-соединения, видео-рекордера (VDR) и предупреждения о малом значении свободного дискового пространства. Вы можете использовать его для своих целей и программ.
Управление LED происходит с использованием ШИМ (широтно-импульсной модуляцией). Если кратко то ШИМ позволяет не просто включать-выключать LED, а дает возможность устанавливать любую яркость LED. В устройстве предусмотрено некоторое количество "волновых форм" (т.е. различных эффектов для LED). Каждый LED может отображать несколько разновидностей форм синусоиды или пилы, без какого-либо взаимодействия с внешним устройством (хостом или компьютером).
Каждый LED может управляться отдельно и отображать свой световой эффект.
Вы можете назначить три разных режима световых форм для каждого LED. Первые два (0 и 1) - неизменяемые. Они периодически меняются, пока не будет назначено что-нибудь другое. Третий режим (2) отображается один раз; впоследствии устройство возвращается к периодическому отображению первых двух режимов.
Режим описывается тремя параметрами: световой эффект, продолжительность и количество повторений перед его переходом в следующий режим.
В данной версии USB LED Fader'а предусмотрено управление 4 -мя LED. Количество LED можно легко изменить от одного до восьми. Я не тестировал устройство с более чем 4-мя LED, но могу предположить, что могут возникнуть проблемы с нагрузкой на USB-порт.
Для сборки и работы устройства требуются три вещи: схема, прошивка для микроконтроллера ATmega8 и Linux-клиент командной строки.
Данный проект базируется на примере PowerSwitch от Objective Development. От Objective Development используется только USB-драйвер для микроконтроллеров Atmel AVR. В USB-драйвере от Objective Development реализована поддержка стандарта USB 1.1 (низкая скорость обмена данными) для использования с недорогими микроконтроллерами Atmel AVR, такими как ATtiny2313 и другими. Особенности и ограничения смотрите в файле "firmware/usbdrv/usbdrv.h".
Установка ПО описана в документации к устройству (см. ниже файл).
Подсоедините устройство к USB порту компьютера. Все LED должны моргнуть, это означает, что устройство прошло инициализацию.
Используйте командную строку для ввода команд:
usb-led-fader set <ledId> <waveId> <waveformId> <periodDuration> <repetitionCount>
usb-led-fader clear <ledId>
usb-led-fader reset
usb-led-fader show <waveformId>
usb-led-fader test
Команда set позволяет устанавливать требуемые параметры.
Параметры:
ledId: ID светодиода (0-n, зависит от количества LED, используемых в схеме).
waveId: ID режима (0-1: неизменяемые световые формы, 2: отмена режима).
waveformId: ID световой формы (0-31: яркость, 32-37: шаблоны). Для начала отображения шаблонов используется команда show
periodDuration: Время в сек/10 для одного повтора световой формы. Значение 0 используется для сброса.
repetitionCount: Количество повторов, перед переходом к следующему режиму. Значение 0 используется для бесконечного цикла повторения.
Примеры использования:
Получить статус всех LED. Команда:
usb-led-fader status
Вернет подобный результат:
LED 0 curid curvalue curpos currep nextupd 0 2 26 0 23 wave waveform length repeat duration updtime 0 38 32 1 20 45 1 0 1 1 0 1 2 0 1 1 0 1 LED 1 curid curvalue curpos currep nextupd 0 14 19 0 19 wave waveform length repeat duration updtime 0 38 32 1 20 45 1 0 1 1 0 1 2 0 1 1 0 1 LED 2 curid curvalue curpos currep nextupd 0 31 16 0 43 wave waveform length repeat duration updtime 0 38 32 1 20 45 1 0 1 1 0 1 2 0 1 1 0 1 LED 3 curid curvalue curpos currep nextupd 0 6 9 0 39 wave waveform length repeat duration updtime 0 38 32 1 20 45 1 0 1 1 0 1 2 0 1 1 0 1
Здесь, параметры curvalue, curpos, nextupd и updtime служат для отладки. Они не представляют какого-либо интереса для пользователя.
Пример: устанавливаем яркость для первого LED.
Команда: usb-led-fader set 0 0 15 10 1
Итак, LED под номер 0, режим 0, шаблон номер 15. В данном режиме LED будет оставаться 1 секунду, произойдет одно повторение, после чего устройство перейдет к следующему режиму. Но т.к. следующий режим мы не описали, то LED будет постоянно отсаваться в данном режиме.
Далее, установим второй режим для LED, который будет немного ярче:
Команда: usb-led-fader set 0 1 25 10 1
Это режим 1, для LED под номером 0. Шаблон 25 - это константа уровня яркости. После установки второго режима, будет происходить чередование между режимом 0 и 1, поскольку длительность и число повторений одинаковы. Различается только яркость свечения.
Устанавливаем третий режим для LED.
Команда: usb-led-fader set 0 2 36 20 5
Шаблон 35 - синусоидоподобный сигнал, начинается плавный fade-эффект.Один период fade-эффекта составляет 2 секунды, повторяется 5 раз. После отработки данного режима, устройство вернется к чередованию между режимом 0 и 1, а этот режим сбросится.
Установка нескольких режимов одной командой: usb-led-fader set 0 0 15 10 1 0 1 25 10 1 0 2 36 20 5
Первый LED сначала будет работать по шаблону синусоиды 5 раз, а затем перейдет к чередованию между первым и вторым режимом с двумя уровнями яркости, период - 1 сек.
Очистка первого LED.
Команда: usb-led-fader clear 0
Очищает все 3 режима для первого LED.
Сброс устройства.
Команда: usb-led-fader reset
Все LED один раз моргнут, информируя, что устройство сброшено и готово к работе.
Отображаем шаблон на экране.
Команда: usb-led-fader show 36
Данная команда отображает форму волны:
wave 36 - length 64 31: ***** 30: ********* 29: *********** 28: *************** 27: ***************** 26: ******************* 25: ******************* 24: ********************* 23: *********************** 22: ************************* 21: ************************* 20: *************************** 19: ***************************** 18: ***************************** 17: ******************************* 16: ********************************* 15: *********************************** 14: *********************************** 13: ************************************* 12: *************************************** 11: *************************************** 10: ***************************************** 9: ******************************************* 8: ********************************************* 7: ********************************************* 6: *********************************************** 5: ************************************************* 4: ***************************************************** 3: ******************************************************* 2: *********************************************************** 1: **************************************************************** ================================================================
Помните, что данные отображаются согласно длительности шаблона. Если вы захотите отобразить яркость (формы 0-31), длительность будет 1, т.е. отобразится только одна строка.
Тестирование устройства.
Команда: usb-led-fader test
Данная команда посылает множество пакетов к устройству. Устройство возвращает их, а клиент смотрит различия между отосланными и принятыми данными.
Скачать документацию, прошивки, программы и т.п.
Оригинал на английском языке (перевод Колтыков А.В для сайта cxem.net)
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
IC1 | МК AVR 8-бит | ATmega8 | 1 | Поиск в магазине Отрон | ||
D1, D2 | Стабилитрон | 3.6 В | 2 | Поиск в магазине Отрон | ||
С1 | Конденсатор | 0.1 мкФ | 1 | Поиск в магазине Отрон | ||
С2 | Электролитический конденсатор | 10 мкФ | 1 | Поиск в магазине Отрон | ||
С3, С4 | Конденсатор | 22 пФ | 2 | Поиск в магазине Отрон | ||
R1 | Резистор | 2.2 кОм | 1 | Поиск в магазине Отрон | ||
R2 | Резистор | 4.7 кОм | 1 | Поиск в магазине Отрон | ||
R4, R5 | Резистор | 68 Ом | 2 | Поиск в магазине Отрон | ||
R6-R9 | Резистор | 470 Ом | 4 | Поиск в магазине Отрон | ||
Q1 | Кварцевый резонатор | 12 МГц | 1 | Поиск в магазине Отрон | ||
LED1 | Светодиод | Синий | 1 | Поиск в магазине Отрон | ||
LED2 | Светодиод | Зеленый | 1 | Поиск в магазине Отрон | ||
LED3 | Светодиод | Желтый | 1 | Поиск в магазине Отрон | ||
LED4 | Светодиод | Красный | 1 | Поиск в магазине Отрон | ||
X1 | Разьем USB | 1 | Поиск в магазине Отрон | |||
J1 | Разьем для подключения программатора | ISP | 1 | Поиск в магазине Отрон | ||
Скачать список элементов (PDF)
Комментарии (1) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация