Управление светодиодной лентой с помощью Raspberry PI

Всем привет!

Этот длиннопост будет о том, как сделать контроллер светодиодных лент с помощью Raspberry PI подобный этому.


Нам понадобятся:

 ●  Сам Raspberry PI.

 ●  Транзисторы P1703BDG, IRLZ34N или аналогичные n-типа, рассчитанные на нагрузку ленты и напряжение 12v. В количестве по одному на каждый канал управления.

 ● Светодиодные ленты на 12v. Можно использовать как одноцветные, так и RGB.

 ● Адресная светодиодная лента на основе контроллеров WS281x.

 ● Макетная плата и соединительные провода.

 ● Мощный блок питания на 12v. Компьютерный отлично подойдет.

 ● подключение к raspberry pi по LAN или наличие адаптера USB Wi-Fi

Управление светодиодной лентой с помощью Raspberry PI Raspberry pi, Музыка, Светодиодная лента, Схема, Гирлянда, Длиннопост, Микроконтроллеры

Начнем с основного, это выбор Raspberry PI

На данный момент существуют такие модели:

    «A» (700MHz, 256 Мб ОЗУ, 26 GPIO, 1 USB), $25

    «A+» (700MHz, 256 Мб ОЗУ, 40 GPIO, 1 USB), $20

    «B» (700MHz, 512 Мб ОЗУ, 26 GPIO, 2 USB, ethernet), $35

    «B+» (700MHz, 512 Мб ОЗУ, 40 GPIO, 4 USB,ethernet), $30

    «2B» (4x900MHz, 1 Гб ОЗУ, 40 GPIO, 4 USB, ethernet), $35

    «Zero» (1GHz, 512 МБ ОЗУ, 40 GPIO, 1 USB), $5

Для наших целей подойдет любая из этих моделей, Все, кроме Zero, можно купить на aliexpress по цене от 20$. Найти Zero по заявленной стоимости на данный момент невозможно из-за спекуляций с первой небольшой партией. Лично я купил модель 2B в технопойнте за 3500р.

Выбор светодиодных лент

На али есть огромное количество разнообразных лент в разделе

Lights & Lighting  < LED Lighting <  LED Strips

Ленты на диодах SMD 5050 очень яркие. стоимость около 100-150р за метр. Бывают как одноцветные, так и RGB. Белые и теплые белые светодиоды могут быть залиты люминофором желтого или оранжевого цвета. В ленте они объединяются по 3 на секцию.

Другой вариант - лента с диодами SMD 3528. Они меньшего размера и менее яркие. Однако в RGB ленте на секцию стоят три разных светодиода: зеленый, красный и синий. Благодаря этому ленточка смотрится эффектнее в качестве гирлянды. Для освещения комнаты такая лента не годится

Управление светодиодной лентой с помощью Raspberry PI Raspberry pi, Музыка, Светодиодная лента, Схема, Гирлянда, Длиннопост, Микроконтроллеры

В адресных лентах  можно управлять каждым светодиодом независимо. Самые распространенные контроллеры это WS2801, WS2811 и WS2812.

WS2801 - имеет 4 контакта (5v, SI, Clock, Gnd). Это отдельная тема, я не буду его сейчас рассматривать. Ленты на этом контроллере дорогие. вот про него  интересная статья на хабре.

WS281x - трехконтактные (5v, Data, Gnd). Ленты с WS2811 делают на основе диодов SMD 5050. При этом на ленте в каждой секции по 3 светодиода. Они самые дешевые из этой группы, около 1000р за 5м. WS2812 содержит по одному светодиоду и одному контроллеру на секцию. Светодиоды обычно тоже SMD 5050. Цена от 1300р за 5 метров, зависит от частоты диодов.  WS2812b отличаются тем, что контроллер встроен вовнутрь светодиода. Благодаря этому их можно уместить до 144 шт/метр. По цене и качеству почти то же, что и WS2812.

На этих контроллерах можно найти и обычные ёлочные гирлянды.  Кстати, вот неплохой вариант адресной гирлянды WS2811 за 1000р+. Её можно использовать таким же образом.

Установка ОС на Raspberry PI

В этом нет ничего сложного, инструкция есть на официальном сайте, которая сводится к тому, что нужно извлечь ZIP архив на SD или MicroSD карту.

Дисклеймер:

Я не несу ответственности за ущерб, который вы можете нанести своему устройству при сборке по схемам, приведенным ниже. Однако если у вас ясная голова и прямые руки - бояться нечего.

Управлять подачей питания мы можем на любом GPIO разъеме, на картинке ниже они подписаны как GPIO2, GPIO4, GPIO22 и т.д. У моделей A и B отсутствуют пины после 26го.

Управление светодиодной лентой с помощью Raspberry PI Raspberry pi, Музыка, Светодиодная лента, Схема, Гирлянда, Длиннопост, Микроконтроллеры

Подключение простой ленты к разъему GPIO:

Управление светодиодной лентой с помощью Raspberry PI Raspberry pi, Музыка, Светодиодная лента, Схема, Гирлянда, Длиннопост, Микроконтроллеры

● Разъем  GPIO18  подключается к затвору транзистора (GATE)

● Исток транзистора (SOURCE) подключается на землю в Raspberry PI и к блоку питания.

● Сток (DRAIN) подключаем к минусу у светодиодной ленты

● с блока питания 12v подаем напрямую на ленту.

Если у одноцветной ленты 4 контакта, подключите белый к +12V, а все остальные (R,G,B) к стоку.

С RGB лентой будет чуть сложнее, потребуется уже три транзистора:

Управление светодиодной лентой с помощью Raspberry PI Raspberry pi, Музыка, Светодиодная лента, Схема, Гирлянда, Длиннопост, Микроконтроллеры

Управление яркостью ленты будет осуществляться с помощью широтно-импульсной модуляции (PWM). Грубо говоря, лента будет мигать с очень большой скоростью так, что будет казаться, будто она горит в половину мощности. Для этого потребуется драйвер pigpio.

Установить можно его следующим образом:

wget abyz.co.uk/rpi/pigpio/pigpio.zip

unzip pigpio.zip

cd PIGPIO

make

sudo make install

Теперь можно запустить службу:

sudo pigpiod

Чтобы не запускать ее каждый раз при загрузке, можно прописать эту строчку в файл /etc/rc.local

Проверяем работоспособность PWM:

echo "p 18 128" > /dev/pigpio

эта команда должна установить скважность импульса у разъема GPIO18 на 50%.

Если до этого момента все было сделано верно, лента должна загореться на 50% мощности.

echo "p 18 255" > /dev/pigpio - включить ленту на полную яркость

echo "p 18 0" > /dev/pigpio - выключить ленту.

Отлично! Теперь можно подключаться с мобильного телефона по SSH и с помощью этих команд задать любой цвет и яркость освещения. Подойдет Android Terminal Emulator, который есть во многих прошивках Android.

Управление светодиодной лентой с помощью Raspberry PI Raspberry pi, Музыка, Светодиодная лента, Схема, Гирлянда, Длиннопост, Микроконтроллеры

Труъ-линуксойды могут написать такой скрипт ~/setColor.sh :

#!/bin/bash

echo "p 23 $1 p 24 $2 p 25 $3" > /dev/pigpio

где 23,24,25 - номера GPIO, к которым подключена лента.

Делаем файл исполняемым:

chmod 755 ~/setColor.sh

И запускаем с параметрами:

~/setColor.sh 255 64 0

Подключение адресной ленты WS281x

Адресную ленту можно подключить напрямую к Raspberry PI.

"+" к пину 2 или 4, чтобы получить 5v;

"-" к любому пину Ground (6,9,14,20,25,30,34,39)

Data - к любому пину GPIO, желательно GPIO18

Если у вас есть отдельный источник питания на 5v, лучше подключить ленточку именно к нему.

Управление светодиодной лентой с помощью Raspberry PI Raspberry pi, Музыка, Светодиодная лента, Схема, Гирлянда, Длиннопост, Микроконтроллеры

>> Делись схемой!

Вот схема, которую я собрал для своих гирлянд:

(две RGB ленты, одна WS2812 и белая лента)

Управление светодиодной лентой с помощью Raspberry PI Raspberry pi, Музыка, Светодиодная лента, Схема, Гирлянда, Длиннопост, Микроконтроллеры

>> Почему именно Raspberry PI, а не другой дешевый контроллер

Простейший алгоритм для гирлянды действительно можно сделать на Arduino nano за 130-150р. Но это уже программирование микроконтроллера на языке C и высокий порог вхождения. К тому же, его будет сложно приспособить к дистанционному управлению по локальной сети.

Raspberry PI - это полноценный компьютер, который можно настроить как угодно, в том числе писать программу для работы с лентами на любом языке программирования. А если надоест - он может использоваться как домашний медиа-сервер или Smart-TV.

На этом пока что всё. В следующий раз расскажу, как управлять адресной гирляндой, а также сделать доступ к ним через интернет или локальную сеть. Будет node.js и немного кода на javascript.