КОРЗИНА
магазина
8 (499) 500-14-56 | ПН. - ПТ. 12:00-18:00
ЛЕСНОРЯДСКИЙ ПЕРЕУЛОК, 18С2, БЦ "ДМ-ПРЕСС"

RGB Matrix Hat

Общие сведения:

RGB Matrix Hat - модуль собранный на основе чипа 74HC245, который позволяет подключать RGB матрицы к Raspberry Pi. Для работы с модулем рекомендуем использовать библиотеку RPI-FB-MATRIX. Модуль поддерживает матрицы размером до 128x64 пикселей. Так же модуль позволяет работать с не занятыми бибилотекой GPIO выводами и не мешает установке других hat'ов, таких как Trema+Expander Hat.

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

Видео:

Редактируется...

Подключение:

Модуль устанавливается на 40-пиновый разъём Rasperry

Для подключения матрицы используется 16-проводной шлейф, идущий в комплекте с матрицами

Положения джамперов:

Для использования модуля с матрицами размером 128x64 и 64x64 необходимо использовать дополнительную линию адресации. На колодке таких матриц она может находиться либо на четвёртом пине, либо на восьмом. При использовании таких матриц необходимо опытным путём выяснить где находится эта линия, попробовав одно из ниже перечисленных положений джамперов:

Линиия Е на четвёртом выводе разъёма:

Линиия Е на восьмом выводе разъёма:

Стандартное положение джамперов:

Выводы GPIO:

Выводы GPIO, занятые при использовании матриц:

Вывод матрицы Вывод матрицы
Вывод 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 только матрицы 128x64 GPIO 15
Вывод CLK GPIO 17
Вывод OE GPIO 18
Вывод LAT GPIO 4
Выводы GND Выводы GND

Питание:

Модуль питается от 40-пиновой колодки Raspberry.

К RGB матрице 64х32 подключается внешний источник питания напряжением 5В и током до 4А.

К RGB матрице 128x64 подключается внешний источник питания напряжением 5В и током до 6А.

Вывод текста и фигур

Если Вы ещё ни разу не настраивали Raspberry, то можете сделать это руководствуясь этой статьёй

Весь дальнейший материал предполагает установленную систему Raspbian Buster и отсутствие драйверов и надстроек, которые могут использовать выводы GPIO.

При помощи библиотеки rpi-rgb-led-matrix возможен вывод фигур, изображений, текста и бегущей строки на светодиодную матрицу используя C++, C# или Python. Мы рассмотрим вывод на матрицу используя Python.

Откроем эмулятор терминала в верхней панели графической среды Raspberry.

Создадим директорию для хранения будущих Github проектов командой mkdir (make directory - создать директорию):

mkdir Github

Перейдём в директорию командой cd (change directory - сменить директорию):

cd Github

Склонируем репозиторий (необходимо подключение к интернету):

git clone https://github.com/tremaru/rpi-fb-matrix

Далее перейдём в директорию python внутри директории rpi-rgb-led-matrix/bindings

cd rpi-fb-matrix/rpi-rgb-led-matrix/bindings/python

Теперь наберём три строки, нажимая <enter> в конце каждой строки и дожидаясь выполнения сборки и/или установки после каждой строки

sudo apt-get update && sudo apt-get install python3-dev python3-pillow -y
make build-python PYTHON=$(command -v python3)
sudo make install-python PYTHON=$(command -v python3)​​

После успешной установки можно попробовать вывести текст на матрицу

Перейдём в директорию примеров

cd samples/

Здесь важно сказать, что для работы с матрицей необходимо либо отключить драйвер встроенного в процессор Raspberry аудио генератора, либо передать сценарию python аргумент --led-no-hardware-pulse=1. В первом случае матрица будет работать с аппаратным тактированием и, если нужен звук, можно использовать внешнюю USB карту (так же при этих условиях сценарии необходимо запускать от имени привилегированного пользователя командой sudo). Для отключения встроенного генератора аудио необходимо закомментировать строку dtparam=audio=on в файле /boot/config.txt. Во втором случае можно использовать встроенный звук Raspberry, но программа вывода на матрицу будет использовать программное тактирование.

Для проверки работы матрицы запустим программу с использованием программного тактирования:

python3 runtext.py --led-cols=128 --led-rows=64 --led-no-hardware-pulse=1 -t "Привет мир!"

Разберёмся что к чему:

  • --led-cols=128 - количество пикселей в матрице по одной из сторон. В случае примера выше 128, т.к. панель в примере 128x64
  • --led-rows=64 - количество пикселей в матрице по другой стороне. В случае примера выше 64.
  • --led-no-hardware-pulse=1 - использовать или нет аппаратное тактирование. Если не передавать этот аргумент, то будет использоваться аппаратное тактирование.
  • -t - текст для отображения на матрице.

Так же можно передать аргумент если подключено больше одной панели. Например -c 3, если подключено 3 панели в линию.

Подробнее про аргументы, передаваемые библиотеке можно узнать из файла README.md

Вывод кадрового буфера

При помощи библиотеки rpi-fb-matrix возможен вывод кадрового буфера. То, что выводится в hdmi порт, будет выведено на матрицы. Возможно выводить как часть экрана (crop), так и весь экран в масштабе (scale).

Если Вы ещё не клонировали библиотеку, то перейдите в папку /home/pi/Github и склонируйте библиотеку из нашего репозитория:

git clone https://github.com/tremaru/rpi-fb-matrix

Далее необходимо установить библиотеку libconfig++

sudo apt install libconfig++-dev

После этого можно приступать к сборке. Для этого перейдём в директорию rgb-fb-matrix

cd rgb-fb-matrix

И запустим программу make

make -j

Ещё раз повторимся, для работы с матрицей необходимо либо отключить драйвер встроенного в процессор 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, который находится этой же директории.

Рассмотрим пример файла конфигурации.

Рассмотрим на примере подключения двух панелей 128x64:

display_width = 256; // общее количество пикселей в ширину
display_height = 64; // общее количество пикселей в длинну

panel_width = 128; // количество пикселей одной матрицы в ширину
panel_height = 64; // количество пикселей одной матрицы в длинну

chain_length = 2; // количество панелей
parallel_count = 1; количество паралельных линий. Подробнее о подключении паралельных линий читайте в файле README.md

// Геометрия подключения панелей
panels = (
        // order - порядковый номер панели, 0 - первая панель экрана,
        // правый верхний угол которой соответствует 0 X и Y экрана.
        // rotate - угол ориетнации панели 0 или 180
        ( {order = 0; rotate = 0;}, {order = 1; rotate = 0; } )
)

// Если раскомментировать строку ниже, то вывод на матрицы будет не масштабирован (scale)
// а обрезан (crop) начиная с указанной в скобках координаты (0, 0 - правый верхний угол экарна)
// crop_origin = (5, 95)

Для тестирования файла конфигурации воспользуемся утилитой display-test, передав ей файл конфигурации:

sudo ./display-test matrix.cfg

Если Вы используете панели с драйвером FM6126A, передайте утилите дополнительный аргумент --led-panel-type=FM6126A

sudo ./display-test matrix.cfg --led-panel-type=FM6126A

В правом верхнем углу каждой матрицы загорится белым её порядковый номер в массиве матриц.

Выведем кадровый буфер на сборку матриц

Для вывода на матрицы запустим утилиту rgb-fb-matrix и передадим ей файл конфигурации:

sudo ./rgb-fb-matrix matrix.cfg

Если Вы хотите что бы экранный буфер системы выводился на матрицы при каждой загрузке, добавьте соответствующие строки в /etc/rc.local или создайте юнит для systemd. Подробнее об этом можно прочитать в статье Цветной графический дисплей 2.8 TFT 320x240, подключаем к Raspberry Pi или Делаем таймлапс для 3D принтера.

Корпус

Для матриц 64x32 P2.5 и P3 нами так же были разработаны корпуса, используя которые Вы сможете создать законченное устройство.

Для матрицы с шагом 2.5мм:

Для матрицы с шагом 3мм:

Применеие

  • Бегущая строка;
  • Табло информации;
  • Вывод графических изображений;

Ссылки:




Обсуждение

Гарантии и возврат Используя сайт Вы соглашаетесь с условями