У этой светодиодной ленты 3 канала: красный, зелёный и синий, играясь с которыми можно получать разные цвета, таким образом красный будет реагировать на басы, зеленый на средние, а синий на высокие. Что из этого получится не очень понятно, так как все эти три цвета вместе будут давать белый, и может получиться так, что лента тупо будет гореть белым большую часть времени.
В качестве железа, опять таки Raspberry Pi 2 и EascyCap на базе utv007.
В качестве операционки всё тот-же 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 ампера
Подключение
Чтобы подключить ленту к Raspberry Pi 2, нам понадобятся 3 NPN транзистора (в моем случае NEC 2sd882p), так как на ленте три цвета: Красный, Зелёный и Синий, которыми мы и будем управлять. Схема подключения выглядит следующим образом:
Для реализации этой схемы, я решил воспользоваться макетной платой для безпаячного соединения, так как паять я не умею.
Красный, зелёный и синий канал с помощью красного, зелёного и синего проводов соответственно подключаем к коллекторам транзисторов (согласно datasheet-у – средняя ножка), используя макетную плату:
Эмиттеры транзисторов (ножка номер 3 – слева от базы) и землю Raspberry Pi (например pin 6) соединяем с общей землей, используя черные провода, а базы транзисторов через резистора 510 Ом подключаем к Raspberry P (pin 11,12,13):
Также базы транзисторов соединяем с общей землей через резистора 10 КОм.
И заключительный этап – соединяем общую землю с минусом источника питания, используя чёрный провод, а 12 вольт ленты с плюсом источника питания используя белый провод:
в результате это должно выглядеть примерно вот так:
Установка софта
После того как всё подключено, нам надо поставить софт. На сайте 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 канал должен включить красный, первый – зелёный, второй – синий, а остальные каналы не должны оказывать влияние на ленту:
Чтобы это исправить и оставить только 3 канала, а не 8, можно переопределить дефолтные значения. Просто создадим файл, в котором укажем, что мы хотим использовать только 3 pin-а на Raspberry Pi:
vim /home/pi/.lights.cfg
Для понимания того, что и как надо переопределить – откройте дефолтный конфиг. В случае с vim-ом это можно сделать открыв его в другом табе:
:tabnew /home/pi/lightshowpi/config/defaults.cfg
просто найдите строчку gpio_pins
Тут есть комментарий, что нужно указать номера pin-ов исходя из спецификации WiringPi, а не физической нумерации. К счастью на картинке, которую я уже показывал (а полную версию можно посмотреть тут), присутствует и нумерация в соответствии со спецификацией WiringPi:
Видно, что pin 11, который мы подключили к красному каналу соответсвует WiringPi = 0, pin 12 соответсвует WiringPi = 1 и pin 13 соответсвует WiringPi 2. То есть нам в нашем новом конфиге, который будет лежать в /home/pi/.lights.cfg просто нужно создать секцию hardware и указать, что мы хотим использовать gpio_pins 0,1 и 2:
Запустив тест ещё раз мы увидим, что используются только каналы с 0го по 2й:
Теперь осталось попробовать какой-нить mp3 файл:
Внимательный читатель вопросит, а зачем нам нужен был EasyCap. Об этом и другом – в следующей части.