Спасибо! Получается, что предидущаа версия не работала у меня из за того, что был указан больший диапазон выводов чем есть на плате, я правильно понял?
Вот что в итоге у меня получилось.
Нет.
Да.
Нужна , только руки кривые, самому не осилить
Спасибо! Получается, что предидущаа версия не работала у меня из за того, что был указан больший диапазон выводов чем есть на плате, я правильно понял?
Вот что в итоге у меня получилось.
Последний раз редактировалось wmlex; 28.01.2012 в 22:09.
Наоборот маленький диапазон и синий цвет небыл сконфигурирован.
Ты скетч из шапки брал?
Видео выложи посмотреть.
Все, разобрался, спасибо! Видео есть но там качество плохое. Чуть позже выложу.
Последний раз редактировалось Chip; 29.01.2012 в 01:06.
Отлично!
Немножко нужно уменьшить яркость Adulight
Я очень извиняюсь, что до конца не протестил, собранный девайс и программу, написал, что все нормально. У меня тоже СИНИЙ канал "неустойчиво" работал. Но тем не менее картинка периодически была верной в динамике. И я это списал на текущий полевик. А вот сегодня решил это добить, поменял полевик, тоже самое, полез замерять напряжение на ардуине, и понял, что проблем в программе. И сам вычислил проблему и поменял скетч. Все заработало и решил просветить сообщество, а тут уже проблему нашли и исправили.
Сорри еще раз за поспешный ВЫВОД, теперь вроде все верно работает.
Предисловие:
- Выдержка из инструкции: 1. Проверьте правильность подключения проводов.
- Анекдот: Стирает парень штаны и приговаривает: Никому нельзя доверять. Никому... Даже себе... Ведь только пукнуть хотел.
Теперь собственно сам пост.
Наконец то собрал вариант этого девайса на светодиодной ленте с адресуемым драйвером на чипе WS2801.
Идея которого началась еще вот с этого поста.
Решение получилось очень простое. Собрать может каждый, кто способен припаять 4 проводка
Лента была заказана перед самым новым годом.
Получена на почте в начале февраля.
3 недели ушло на то чтобы заставить её работать. Это был самый длительный и неприятный этап. Один раз по невнимательности перепутал контакты, она у меня заработала, а все следующие разы, при внимательной, аккуратной сборке по подписям ну никак не хотела работать . Решил уже что спалил. Настроение портилось из-за зря потраченных и спаленных 100 баксов и месяца потерянного времени. Оказалось, что хитрые китайцы с какой-то коварной целью на ленте перепутали местами подписи Data, Clock. До меня это так и не дошло, пару недель мучался, пытаясь заставить работать эту ленту. Проблему решил друг за один вечер, которому я отрезал кусок ленты для опытов (если она не рабочая, то не жалко, а если рабочая, то вдруг у него получится заставить её работать). На следующее утро он мне сказал причину проблемы. За что ему ОГРОМНОЕ СПАСИБО Именно к этой части всей истории относится предисловие
Дальше уже все на приподнятых эмоциях все пошло гораздо быстрее
Особенности ленты:
- светодиоды сгруппированы по 3 штуки, 1 чип на 3 RGB светодиода.
- герметизация - силиконовая трубка. Для крепления на телевизор предпочтительнее залитая в силикон. Я именно такую и заказывал, но пришла эта . На странице ленты в отзывах другой чувак написал, что заказывал наоборот в трубке, а ему пришла в заливке. Так что аккуратнее при заказе, если решитесь заказывать у этого продавца. Без герметизации считаю неудобной по причине сложностей с протиркой регулярно копящейся неизвестно от куда берущейся пыли
Скетч, взятый из этой темы, переделал с использованием библиотеки для WS2801
https://github.com/adafruit/WS2801-Library
Библиотека время от времени обновляется.
В результате получилось вот что:
В качестве управляющей программы использовал LightPack 5.8.0.Код:#include <SPI.h> #include <WS2801.h> unsigned long blank = 0; int zones = 20; int dataPin = 2; int clockPin = 3; WS2801 strip = WS2801(zones, dataPin, clockPin); int leds = zones * 3; void setup() { strip.begin(); strip.show(); Serial.begin(115200); } void loop() { if (Serial.available() > leds) { if (Serial.read() == 255) //проверка префикса { for (int i = 0; i < zones; i++) { // прочитать данные о цветах из порта в массив //byte red = Serial.read(); //byte green = Serial.read(); //byte blue = Serial.read(); byte green = Serial.read(); byte blue = Serial.read(); byte red = Serial.read(); strip.setPixelColor(i, Color(red, green, blue)); } blank = 0; } } else { if (blank > 100000) { blank = 0; for (int i = 0; i < zones; i++) { strip.setPixelColor(i, Color(0, 0, 0)); } } blank++; } strip.show(); } // Create a 24 bit color value from R,G,B uint32_t Color(byte r, byte g, byte b) { uint32_t c; c = r; c <<= 8; c |= g; c <<= 8; c |= b; return c; }
Описание проекта тут http://code.google.com/p/lightpack/
Скачать софт отсюда http://code.google.com/p/lightpack/downloads/list
Использовал его как наиболее легко настраиваемый и более интуитивно понятный для простого человека, т.к. этим проектом заинтересовались мои друзья, знакомые, далекие от электроники и программирования.
Демонстрации работы ленты
в катушке на столе:
лентой на полу:
Примерно тоже самое только участников больше
Как это все выглядит на мониторе. Пока без окончательно крепления на заднюю стенку монитора:
Настройки зон в LightPack
Вот тут должна быть картинка, но вот в FireFox 10.0.2 не хочет она отображаться, в Google Chrome все нормально.
Поэтому ссылка на всякий случай на картинку без предпросмотра ниже
http://imageshost.ru/photo/176582/id1506771.html
LightPack c 20 зонами и с захватом 60 кадров в секунду нагружает процессор на 40%
CPU Intel Core 2 Duo E8400 3.0ГГц
RAM 6Гб
Video Asus GeForce 9600
OS Ubuntu 10.04 x64
Тут картинки окончательного решения
Планы на будущее:
- хотелось бы добавить в протокол передачи данные с компа на контроллер после синхронизирующего кода 255 количество зон. Библиотека WS2801 позволяет динамически менять количество адресуемых пикселей. И это параметр позволит менять количество зон без перепрошивки контроллера. 8 бит на 1 кадр не сильно увеличат объем передаваемых данных, зато сильно упростять конфигурацию конечной пользовательской системы.
- попробовать использовать библиотеку FastSPI. Еще не ковырял её, но вроде как было написано, что она каким-то образом не хранит в памяти массив цветов каждой зоны. Это позволит снять ограничения контроллера на объем имеющейся оперативной памяти и позволит адресовать большее количество зон.
- применить RGB ленту с чипом на 1 RGB светодиод. Например вот такую
http://www.aliexpress.com/product-gs...olesalers.html
Пока жаба душит расставаться с 150 баксами Поищу подешевле, поднакоплю денег, либо найду сил придушить жабу
- применить вместо большой и избыточной по всем параметром Arduino Mega 2560 мелкую Arduino Nano. Контроллер заказан, жду доставки.
- сделать управляющую программу для Andriod, т.к. имеется такая приставка к телеку и вот такая тема ambilight для телефона на andriod, и вот такое направление NetUp IPTV Android.
- также хотелось бы иметь управляющую программу для приставок Dune HD, например для TV-101
Проблемы:
- непонятно почему мне пришлось изменить порядок чтения цветов. Исходный порядок закомментирован. Рабочий порядок представлен. Если кто-то объяснит почему так? я что-то не понимаю или в лайтпаке такая особенность или еще какая вариант буду очень благодарен. Решение проблемы тут
- каким-то образом проскакивают помехи которые поджигают пиксели дальше определенного настроенного количества зон. Замечено при возникновении помех в электрической сети - переключение режимов холодильника (Холодильник относительно не древний. Двухкамерный Атлант ). По идее количество зон будет ограничено длиной самой ленты. Но вот вопрос/беспокойство - насколько эти помехи могут сказаться на работе девайса в целом?
Уф, вот такой отчетик по проделанной работе. Очень надеюсь, что кому-то он облегчит жизнь.
Замечания, предложения, пожелания, идеи, конструктивная критика приветствуются.
Последний раз редактировалось MAKC; 12.03.2012 в 00:47. Причина: добавлена ссылка на картинки окончательного вида
Молодец!
Я все никак не закажу эту ленту, думаю что поле твоего поста ускорю я это дело.
Буду заказывать с чипом на 1 RGB светодиод
Программу нужно делать для этой ленты немного другую, как приедет лента займусь
А вот по поводу помех , какое питание используешь?
старенький блок питания ATX на 235 Вт
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)