Светодиодная панель с Raspberry Pi
Рассмотрим примеры использования светодиодной RGB-матрицы с одноплатным компьютером Raspberry Pi.
Видеообзор
Что понадобится
Подключение и настройка
Железная часть
Рекомендуем использовать блок питания с выходным напряжением 5 вольт и током не менее 4 ампер. Идеально подойдёт блок питания с выходным напряжением 5 вольт и током 5 ампер. При подключении удобно воспользоватся штекером питания 2,1 мм с клеммником
При подключении нескольких светодиодных панелей, соответственно увеличивайте запас по току в N-раз, где N — количество матриц в цепочке.
На схеме матрицы и контроллера нет встроенного регулятора напряжения. При подаче напряжения более 5 вольт — вы убьёте LED панель и драйвер.
Цепочка из матриц
Матрицы легко соединять в цепочку (гирлянду). А потом программным методом выводить информацию на дисплей из матриц.
Максимальное количество матриц в цепочке 12.
Программная часть
Программная часть данной инструкции не подходит для raspberry pi 4. Если у вас raspberry pi 4 используйте эту инструкцию.
Откроется меню установки с предложением продолжить/отменить установку.
В итоге вы должны увидеть папку «rpi-rgb-led-matrix».
Примеры работы
Для запуска примеров выполните железную и программную настройку платформы.
Демонстрационные
В библиотеку входят скомпилированные примеры для демонстрации работы матрицы. Запустим их.
В итоге на матрице отобразится текущее время.
Вывод изображений и анимаций
Библиотека также позволяет выводить статические и анимированные изображения.
Пакеты установлены. Переходим к выводу картинок.
Вывод изображения
Для переноса файлов с ПК на Raspberry Pi можно воспользоватся утилитой WinSCP
Вывод анимации
Усложним задачу. Что бы было интереснее увеличим дисплей — подключим вторую матрицу и выведем анимацию.
Для переноса файлов с ПК на Raspberry Pi можно воспользоватся утилитой WinSCP
Вывод видео
Методы библиотеки позволяет выводить видео на две LED панели.
Вывод видео на RGB-матрицы сильно загружает процессор и декодирование может привести бликам и мерцанием. Метод библиотеки позволяет выводить только видео дорожку, к сожалению без звука.
Для переноса файлов с ПК на Raspberry Pi можно воспользоватся утилитой WinSCP
Подключаем светодиодную матрицу к Raspberry pi
Давно лежала в коробочке светодиодная матрица 8*8 в комплекте с чипом для её управления MAX7219, резистором 10 кОм, конденсаторами — керамическим на 100 нФ и электролитическим на 10 мкФ, монтажной платой и несколькими коннекторами. Комплект получается как на фото. Наконец-то собрался с силами и решил её подключить.
Долго искал, как такой комплект подключить к raspberry и пример программы на С+, но не нашел, зато есть много примеров для ардуино. Удалось найти только пример кода на питоне и инструкцию по настройке, который за неимением лучшего и использовал. А в этом материале расскажу подробно, как подключить.
Во-первых, необходимо этот комплект собрать на печатной плате — там все просто, особенно после прочтения инструкции по пайке «паять просто».
Приступаем к настройке малины
Проверяем, включен ли у нас SPI. Для этого в терминале вводим:
Должно получиться что-то вроде этого:
Если ничего в ответ не выводится,
Заходим в программу настройка Raspberry:
Пункт 8 Advanced options > A6 SPI > Yes (Would you like the SPI interface enabled?) > OK > Yes (Would you like the SPI kernel module to be loaded by default?) > OK
Проверяем, установлен ли у нас SPI в /dev, для этого набираем в терминале:
На экране должны получить:
Подключаем наш модуль к Raspberry:
VCC — к 5V малины
GND — к gnd
DIN (data in) — GPIO 10 (SPI MOSI)
CS (chip select) — GPIO 8 (SPI CS0)
CLK (clock) — GPIO 11 (SPI CLK)
С другой стороны модуля есть пины с похожими обозначениями — они предназначены для последовательного подключения модулей.
Устанавливаем необходимые программы для вывода информации на дисплей
Скачиваем библиотеку для работы с модулем:
Устанавливаем необходимые компоненты:
Запускаем имеющийся пример и проверяем работу модуля:
На дисплее должна появиться бегущая строка с текстом из примера. Текст можно изменить, для этого правим файл с помощью команды:
Выводимый на дисплее текст указан в скобках после команды device.show_message.
Пример работы дисплея на основе идеи dev_random:
RGB матрица 64×32, 64×64, 128×64, подключаем к Raspberry
Общие сведения:
RGB матрица 64×32 и RGB матрица 128×64 — цифровая полноцветная светодиодная матрица.
Можно использовать в любых проектах, где требуется вывод данных на цветной дисплей. В качестве данных для вывода могут использоваться изображения, символы или бегущая строка.
Представлена в 4 вариантах:
Видео:
Спецификация:
- Шаг пикселя:
- P2.5: 2.5мм;
- P3: 3мм;
- P4: 4мм;
- Питание:
- 64×32: 5В/до 4А;
- 128×64, 64×64: 5В/до 8А;
- Интерфейс модуля: HUB75;
- Структура пикселя: 1R1G1B;
- Режим сканирования: 1/16;
- Яркость: 1100
1300кд/кв.м;
- Оттенки серого: 14бит;
- Глубина цвета: >16бит;
- Кадровая частота: 60Гц;
- Частота обновления: 100Гц;
- Расстояние комфортной видимости: >4м;
- Углы обзора: 160°/160°;
- Степень защиты: IP50 (лицевая панель)/ IP4X (задняя панель);
- Количество пикселей: 2048;
- Рабочая температура: -10°
40°С;
- Размеры модуля:
- P3: 192мм x 96мм х 15мм;
- P2.5 64×32: 160мм х 80мм х 15мм;
- P4: 256мм x 128мм х 15мм;
- P2.5 64×64: 160мм х 160мм х 15мм;
- P2.5 128×64: 320мм х 160мм х 15мм;
Подключение:
Способ 1: Шлейф и RGB Matrix Hat
Для удобства подключения можно воспользоваться RGB Matrix Hat
Модуль устанавливается на 40-пиновый разъём Rasperry
Для подключения матрицы используется 16-проводной шлейф, идущий в комплекте с матрицами
Для использования модуля с матрицами размером 128×64 и 64×64 необходимо использовать дополнительную линию адресации. На колодке таких матриц она может находиться либо на четвёртом пине, либо на восьмом. При использовании таких матриц необходимо опытным путём выяснить где находится эта линия, попробовав одно из ниже перечисленных положений джамперов:
Линиия Е на четвёртом выводе разъёма:
Линиия Е на восьмом выводе разъёма:
Стандартное положение джамперов:
Способ 2: Шлейф и провода папа-мама
Для подключения матрицы используется 16-проводной шлейф и провода папа-мама.
Распиновка разъёма матрицы и шлейфа:
![]() | Разъём матрицы 64×32 | |||||||||||||||||||||||||||||||
![]() | Разъём матрицы 128×64 | |||||||||||||||||||||||||||||||
![]() | Шлейф | |||||||||||||||||||||||||||||||
![]() | Подключение шлейфа | |||||||||||||||||||||||||||||||
![]() | Распиновка шлейфа 128×64 и 64×64 | |||||||||||||||||||||||||||||||
![]() |
Вывод матрицы | Вывод матрицы |
---|---|
Вывод R1 | GPIO 11 |
Вывод G1 | GPIO 27 |
Вывод B1 | GPIO 7 |
Вывод R2 | GPIO 8 |
Вывод G2 | GPIO 9 |
Вывод B2 | GPIO 10 |
Вывод A | GPIO 22 |
Вывод B | GPIO 23 |
Вывод C | GPIO 24 |
Вывод D | GPIO 25 |
Вывод E только для матриц 64×64 и 128×64 | GPIO 15 |
Вывод CLK | GPIO 17 |
Вывод OE | GPIO 18 |
Вывод LAT | GPIO 4 |
Выводы GND | Выводы GND |
Питание:
К RGB матрице 64х32 подключается питание напряжением 5В и током до 4А.
К RGB матрицам 128×64 и 64×64 подключается питание напряжением 5В и током до 8А.
Подробнее о матрице:
Вывод текста и фигур
Если Вы ещё ни разу не настраивали Raspberry, то можете сделать это руководствуясь этой статьёй
Весь дальнейший материал предполагает установленную систему Raspbian Buster и отсутствие драйверов и надстроек, которые могут использовать выводы GPIO.
При помощи библиотеки rpi-rgb-led-matrix возможен вывод фигур, изображений, текста и бегущей строки на светодиодную матрицу используя C++, C# или Python. Мы рассмотрим вывод на матрицу используя Python.
Откроем эмулятор терминала в верхней панели графической среды Raspberry.
Создадим директорию для хранения будущих Github проектов командой mkdir (make directory — создать директорию):
Перейдём в директорию командой cd (change directory — сменить директорию):
Склонируем репозиторий (необходимо подключение к интернету):
Далее перейдём в директорию python внутри директории rpi-rgb-led-matrix/bindings
Теперь наберём три строки, нажимая в конце каждой строки и дожидаясь выполнения сборки и/или установки после каждой строки
После успешной установки можно попробовать вывести текст на матрицу
Перейдём в директорию примеров
Здесь важно сказать, что для работы с матрицей необходимо либо отключить драйвер встроенного в процессор Raspberry аудио генератора, либо передать сценарию python аргумент —led-no-hardware-pulse=1. В первом случае матрица будет работать с аппаратным тактированием и, если нужен звук, можно использовать внешнюю USB карту (так же при этих условиях сценарии необходимо запускать от имени привилегированного пользователя командой sudo ). Для отключения встроенного генератора аудио необходимо закомментировать строку dtparam=audio=on в файле /boot/config.txt . Во втором случае можно использовать встроенный звук Raspberry, но программа вывода на матрицу будет использовать программное тактирование, что скажется на качестве изображения.
Для проверки работы матрицы запустим программу с использованием программного тактирования:
Разберёмся что к чему:
- —led-cols=128 — количество пикселей в матрице по одной из сторон. В случае примера выше 128, т.к. панель в примере 128×64
- —led-rows=64 — количество пикселей в матрице по другой стороне. В случае примера выше 64.
- —led-no-hardware-pulse=1 — использовать или нет аппаратное тактирование. Если не передавать этот аргумент, то будет использоваться аппаратное тактирование.
- -t — текст для отображения на матрице.
Так же можно передать аргумент -с если подключено больше одной панели. Например -c 3 , если подключено 3 панели в линию.
Подробнее про аргументы, передаваемые библиотеке можно узнать из файла README.md
Теперь разберём вывод фигур на примере файла graphics.py в этой же директории.
Сценарий вывода графики
Если синий и зелёный цвета перепутаны, передайте сценарию аргумент —led-rgb-sequence=RBG
Сценарий вывода в цикле с обновлением
Вывод кадрового буфера
Для вывода кадрового буфера необходимо отключить GL-драйвер в raspi-config .
В эмуляторе терминала:
Далее выберете Advanced Options :
Перезагрузите Raspberry Pi.
При помощи библиотеки rpi-fb-matrix возможен вывод кадрового буфера. То, что выводится в hdmi порт, будет выведено на матрицы. Возможно выводить как часть экрана (crop), так и весь экран в масштабе (scale).
Если Вы ещё не клонировали библиотеку, то перейдите в папку /home/pi/Github и склонируйте библиотеку из нашего репозитория:
Далее необходимо установить библиотеку libconfig++
После этого можно приступать к сборке. Для этого перейдём в директорию rgb-fb-matrix
И запустим программу make
Ещё раз повторимся, для работы с матрицей необходимо либо отключить драйвер встроенного в процессор Raspberry аудио генератора, либо передать сценарию python аргумент —led-no-hardware-pulse=1. В первом случае матрица будет работать с аппаратным тактированием и, если нужен звук, можно использовать внешнюю USB карту (так же при этих условиях сценарии необходимо запускать от имени привилегированного пользователя командой sudo ). Для отключения встроенного генератора аудио необходимо закомментировать строку dtparam=audio=on в файле /boot/config.txt . Во втором случае можно использовать встроенный звук Raspberry, но программа вывода на матрицу будет использовать программное тактирование. config.txt -> dtparam=audio=on
После завершения программы make в директории появятся две утилиты, первая называется display-test , вторая rpi-fb-matrix . Обеим утилитам для работы необходимо передать файл конфигурации. В нём необходимо указать размеры панели, количество панелей и ориентацию панелей. Подробнее об этом можно узнать в примере файла конфигурации matrix.cfg , который находится этой же директории.
Рассмотрим пример файла конфигурации.
Рассмотрим на примере подключения двух панелей 128×64:
Для тестирования файла конфигурации воспользуемся утилитой display-test , передав ей файл конфигурации:
Если Вы используете панели с драйвером FM6126A, передайте утилите дополнительный аргумент —led-panel-type=FM6126A
В правом верхнем углу каждой матрицы загорится белым её порядковый номер в массиве матриц.
Выведем кадровый буфер на сборку матриц
Для вывода на матрицы запустим утилиту rgb-fb-matrix и передадим ей файл конфигурации:
Если Вы хотите что бы экранный буфер системы выводился на матрицы при каждой загрузке, добавьте соответствующие строки в /etc/rc.local или создайте юнит для systemd . Подробнее об этом можно прочитать в статье Цветной графический дисплей 2.8 TFT 320×240, подключаем к Raspberry Pi или Делаем таймлапс для 3D принтера.
Корпус
Для матриц 64×32 P2.5 и P3 нами так же были разработаны корпуса, используя которые Вы сможете создать законченное устройство.
Для матрицы с шагом 2.5мм:
Adblockdetector