Цветомузыка в машину: Част 1 – прототип

Как я уже писал в этом посте при постройке клона Ambilight-а я купил “неправильную” светодиодную ленту, которую решил использовать для цветомузыки. И не просто цветомузыки, а цветомузыки в машине, заодно сделав из неё mood-light.

20151104_112108 20151107_115258 20151107_115336 20151107_115237

У этой светодиодной ленты 3 канала: красный, зелёный и синий, играясь с которыми можно получать разные цвета, таким образом красный будет реагировать на басы, зеленый на средние, а синий на высокие. Что из этого получится не очень понятно, так как все эти три цвета вместе будут давать белый, и может получиться так, что лента тупо будет гореть белым большую часть времени.

В качестве железа, опять таки Raspberry Pi 2 и EascyCap на базе utv007.

20151103_220658 20151103_220604

В качестве операционки всё тот-же Raspbian от 2015-05-05, который уже включает в себя драйвер для UTV007 скачал с официального сайта.

Быстрый поиск в интернете привел меня на сайт Lightshowpi.org, который я и решил попробовать, но сначала нужно подключить ленту, а для этого нам понадобятся:

  • Raspberry pi 2
  • хороший источник питания для Raspberry pi 2 (5 вольт)
  • RGB светодиодная лента на 12 вольт
  • 12 вольт источник питания для светодиодной ленты
  • EasyCap AV video grabber (да – это перебор, но так сложилось)
  • 3 низковольтовых NPN транзистора (например 2sd882p, вот datasheet на него)
  • 3 резистора на 510 Ом
  • 3 Резистора на 10 КОм
  • провода
  • макетная плата (опционально)

В качестве питания для Raspberry Pi 2 я пользуюсь SmartBuy-вским переходником 220в на 5в / 2 ампера

20151103_220456Подключение

Чтобы подключить ленту к Raspberry Pi 2, нам понадобятся 3 NPN транзистора (в моем случае NEC 2sd882p), так как на ленте три цвета: Красный, Зелёный и Синий, которыми мы и будем управлять. Схема подключения выглядит следующим образом:

LCD

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

Красный, зелёный и синий канал с помощью красного, зелёного и синего проводов соответственно подключаем к коллекторам транзисторов (согласно datasheet-у – средняя ножка), используя макетную плату:

20151129_195803

Эмиттеры транзисторов (ножка номер 3 – слева от базы) и землю Raspberry Pi (например pin 6) соединяем с общей землей, используя черные провода, а базы транзисторов через резистора 510 Ом подключаем к Raspberry P (pin 11,12,13):

20151129_201934 moodlightpinout

Также базы транзисторов соединяем с общей землей через резистора 10 КОм.

20151129_202334

И заключительный этап – соединяем общую землю с минусом источника питания, используя чёрный провод, а 12 вольт ленты с плюсом источника питания используя белый провод:

20151129_202605

в результате это должно выглядеть примерно вот так:

20151129_205320

Установка софта

После того как всё подключено, нам надо поставить софт. На сайте lightshowpi.org есть достойная инструкция.

Как обычно первым делом надо обновиться:

sudo apt-get update
sudo apt-get upgrade

Затем скачать и установить lightshowpi

git clone https://togiles@bitbucket.org/togiles/lightshowpi.git
cd lightshowpi
./install.sh

вот и всё перезагрузите ваш Raspberry Pi и запустите тест:

cd lightshowpi
sudo python py/hardware_controller.py --state=flash

Тест начнёт по очереди включать каналы. Если вы всё сделали правильно, то 0 канал должен включить красный, первый – зелёный, второй – синий, а остальные каналы не должны оказывать влияние на ленту:

test

Чтобы это исправить и оставить только 3 канала, а не 8, можно переопределить дефолтные значения. Просто создадим файл, в котором укажем, что мы хотим использовать только 3 pin-а на Raspberry Pi:

vim /home/pi/.lights.cfg

Для понимания того, что и как надо переопределить – откройте дефолтный конфиг. В случае с vim-ом это можно сделать открыв его в другом табе:

:tabnew /home/pi/lightshowpi/config/defaults.cfg

просто найдите строчку gpio_pins

gpio_pins_lightshowpi

Тут есть комментарий, что нужно указать номера pin-ов исходя из спецификации WiringPi, а не физической нумерации. К счастью на картинке, которую я уже показывал (а полную версию можно посмотреть тут), присутствует и нумерация в соответствии со спецификацией WiringPi:

moodlightpinout

Видно, что pin 11, который мы подключили к красному каналу соответсвует WiringPi = 0, pin 12 соответсвует WiringPi = 1 и pin 13 соответсвует WiringPi 2. То есть нам в нашем новом конфиге, который будет лежать в /home/pi/.lights.cfg просто нужно создать секцию hardware и  указать, что мы хотим использовать gpio_pins 0,1 и 2:

repin

Запустив тест ещё раз мы увидим, что используются только каналы с 0го по 2й:

3chanelsonly

Теперь осталось попробовать какой-нить mp3 файл:

Внимательный читатель вопросит, а зачем нам нужен был EasyCap. Об этом и другом – в следующей части.

 

1 thought on “Цветомузыка в машину: Част 1 – прототип

  1. Pingback: Цветомузыка в машину: Част 2 – Оцифровка | В поисках счастья

Leave a Reply