485

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

Всем привет!

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


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

 ●  Сам Raspberry PI.

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

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

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

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

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

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

Начнем с основного, это выбор 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 ленте на секцию стоят три разных светодиода: зеленый, красный и синий. Благодаря этому ленточка смотрится эффектнее в качестве гирлянды. Для освещения комнаты такая лента не годится

В адресных лентах  можно управлять каждым светодиодом независимо. Самые распространенные контроллеры это 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го.

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

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

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

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

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

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

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

Управление яркостью ленты будет осуществляться с помощью широтно-импульсной модуляции (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.

Труъ-линуксойды могут написать такой скрипт ~/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, лучше подключить ленточку именно к нему.

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

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

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

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

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

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

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

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества