Спасибо! Получается, что предидущаа версия не работала у меня из за того, что был указан больший диапазон выводов чем есть на плате, я правильно понял?
Вот что в итоге у меня получилось.
http://s018.radikal.ru/i509/1201/07/7f3c8c725cb6.jpg
Вид для печати
Спасибо! Получается, что предидущаа версия не работала у меня из за того, что был указан больший диапазон выводов чем есть на плате, я правильно понял?
Вот что в итоге у меня получилось.
http://s018.radikal.ru/i509/1201/07/7f3c8c725cb6.jpg
Наоборот маленький диапазон и синий цвет небыл сконфигурирован.
Ты скетч из шапки брал?
Видео выложи посмотреть.
Все, разобрался, спасибо! Видео есть но там качество плохое. Чуть позже выложу.
Отлично!
Немножко нужно уменьшить яркость Adulight
Я очень извиняюсь, что до конца не протестил, собранный девайс и программу, написал, что все нормально. У меня тоже СИНИЙ канал "неустойчиво" работал. Но тем не менее картинка периодически была верной в динамике. И я это списал на текущий полевик. А вот сегодня решил это добить, поменял полевик, тоже самое, полез замерять напряжение на ардуине, и понял, что проблем в программе. И сам вычислил проблему и поменял скетч. Все заработало и решил просветить сообщество, а тут уже проблему нашли и исправили.
Сорри еще раз за поспешный ВЫВОД, теперь вроде все верно работает.
Предисловие:
- Выдержка из инструкции: 1. Проверьте правильность подключения проводов.
- Анекдот: Стирает парень штаны и приговаривает: Никому нельзя доверять. Никому... Даже себе... Ведь только пукнуть хотел.
Теперь собственно сам пост.
Наконец то собрал вариант этого девайса на светодиодной ленте с адресуемым драйвером на чипе WS2801.
Идея которого началась еще вот с этого поста.
Решение получилось очень простое. Собрать может каждый, кто способен припаять 4 проводка :)
Лента была заказана перед самым новым годом.
Получена на почте в начале февраля.
3 недели ушло на то чтобы заставить её работать. Это был самый длительный и неприятный этап. Один раз по невнимательности перепутал контакты, она у меня заработала, а все следующие разы, при внимательной, аккуратной сборке по подписям ну никак не хотела работать :(. Решил уже что спалил. Настроение портилось из-за зря потраченных и спаленных 100 баксов и месяца потерянного времени. Оказалось, что хитрые китайцы с какой-то коварной целью на ленте перепутали местами подписи Data, Clock. До меня это так и не дошло, пару недель мучался, пытаясь заставить работать эту ленту. Проблему решил друг за один вечер, которому я отрезал кусок ленты для опытов (если она не рабочая, то не жалко, а если рабочая, то вдруг у него получится заставить её работать). На следующее утро он мне сказал причину проблемы. За что ему ОГРОМНОЕ СПАСИБО :) Именно к этой части всей истории относится предисловие :)
http://img13.imageshost.ru/img/2012/...2835_small.jpg
Дальше уже все на приподнятых эмоциях все пошло гораздо быстрее :)
Особенности ленты:
- светодиоды сгруппированы по 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
http://img13.imageshost.ru/img/2012/...a0ea_small.jpg
Вот тут должна быть картинка, но вот в 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
Проблемы:
- непонятно почему мне пришлось изменить порядок чтения цветов. Исходный порядок закомментирован. Рабочий порядок представлен. Если кто-то объяснит почему так? я что-то не понимаю или в лайтпаке такая особенность или еще какая вариант буду очень благодарен. Решение проблемы тут
- каким-то образом проскакивают помехи которые поджигают пиксели дальше определенного настроенного количества зон. Замечено при возникновении помех в электрической сети - переключение режимов холодильника (Холодильник относительно не древний. Двухкамерный Атлант :) ). По идее количество зон будет ограничено длиной самой ленты. Но вот вопрос/беспокойство - насколько эти помехи могут сказаться на работе девайса в целом?
Уф, вот такой отчетик по проделанной работе. Очень надеюсь, что кому-то он облегчит жизнь.
Замечания, предложения, пожелания, идеи, конструктивная критика приветствуются.
Молодец!
Я все никак не закажу эту ленту, думаю что поле твоего поста ускорю я это дело.
Буду заказывать с чипом на 1 RGB светодиод
Программу нужно делать для этой ленты немного другую, как приедет лента займусь
А вот по поводу помех , какое питание используешь?
старенький блок питания ATX на 235 Вт