PDA

Просмотр полной версии : Lightpack (динамическая подсветка за монитором)



mega_mozg_13
17.07.2013, 11:31
Lightpack (динамическая подсветка за монитором)

Есть такой проект "Lightpack" http://code.google.com/p/lightpack/
Ребята разработчики давно и успешно его развивают.

Идея мне нравится (сам давно использую простую белую лампу энергосберегайку за монитором - чтобы вчером было комфортно работать).

Заказать готовое изделие за 75$ - не наш метод.
Сварганть своё - тоже трудности мелкой пайки "at90usb162" драйверов светодидов и обвязки.

Вот решил попробовать повторить, но по своему.
Всё упростить:
вместо аппаратного USB на "at90usb162" взять нами любимый софтовый "V-USB" "ATMega8";
вместо драйверов(которыми нужно постоянно управлять от МК) использовать управляемые светодиоды "WS2811 RGB 5050" (им отправил цвет и забыл);


Вот что получилось (там картинки, этапы сборки, и исходники прошивки): http://code.google.com/p/mmlightpack/

http://mmlightpack.googlecode.com/svn/wiki/DSCF3181.JPG
http://mmlightpack.googlecode.com/svn/wiki/DSCF3184.JPG

это тест, проверка точности цветов, в готовом варианте светодиоды будут за монитором.
http://mmlightpack.googlecode.com/svn/wiki/mmlp1533.jpeg
http://mmlightpack.googlecode.com/svn/wiki/mmlp1971.jpeg
http://mmlightpack.googlecode.com/svn/wiki/mmlp3720.jpeg
http://mmlightpack.googlecode.com/svn/wiki/mmlp3804.jpeg
(для тестов прототипа использован "MJOY8")

m13alekc
17.07.2013, 19:34
Добрый день.Информации маловато,но штука интересная.Нет ли видео.И может автор не сочтет за труд в этой теме весь процесс изготовления расложить по полочкам для бестолковых. с уважением

mega_mozg_13
23.11.2013, 21:19
так и не получилось победить (срастить софтовый USB и управление светодидами).
зато на макетной "at90USB162" платке, всё работает как часы.
http://mmlightpack.googlecode.com/svn/wiki/DSCF3530.JPG
http://mmlightpack.googlecode.com/svn/wiki/DSCF3531.jpg
http://mmlightpack.googlecode.com/svn/wiki/DSCF3532.jpg
http://mmlightpack.googlecode.com/svn/wiki/DSCF3533.jpg

Alex Oz
23.11.2013, 23:19
В порядке абстрактных размышлений :)

Шина USB может делать прерывание даже для низкоскоростных устройств - 1 раз в мс - это если есть еще низкоскоростные девайсы на хабе - тупо ищется нужный адрес .Ну или 1 раз в 8 мс. В эти моменты ломается передача на WS2811 (методом ногодрыга).

Если синхронизировать управление от этих прерываний - то появится шанс и для софт-USB.


Для Атмега168 - можно разрешить прерывание дополнительно "по ноге": PCMSK2=(1<<PCINT16)

в обработчике разрешить основное прерывание, установить флажок старта обмена

ISR(PCINT2_vect)
{
sei();
//разумеется определить полярность перепада - если нужный -
Set_Flag_Start_WS2811;
}


В основном цикле отлавливать этот флаг и запускать обмен на линейку. Пакет ограничить ~800-900 мкс - должно хватить на ~40 светодиодов.

Терпят ли Ws2811 при обмене паузы между байтами? Тогда логично просится работа через SPI - один байт будет кодировать один бит в обмене, битовым заполнением этого байта подобрать 1/0 - для возможной скорости. При этом больше будет загружена аппаратная часть.


ЗЫ: у самого пока руки не добрались до WS2812 пощупать - лежат уже больше месяца.

mega_mozg_13
24.11.2013, 20:51
Alex Oz,
"WS2811" в обоих вариантах работают с отключенными прерываниями, т.е. в реализации "V-USB" протокол USB временно вырубается, вот поэтому когда у меня было 20 светиков в линейке - появлялись проблемы что ОС теряла устройство (слишком долго по времени сеанс обновления светодиодов, а обновлять приходится все одним махом).
в крайней версии я попытался разделить на 10 ножек и каждой назначить свой светодиод, теперь уже появлись проблемы с софтом "Prismatik", просто зависает через 3-5 минут работы.

ЗЫ: там на страничке сверху есть оба исходника прошивок и новый для LUFA и недоделанный для V-USB, а также просто демки "новогодней елки".

mahalov24
30.12.2013, 07:41
Супер, у меня такая же лента.
Для at90usb162 к какому порту подключать ленту ws2812 ?
Прошивку с lufa заливать?

mega_mozg_13
30.12.2013, 09:51
Супер, у меня такая же лента.
Для at90usb162 к какому порту подключать ленту ws2812 ?
Прошивку с lufa заливать?
т.к. была провальная идея подключиться к софтовому USB - у меня лента была разделена на куски по два, (причем эти два паралллельно подключены). и зайдействовались 10 ножек МК - с каждой шло управление парой светодидов.

если у тебя ws2812 одной лентой - нужно менять исходник прошивки чтобы с одной ноги отправлять всю посылку одним махом.
и "at90usb162" на какой плате? своя схема?

mahalov24
30.12.2013, 13:16
Плата от лайтпака ревизии 5.5.
Cвободные ноги, к которым можно подпаять.(PD3, PD4,PB0,PB1,PB2,PB3.)
http://serkov.su/blog/wp-content/uploads/2011/08/lightpack_board.jpg

mega_mozg_13
30.12.2013, 13:24
Плата от лайтпака ревизии 5.5
теоретически можно прикрутить её "выдернув" какую-нибудь одну ногу. увы, у меня такой платы нет, никак не помогу с портированием.

mahalov24
30.12.2013, 13:38
Свободные ноги (PD2,PD3,PB0,PB1,PB2,PB3)
http://serkov.su/blog/wp-content/uploads/2011/08/lightpack_board.jpg