Привет, strangers!
Обновление проекта Лайтпак: Прокачан и открыт
Эта история о том, как сделать супер мега дешевую и простую ambilight подсветку для эвм. В роли дирижера будет выступать микроконтроллер ATtiny44, а в роли оркестра 4 RGB-светодиода.
Несколько картинок, дабы пробудить интерес:
Кому лень читать: полное описание в «картинках» (=
UPDATE: Добавлено видео http://www.youtube.com/watch?v=tdp1QeS_JCg
UPDATE2: в списке деталей уточнил название используемого микроконтроллера (ATTINY44-20SSU)
UPDATE3: добавлены фьюзы (дико извиняюсь, что забыл про них)
UPDATE4: исправлена принципиальная схема (v2.1.3)
Писатель из меня не очень, так что перейдем сразу к делу:
Список деталей
Компонент | Корпус/Размер | Количество |
ATTINY44-20SSU |
SOIC | 1 |
74HC595 |
SOIC | 2 |
RGB LED |
SMD 5x5mm | 4 |
Resistor 10k |
0805 | 1 |
Resistor 1.5k |
0805 |
1 |
Resistor 100R |
0805 |
12 |
Resistor 68R |
0805 |
2 |
Resistor 0R | 1206 | 1 |
Cap tantalum 4.7uF | 1206 | 1 |
Cap ceramic 20pF | 0805 | 2 |
Quartz 12Mhz | HC-49/US | 1 |
Zener diode 3.6V |
MiniMELF (1206) | 2 |
MiniUSB | Type B (SMD) |
1 |
PLS-40S |
DIP | 1 |
Шлейф | ~0.3 m | 5 проводов |
Стеклотекстолит | ~160x80 mm |
1 |
Двусторонний скотч | толстый |
1 |
Итого: не более 500 руб.
К ноутбуку девайс приклеен на двусторонний скотч:
Возможно не айс, но меня полностью устраивает, держит мертво, usb можно подключать, отключать не придерживая плату. Если отклеить, останутся разводы, которые легко
Микроконтроллер подключен к эвм по USB. Фундамент проекта — библиотека V-USB от obdev. Первое, что было проверено, испытано и сразу заработало — v-usb/examples/hid-data. HID работает везде, драйверы стандартны, работать с данным классом USB устройств очень просто. Тем более, что всю работу за нас уже сделали, в примере hid-data можно найти файлы hiddata.c и hiddata.h. В них реализован стандартный интерфейс для работы с USB HID для windows (win api) и unix (libusb).
Софт захватывает 4 области экрана, преобразует в 4 точки и отправляет в девайс, разбив на цветовые составляющие Red, Green, Blue. Все в рамках С++, Qt и USB HID.
Делаем плату AmbilightUSB.lay (текущая версия hw v2.1), запаиваем.
Прошиваем фьюзы:
avrdude -pt44 -cusbasp -u -Ulfuse:w:0xee:m -Uhfuse:w:0xdf:m -Uefuse:w:0xff:m
И заливаем прошивку AmbilightUSB_v2.8.hex
avrdude -pt44 -cusbasp -u -Uflash:w:AmbilightUSB_v2.8.hex:a
Подключаем кабелем USB A to miniUSB B:
Отлично железо готово!
Установка, настройка софта
Если пользуемся Win32 (Windows XP), то складываем в одной папке библиотеки Qt, gcc, mingw (скачать) и последнюю версию софта (AmbilightUSB_v2.7.7.exe). Запускаем и радуемся (=
Для Ubuntu x86_64:
1) Качаем AmbilightUSB_v2.7.7
2) Проверяем/ставим Qt4:
$ sudo apt-get install libqt4-gui
3) Запускаем:
./AmbilightUSB_v2.7.7
Последние версии доступны в downloads.
Приложение сразу после запуска сворачивается в трей:
Double-клик на иконке в области уведомлений переключает состояние
on/off
.Тестировал в Ubuntu 10.04 (x86_64) и в Windows XP (x86):
Ширина и высота захватываемых областей очень просто настраивается, можно подогнать под разрешение фильма. Кстати сразу отвечу на вопрос «Почему сверху нет светодиодов?», все фильмы в основном широкоформатные и в верхней части экрана темно, так что я подумал, что в этом нет необходимости. Правда если очень хочется, то можно сравнительно легко добавить сдвиговых регистров и светодиодов. С железом все просто, а вот прошивку и софт придется допиливать =)
Сборка из исходников (Qt4, gcc)
0) Проверяем/ставим Qt4
$ sudo apt-get install libqt4-dev
$ sudo apt-get install libqt4-gui
1) Качаем исходники с github:
Последняя версия из репозитария: tar.gz или zip
Либо все дерево проекта:
$ git clone git@github.com:brunql/AmbilightUSB.git
2) Распаковываем архив tar.gz или zip:
tar xzvf brunql-AmbilightUSB-v*.tar.gz
unzip brunql-AmbilightUSB-v*.zip
3) Сборка:
$ cd {path/to/AmbilightUSB}/Software/
$ ./update_locales.sh
$ qmake AmbilightUSB.pro
$ make
4) Запуск!
$ ./build/AmbilightUSB
Логи пишутся в следующие файлы:
Linux: ${HOME}/.AmbilightUSB.log
Windows: C:\Documents and Settings\UserName\.AmbilightUSB.log
Настройки сохраняются здесь:
Linux: ${HOME}/.config/brunql.dev/AmbilightUSB.ini
Windows: C:\Documents and Settings\UserName\Application Data\brunql.dev\AmbilightUSB.ini
Чтобы сбросить настройки в default достаточно просто удалить файл
AmbilightUSB.ini
.Интерфейс:
English, Russian
Исходники на GitHub, всякое разное в downloads.
Подобные проекты
Ardulight Фоновая подсветка телевизора Ambilight
MoMoLight: YouTube и описание.
Ambilight 4PC
На хабре: Как я хотел сделать Ambilight для мобильного телефона и что из этого вышло
Спасибо за карму хабраюзерам: Toseter, etc, crac, Shpankov, НЛО
Просьба все очепятки отправлять в личку, либо на e-mail: mike.shatohin [at] gmail.com