Перейти к содержимому

       Торент трекер от http://stalker-worlds.ru        Хранилище сайта http://stalker-worlds.ru        Онлайн Сталкер Канал Унесенные Сталкером Присоединяйся к нашему сообществу на facebook Вступай в нашу группу в контакте


Добро пожаловать к нам на сайт! Про Ваш статус и права можно прочитать в Этой теме

Для просмотра картинок и скачивания файлов с форума - пройдите регистрацию!   Проблемы с регистрацией - вам сюда


Фотография

Ambilight для монитора

Ambilight

  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1
RUS_D

RUS_D

    Главный АДМИН

  • В сети
  • Тех. Админ
  • админ Администратор
  • Старожил сайта
<- Информация ->
  • PipPipPipPip
  • Регистрация:
    08-December 08
  • 2969 Cообщений
  • Пропуск №: 2


Репутация: 6801 Постов: 2969
  • Skype:rus_did
  • Страна проживания:Украина
  • Реальное имя:Руслан
  • Пол:Мужчина
  • Город:Полтавская обл.

ВЫ увидели у друга крутой телек  philips с подсветкой Ambilight...
ambilight2.jpg
У вас такого нет?    Ну и ладно...
Мы себе сделаем сами такое чудо.
 
ТОЛЬКО ДЛЯ своего МОНИТОРА :) или телека подключенного к компьютеру
 

 
Для начала немного инфы из википедии

Ambilight - что это?
Ambilight (сокращение от англ. «Ambient Lighting Technology» — рус. «Технология Окружающего Освещения») — технология фоновой подсветки для телевизоров, которая была изобретена и запатентована компанией Philips Electronics.

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

 
А ТЕПЕРЬ К ДЕЛУ...
---------------------------------------------

Что нам для этого нужно?
1. светодиодная лента RBG

6bb023u-960.jpg

 

2. Arduino Nano или подобная

arduino_nano_30.jpg
3. Транзисторы IRLR2905 - 9шт. по 20руб. = 180руб.
4. Резисторы 0,25W - 10шт. по 1руб. = 10руб.
5.Макетка 1шт. 40 руб.
6.Клеммная колодка на 2 провода 6шт. по 3руб. = 18руб
7. Блок питания на 12в, 1-3А (питание светодиодов много кушает)
 
Все собираем по такой схеме:
ARDULIGHT-4.png
плата

вид собранной схемы на макетке
 adulight.jpg
 
Разведенная плата для утюжной технологии :)
plata.jpg
Прикрепленный файл  Ардулайт.zip   55.6К   скачиваний 60

 
Всё, основная физическая работа закончена.
 
Скачиваем Arduino IDE http://arduino.cc/do...5.8-windows.zip
 
Распаковываем Arduino IDE в любое удобное место, папку FastLED из архива с файлами внутри кидаем в папку libraries, которая находится в папке c ArduinoIDE. Запускаем файл с arduino.exe это создаст папку «arduino» в папке с документами, в ней создаем папку NeoPixel и кидем в нее наш скетч. Выходим из Arduino IDE. 
 
Подключаем нашу ардуинку к компьютеру, драйвера должны установиться автоматически, если этого не произошло то указываем системе путь до нашей папки с Arduino IDE и драйвера должны установиться. 
 
Запускаем arduino.exe.
 
Видим следующее:
1.jpg
 
 
Вставляем код нашего скетча (приведен ниже)
2.jpg
 
В меню Сервис-> Плата выбираем нашу нано
3.jpg
 
В меню Сервис -> Процессор выбираем ATmega328
4.jpg
 
В меню Сервис -> Порт выбираем виртуальный Com порт под которым числится наша ардуинка (обычно тот что не com1)
4.jpg
 
Жмем вот эту кнопку:
3.png
 
Это скомпилирует и загрузит скетч в нашу нано. Во время этой процедуры диодики на ардуине должны интенсивно мигать. После заливки скетча закройте IDE, отключите ардуино от компьютера, подключите её к ленте с помощью нашего разъема на 3 провода и подключите блок питания к ленте. Теперь вновь подключите нано к USB.  
 
Код скетча.

#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=2; i < 20; i++){pinMode(i, OUTPUT);}     
        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 = 0; i < 18; i++)    
             {                   
               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 = 0; i < 18; i++)  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_time) D12_High; else D12_LOW;           
    if(color[11] > pwm_time) D13_High; else D13_LOW;   
      
    if(color[12] > pwm_time) D14_High; else D14_LOW;    
    if(color[13] > pwm_time) D15_High; else D15_LOW;           
    if(color[14] > pwm_time) D16_High; else D16_LOW;  
      
    if(color[15] > pwm_time) D17_High; else D17_LOW;    
    if(color[16] > pwm_time) D18_High; else D18_LOW;           
    if(color[17] > pwm_time) D19_High; else D19_LOW;  
}  

Собрали, включили и дым не пошёл.......   Но светодиоды молчат (не светятся).
Будем оживлять их с помощью программы  AmbiBox
 или другой программу Прикрепленный файл  ambilight.7z   3.67МБ   скачиваний 52
(менее функциональная).

 

Настройка Ambibox
В самом конце процесса установки появится вот такое окошко 
 
10.jpg
 
Выбираем «Adalight» и процесс установки закончен. После установки запустите программу, в трее рядом с часами появится цветной квадратик, нажмите на него два раза, откроется окно настроек. Язык программы можно поменять в настрйках программы, а основные настройки подсветки находятся здесь 
 
11.jpg
Обращаем внимание что нет настроек Сом порта.  Но оказалось, что они есть, но не влезли в окно, поэтому растягиваем за правый нижний край окно и жмем кнопку «Больше настроек»
 
И в появившихся настройках выбираем порт нашей ардуинки и количество диодов. Программа может перезапуститься при выборе порта. Здесь же можно выбрать режим работы для текущего профиля, и метод захвата, в играх выбирать их игровой режим с playclaw, а для кино режим windows 8 (самый быстрый, по моим ощущениям).
При включенных дополнительных настройках жмите кнопку «Показать зоны захвата», появятся цветные квадратики по периметру и дополнительные кнопки в меню, нажимаем «Мастер настройки зон».
 
12.jpg
 
В этом конфигураторе очень удобно настраивать большое количество зон, можно выбрать количество сторон с подсветкой, количество диодов по вертикали и горизонтали, задать смещение, выбрать формат области для захвата, размер выреза на нижней грани под подставку, монитор с которого производить захват, и даже формат 3d изображения (если вы выводите 3d сигнал на тв в формате side-by-side или over-under). Настроив, жмите «Применить», затем в главном меню сохраните настройки. Настройки для моей системы на скриншоте.
 
Все! На этом основная настройка программы закончена, но в этой программе еще ОЧЕНЬ большое количество настроек! Вы можете настроить подсветку регулируя цветовые каналы по отдельности для каждого диода, настроить сглаживание, гамму, динамику, и прочее… Можете создать отдельные профили для широкоформатного кино и переключаться на него сочетанием клавиш или автоматически при открытии программы, и даже включать по открытию винампа режим цветомузыки! Экспериментируйте!

 

Маленькое видео 


"Бить не нужно, а не вникнут - разъяснять" © В.С. Высоцкий
я в скайпе - rus_did
Мои детство и юность прошли без Интернета. Может быть, поэтому я понимаю, что за языком надо следить, а за слова отвечать.


#2
RUS_D

RUS_D

    Главный АДМИН

  • В сети
  • Тех. Админ
  • админ Администратор
  • Старожил сайта
<- Информация ->
  • PipPipPipPip
  • Регистрация:
    08-December 08
  • 2969 Cообщений
  • Пропуск №: 2


Репутация: 6801 Постов: 2969
  • Skype:rus_did
  • Страна проживания:Украина
  • Реальное имя:Руслан
  • Пол:Мужчина
  • Город:Полтавская обл.

4 зон подсветки использовано


"Бить не нужно, а не вникнут - разъяснять" © В.С. Высоцкий
я в скайпе - rus_did
Мои детство и юность прошли без Интернета. Может быть, поэтому я понимаю, что за языком надо следить, а за слова отвечать.





Количество пользователей, читающих эту тему: 0

0 members, 0 guests, 0 anonymous users

       Поездка в Припять и Чернобыль

яндекс.метрика
Button automatically alert search engines 31x31 WHOIS.UANIC.NAME - Identify traffic by Google

реклама на сайте подключена