Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.04.2010, 11:41   #1
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Ambilight для HTPC

Собираем Ambilight своими руками

Название проекта Ardulight.
Идею я вынашивал давно , но как всегда не хватало времени.
Несколько дней назад мой знакомый подкинул идею собрать Ambilight на Arduino для HTPC.
Так как я для просмотра и закачки фильмов использую HTPC на базе Acer Revo, то сразу загорелся немедленной реализацией этой идеи . Для меня как всегда возникает проблема с травлением платы, это что то сравнимо с капитальным ремонтом двигателя в автомобиле на улице И тут как всегда на помощь приходит Arduino Nano V.7 и макетная плата MB-102. На сборку устройства ушло всего пол часа. Конечно в этом есть и свои минусы , так как приходится все элементы соединять проводками, но так как мне требовалось экспериментировать то это был самый подходящий вариант.

За пол часа спаял на макетной платеардуино нано v7 + ключи. За 15 мин. написал скетчь для Arduino , работающий с двумя зонами(6 каналов аппаратного ШИМ)
Но уперся в настройки программы в Win 7, программа ни как не хотела передавать синхронно данные, наблюдалось отставание до 10 сек.
Оказалось все просто, нужно было сменить тему AERO на упрощенную, и все сразу заработало.
Для работы программы нужно в ее конфиге указать сом порт на котором сидит Arduino. Запускать нужно файлом Start_Ambilight

Другая проблема возникла при написании четырех зонового скетча.
Все уперлось в аппаратный PWM и прерывания по таймеру.
Вообщем при программировании прерывания по таймеру автоматом отключается две ножки аппаратного ШИМ, так как все 6 выходов ШИМ используют все три тамера, по две ноги PWM на каждый таймер, пришлось отказаться от аппаратного ШИМ и сделать софтверный ШИМ.
Теперь все отлично работает смотрите на видео.
Для увеличения зон до восьми можно использовать еще одинин контроллер arduino nanoи связать их между собой по I2C или сделать на регистрах 74HC595. Погонял пару дней программу Boblight , понял что мне многово не хватает, регулировки яркости, температуры цвета и насыщенности. К то муже у этой программы куча недостатков, таких как отставание от реальной картинки от 1 до 10 сек. Программа не работает с темами AERO в Windows 7 и многое другое.
Решил написать свою программу.
Моя программа умеет выводить от 1 до 42 каналов, есть регулировка яркости , насыщенности и баланса белого.
Корректно работает с Windows 7 и темой AERO , не тормозит на разрешениях 1900х1080, корректно выходит из Сна и Hibernation , имеется конфигурационный фаил, с возможностью отключения не нужных каналов и настройкой областей сканирования, изменения времени сканирования и т.д. Проверял программу с 4-мя зонами, то есть 12 каналов, все отлично работает

Подсветку установил на плазму 50' , использовал светодиодные ленты RGB двойной плотности. Всего ушло 2м 60 см. Данная лента потребляет ток 800мА на один метр, так что БП от моего монитора Lilliput мне хватило для питания светодиодных лент. Расчет простой 2,6*0,8=2А при максимально открытых ключах.

На фото RGB светодиодная лента.
Вложение 7676

На видео 50' дюймовая плазма .
Снимал мыльницой, качество получилось не очень хорошее,
нарушена цветопередача


Собрал на скорую руку на мекетке

Название: adulight.jpg
Просмотров: 9373

Размер: 14.6 Кб
Название: ardulite1.jpg
Просмотров: 9188

Размер: 9.1 Кб

Sketch для Arduino
[/URL]
PHP код:
#define  D2_High PORTD |=B00000100  //red   
#define  D2_LOW PORTD &= B11111011   
#define  D3_High PORTD |=B00001000  //green   
#define  D3_LOW PORTD &= B11110111   
#define  D4_High PORTD |=B00010000  //blue   
#define  D4_LOW PORTD &= B11101111   

#define  D5_High PORTD |=B00100000   
#define  D5_LOW PORTD &= B11011111   
#define  D6_High PORTD |=B01000000    
#define  D6_LOW PORTD &= B10111111   
#define  D7_High PORTD |=B10000000   
#define  D7_LOW PORTD &= B01111111   

#define  D8_High PORTB |=B00000001   
#define  D8_LOW PORTB &= B11111110   
#define  D9_High PORTB |=B00000010   
#define  D9_LOW PORTB &= B11111101   
#define  D10_High PORTB|=B00000100   
#define  D10_LOW PORTB &=B11111011   

#define D11_High PORTB |=B00001000   
#define D11_LOW PORTB &= B11110111   
#define D12_High PORTB |=B00010000   
#define D12_LOW PORTB &= B11101111   
#define D13_High PORTB |=B00100000   
#define D13_LOW PORTB &= B11011111   

#define D14_High PORTC |=B00000001   
#define D14_LOW PORTC &= B11111110   
#define D15_High PORTC |=B00000010   
#define D15_LOW PORTC &= B11111101   
#define D16_High PORTC |=B00000100   
#define D16_LOW PORTC &= B11111011  

#define D17_High PORTC |=B00001000   
#define D17_LOW PORTC &= B11110111   
#define D18_High PORTC |=B00010000   
#define D18_LOW PORTC &= B11101111   
#define D19_High PORTC |=B00100000   
#define D19_LOW PORTC &= B11011111  

volatile unsigned int tcnt2;   
volatile byte pwm_time;   
//byte pwm_time, Red_R_Old, Green_L_Old, Blue_T_Old;   
unsigned long blank=0//таймер простоя   
byte volatile color[18];  //массив храннения цветов 12-ть каналов   


void setup()    
{   
        for (
int i=220i++){pinMode(iOUTPUT);}     
        
Serial.begin(115200);   
     
     
TIMSK2 &= ~(1<<TOIE2); //разрешения прерывания по переполнению таймера/счетчика Т2    
    
TCCR2A &= ~((1<<WGM21) | (1<<WGM20));// Режим работы таймера/счетчика   
    
TCCR2B &= ~(1<<WGM22);// Режим работы таймера/счетчика   
    
ASSR &= ~(1<<AS2);  //Выбор источника синхронизации таймера если AS2=0 от системного генератора   
    
tcnt2 252//  16000000/31000/64=8 tcnt2=256-8=248.       
    
TIMSK2 |= (1<<TOIE2);//Разрешение прерывания по переполнению Т2.   
}   

void loop()    
{   
  if (
Serial.available() > 18)    
  {    
      if (
Serial.read() == 255)  //проверка прификса         
        
{   
            for (
int i 018i++)    
             {                   
               
color[i] = Serial.read();  // прочитать данные о цветах из порта в массив   
             
}         
            
// if (Red_R_Old == color[0] && Green_L_Old == color[4] && Blue_T_Old == color[8])     
             
blank=0;   
        }   
  } else {    
           if(
blank>100000) { blank=0; for (byte i 018i++)  color[i] = 0;}    
          
blank++;    
         }     
}    
//****************обработчик прерывания********************   
ISR(TIMER2_OVF_vect)    
{   
    
TCNT2 tcnt2;   

 
pwm_time++;   
    if(
color[0] > pwm_time D2_High;  else D2_LOW;    
    if(
color[1] > pwm_time D3_High;  else D3_LOW;   
    if(
color[2] > pwm_time D4_High;  else D4_LOW;    
       
    if(
color[3] > pwm_time D5_High;  else D5_LOW;   
    if(
color[4] > pwm_time D6_High;  else D6_LOW;   
    if(
color[5] > pwm_time D7_High;  else D7_LOW;    
       
    if(
color[6] > pwm_time D8_High;  else D8_LOW;   
    if(
color[7] > pwm_time D9_High;  else D9_LOW;   
    if(
color[8] > pwm_time D10_High; else D10_LOW;   
       
    if(
color[9] > pwm_time D11_High; else D11_LOW;    
    if(
color[10] > pwm_timeD12_High; else D12_LOW;           
    if(
color[11] > pwm_timeD13_High; else D13_LOW;   
      
    if(
color[12] > pwm_timeD14_High; else D14_LOW;    
    if(
color[13] > pwm_timeD15_High; else D15_LOW;           
    if(
color[14] > pwm_timeD16_High; else D16_LOW;  
      
    if(
color[15] > pwm_timeD17_High; else D17_LOW;    
    if(
color[16] > pwm_timeD18_High; else D18_LOW;           
    if(
color[17] > pwm_timeD19_High; else D19_LOW;  

По схеме железу:
Транзисторы использовал с запасом на будущее, так что можно и по слабее поставить. Транзисторы без драйверов в полне справляются на частоте 31000гц, происходит полное открывание , при использовании на протяжении нескольких часов они не нагрелись , остались холодными.

Нажмите на изображение для увеличения
Название: CARDUINO_ARDULIGHT-4.png
Просмотров: 2368
Размер:	64.2 Кб
ID:	1317

Печатную плату нарисовал Kristy
Название: 1fafa8bcaa19.jpg
Просмотров: 9798

Размер: 27.7 Кб

Бюджет:
arduino Nano V.7 - 1шт. 780руб.
Транзисторы IRLR2905 - 9шт. по 20руб. = 180руб.
Резисторы 0,25W - 10шт. по 1руб. = 10руб.
Макетка 1шт. 40 руб.
Клеммная колодка на 2 провода 6шт. по 3руб. = 18руб
Лента светодиодная RGB двойной плотности - 3м по 750руб = 2250руб.
Для тех кому кажется что подсветка сильно яркая , можно купить светодиодную ленту обычную не двойной плотности цена 400руб. за 1м

Ардуино следит за тем когда заснет комп и выключает подсветку.
Название: Ardulight.jpg
Просмотров: 9201

Размер: 3.2 Кб

P.S.
Эффект классный , на динамических сценах создается ощущение что объект выходит за пределы экрана. При взрывах и вспышках эффект удваивается
Короче говоря супер !!! Всем рекомендую.

Есть еще программа для работы этой подсветки с музыкой .


Будут вопросы спрашивайте.
Admin вне форума   Ответить с цитированием
Старый 08.05.2010, 14:51   #2
lvovitch
Senior Member
 
Регистрация: 14.04.2010
Сообщений: 239
Вес репутации: 0
lvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond repute
По умолчанию

У меня есть вопрос:

а вот к примеру если у человека руки золотые, но растут не оттуда, а эмбилайт хочется, что ему делать?

Проще говоря, будут ли продаваться такие устройства уже в готовом виде?


P.S. там не все картинки работают
lvovitch вне форума   Ответить с цитированием
Старый 16.05.2010, 18:03   #3
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

ВОзможно на 24 канала закажем пробную партию
Admin вне форума   Ответить с цитированием
Старый 16.12.2013, 16:16   #4
Anril13
Member
 
Регистрация: 28.08.2013
Адрес: Москва/Тула
Возраст: 30
Сообщений: 62
Вес репутации: 0
Anril13 is an unknown quantity at this point
Отправить сообщение для Anril13 с помощью ICQ Отправить сообщение для Anril13 с помощью Skype™
По умолчанию Re: Ambilight для HTPC

Arduino 1.0.4 (Контроллер UNO R3), залил скетч, проверяю, такая картина:
Anril13 вне форума   Ответить с цитированием
Старый 16.12.2013, 16:47   #5
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Ambilight для HTPC

Подправил код
Admin вне форума   Ответить с цитированием
Старый 16.12.2013, 17:44   #6
Anril13
Member
 
Регистрация: 28.08.2013
Адрес: Москва/Тула
Возраст: 30
Сообщений: 62
Вес репутации: 0
Anril13 is an unknown quantity at this point
Отправить сообщение для Anril13 с помощью ICQ Отправить сообщение для Anril13 с помощью Skype™
По умолчанию Re: Ambilight для HTPC

Цитата:
Сообщение от Admin Посмотреть сообщение
Подправил код
Все прошилось. Еще два вопроса:
в какой программе есть режим цветомузыка?
какие транзисторы можно использовать? (для тестирования, потом куплю мосфеты)
Anril13 вне форума   Ответить с цитированием
Старый 16.12.2013, 17:46   #7
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Ambilight для HTPC

Программ на самом деле много, например Боблайт
Транзисторы зависят он нагрузки, какая у Вас будет нагрузка на 1 канал?

P.S.
Не по теме, с роутером разобрались?
А то у меня есть еще 2-е подсказки
Admin вне форума   Ответить с цитированием
Старый 16.12.2013, 17:51   #8
Anril13
Member
 
Регистрация: 28.08.2013
Адрес: Москва/Тула
Возраст: 30
Сообщений: 62
Вес репутации: 0
Anril13 is an unknown quantity at this point
Отправить сообщение для Anril13 с помощью ICQ Отправить сообщение для Anril13 с помощью Skype™
По умолчанию Re: Ambilight для HTPC

Цитата:
Сообщение от Admin Посмотреть сообщение
Программ на самом деле много, например Боблайт
Транзисторы зависят он нагрузки, какая у Вас будет нагрузка на 1 канал?


P.S.
Не по теме, с роутером разобрались?
А то у меня есть еще 2-е подсказки
Нужно подключить 5 метров RGB ленты и потом еще два стробоскопа (2 мощных светодиода или же пучок простых, белых) А сейчас хватит хотябы проверить работоспособность в общем. Из транзисторов есть много разных кт, МП, п, 1т, 2т-шек.
Вот такая лента, тестер стоит на измерении амер ( 10A )


Роутер больше не трогал, решил пока ЦМУ сделать.
Что за подсказки?

Последний раз редактировалось Anril13; 16.12.2013 в 17:58.
Anril13 вне форума   Ответить с цитированием
Старый 16.12.2013, 18:11   #9
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Ambilight для HTPC

Для 10А лучше использовать
IRLU8259 или IRLR2905

По поводу подсказок в соответствующей теме отвечу
Admin вне форума   Ответить с цитированием
Старый 16.12.2013, 18:23   #10
Anril13
Member
 
Регистрация: 28.08.2013
Адрес: Москва/Тула
Возраст: 30
Сообщений: 62
Вес репутации: 0
Anril13 is an unknown quantity at this point
Отправить сообщение для Anril13 с помощью ICQ Отправить сообщение для Anril13 с помощью Skype™
По умолчанию Re: Ambilight для HTPC

Цитата:
Сообщение от Admin Посмотреть сообщение
Для 10А лучше использовать
IRLU8259 или IRLR2905

По поводу подсказок в соответствующей теме отвечу
10А это пик тестера, лента тянет судя по показаниям 0,33 ампера, блок питания 9 вольт.
Anril13 вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 2 (пользователей: 0 , гостей: 2)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 02:08. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика