Оглавление:

Ledboard Pi: 5 шагов (с изображениями)
Ledboard Pi: 5 шагов (с изображениями)

Видео: Ledboard Pi: 5 шагов (с изображениями)

Видео: Ledboard Pi: 5 шагов (с изображениями)
Видео: LED-матрицы для видео-экранов 2024, Июль
Anonim
Ledboard Pi
Ledboard Pi
Ledboard Pi
Ledboard Pi
Ledboard Pi
Ledboard Pi

Экран Ledboard Pi - это результат многолетнего опыта, обучения и развития; но также результат наличия правильных инструментов (оборудования, программного обеспечения, прошивки) в этот подходящий момент: Raspberry Pi 4 (с Raspberry Pi 3 тоже работает) с его скоростью, памятью и возможностью беспроводной связи, чудесный проект Raspberry Pi LED Matrix Display на основе библиотек rpi-rgb-led-matrix и rpi-fb-matrix (для управления многими коммерческими светодиодными панелями RGB через GPIO) для отображения видеовыхода Raspberry Pi на большом светодиодном матричном дисплее RGB (для этого можно указать разрешение 96x64 с использованием 6 панелей Sparkfun 32x32). Все это контролируется с помощью приложения с графическим интерфейсом, запрограммированного с использованием lazarus ide на очень легком рабочем столе openbox, установленном поверх образа Raspbian Buster Lite и, наконец, показывает все, что может программировать ваше воображение: Multi-Sport Scoreboard, Digital Signage или Video Player.; нет никаких ограничений. Этот проект, которым управляет любой компьютер, способный запускать VNC Viewer, потому что VNC Server также установлен на Rasbian Buster Lite от Raspberry Pi 4.

С завтрашнего дня я постараюсь подробно объяснить каждый шаг, чтобы этот проект заработал.

Запасы

Для этого проекта нам понадобятся:

Аппаратное обеспечение

  1. Один Raspberry Pi 3 или лучше, Raspberry Pi 4 с блоком питания 5 В, 2,5 А
  2. Одна плата привода панели светодиодной матрицы Electrodragon RGB для Raspberry Pi
  3. Шесть светодиодных панелей 32x32 RGB от Sparkfun
  4. Один блок питания 40A 5v
  5. Одна 3-х метровая алюминиевая прямоугольная рама 82,5 мм x 38 мм
  6. Один разрез акрила размером 576 мм x 384 мм
  7. Один срез поляризованной пленки

Программное обеспечение

  1. библиотека hezeller rpi-rgb-led-matrix
  2. Библиотека Adafruit rpi-fb-matrix
  3. Изображения Raspbian buster lite или realtimepi-buster-lite
  4. Открытая коробка
  5. Для управляющего компьютера / ноутбука / Raspberry Pi 3 или 4, Real VNC Viewer для Windows или Linux или Raspbian
  6. Lazarus IDE для raspbian buster lite
  7. Приложение Leboard Pi

продолжение следует…

Шаг 1. Настройка ОС Raspberry Pi 3/4

Настройка ОС Raspberry Pi 3/4
Настройка ОС Raspberry Pi 3/4
Настройка ОС Raspberry Pi 3/4
Настройка ОС Raspberry Pi 3/4
Настройка ОС Raspberry Pi 3/4
Настройка ОС Raspberry Pi 3/4

Когда у нас есть аппаратные части, нам нужно получить материал ОС:

Во-первых, мы должны получить ОС для Raspbian 3/4. в моем случае я решил использовать buster lite в реальном времени; но вы также можете использовать версию Raspbian Buster Lite. Затем вам нужно перенести это изображение на карту micro SD с помощью balenaEtcher.

Затем нам нужно подключить дисплей HDMI, клавиатуру USB и сетевой кабель cat5, подключенный к

Raspberry Pi 3/4 RJ45; Итак, мы можем найти IP-адрес Raspberry Pi 3/4 для первоначальной настройки: сетевой IP, проводной и беспроводной. Я использовал расширенный сканер IP. Теперь с помощью raspi-config активируйте SSH-сервер для удаленного подключения с помощью Putty для завершения остальной части настройки Ledboard Pi.

Теперь, вместо облегченной версии, мы собираемся установить легкую среду рабочего стола с openbox.

sudo apt-get install --no-install-рекомендует xserver-xorg x11-xserver-utils xinit openbox

Затем установите lightdm (менеджер входа)

sudo apt-get install lightdm

Активируйте realvncserver из raspi-config

sudo raspi-config> Параметры интерфейса> vncserver> активировать vncserver

Здесь, как только vnceserver будет активирован, мы будем использовать VNC Viewer. В этом случае настольный компьютер, который нужно настроить при подключении, равен 0, например. Если IP-адрес 192.168.100.61, соединение будет «192.168.100.61:0»

Нам нужна связь между управляющим компьютером / ноутбуком и Ledboard Pi, поэтому необходимо установить samba для передачи исходного кода, файлов, изображений, видео и т. Д

sudo apt-get install samba samba-common-bin -y

Убедитесь, что ваш пользователь является владельцем пути, которым вы пытаетесь поделиться через Samba

sudo chown -R pi: pi / home / pi / share

Сделайте копию исходного файла общего доступа samba

sudo cp /etc/samba/smb.conf /etc/samba/smb.bak

Отредактируйте файл конфигурации samba

судо нано /etc/samba/smb.conf

Оставьте рабочую группу как WORKGROUP (или назовите ее как хотите)

# поддержка побед = нет

чтобы выиграть поддержку = да

Потом ….

# Это имя общей папки, которое будет отображаться при просмотре

[ledboardpi] comment = ledboardPi путь к общей папке = / home / pi / Share create mask = 0775 directory mask = 0775 только для чтения = нет возможности просмотра = да public = yes force user = pi only guest = no

Теперь мы можем получить доступ к папке «home / pi / share» по пути / home / pi с другого компьютера.

Для управления файловой системой с помощью приложения с графическим интерфейсом мы установим pcmanfm

sudo apt-get install pcmanfm

Шаг 2. Загрузка, установка и запуск необходимых библиотек для светодиодной панели RGB

Image
Image
Загрузка, настройка и запуск необходимых библиотек для светодиодной панели RGB
Загрузка, настройка и запуск необходимых библиотек для светодиодной панели RGB
Загрузка, настройка и запуск необходимых библиотек для светодиодной панели RGB
Загрузка, настройка и запуск необходимых библиотек для светодиодной панели RGB

Сначала установите предварительные требования

sudo apt-get update

sudo apt-get install -y build-essential git libconfig ++ - dev sudo apt-get install libgraphicsmagick ++ - dev libwebp-dev -y sudo apt-get install python2.7-dev python-Pillow -y

Затем загрузите и скомпилируйте hzeller rpi-rgb-led-matrix

wget

unzip master.zip cd rpi-rgb-led-matrix-master / && make

Также скачайте и установите rpi-fb-matrix

Вы должны клонировать этот репозиторий с рекурсивной опцией, чтобы также были клонированы необходимые подмодули. Выполните эту команду:

git clone - рекурсивный

делать

Примечание: замените библиотеку rpi-rgb-led-matrix, загруженную ранее в папку rpi-fb-matrix.

Теперь мы собираемся протестировать эти библиотеки, помните, что rpi-fb-matrix зависит от rpi-rgb-led-matrix

cd rpi-fb-матрица

cd rpi-rgb-led-matrix sudo./demo --led-chain = 3 --led-parallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = "обычный" --led- no-hardware-pulse --led-pwm-lsb-nanoseconds = 180 --led-show-refresh --led-Brightness = 80 -D 0 sudo./demo --led-chain = 3 --led-parallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = "regular" --led-no-hardware-pulse --led-pwm-lsb-nanoseconds = 180 --led-show-refresh - led-яркость = 80 -D 1 runtext.ppm sudo./demo --led-chain = 3 --led-parallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = "regular" - -led-no-hardware-pulse --led-pwm-lsb-nanoseconds = 180 --led-show-refresh --led-Brightness = 80 -D 2 runtext.ppm sudo./demo --led-chain = 3 --led-parallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = "обычный" --led-no-hardware-pulse --led-pwm-lsb-nanoseconds = 180 --led -show-refresh --led-Brightness = 80 -D 3 sudo./demo --led-chain = 3 --led-parallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = " обычный "--led-no-hardware-pulse --led-pwm-lsb-nanoseconds = 180 --led-show-refresh --led-Brightness = 80 -D 4 sudo./demo --led-chain = 3 --led-parallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = "обычный" --led-no-hardware-pulse --led-pwm-lsb-nanoseconds = 180 --led-show-refresh --led-Brightness = 80 -D 5 sudo./demo --led-chain = 3 --led-parallel = 2 --led- slowdown-gpio = 4 --led-gpio-mapping = "обычный" --led-no-hardware-pulse --led-pwm-lsb-nanoseconds = 180 --led-show-refresh --led-Brightness = 80 -D 6 sudo./demo --led-chain = 3 --led-parallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = "обычный" --led-no-hardware-pulse --led-pwm-lsb-nanoseconds = 180 --led-show-refresh --led-Brightness = 80 -D 7 sudo./demo --led-chain = 3 --led-parallel = 2 --led- slowdown-gpio = 4 --led-gpio-mapping = "обычный" --led-no-hardware-pulse --led-pwm-lsb-nanoseconds = 180 --led-show-refresh --led-Brightness = 80 -D 8 sudo./demo --led-chain = 3 --led-parallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = "обычный" --led-no-hardware-pulse --led-pwm-lsb-nanoseconds = 180 --led-show-refresh --led-Brightness = 80 -D 9 sudo./demo --led-chain = 3 --led-pa rallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = "regular" --led-no-hardware-pulse --led-pwm-lsb-nanoseconds = 180 --led-show-refresh --led-яркость = 80 -D 10 sudo./demo --led-chain = 3 --led-parallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = "обычный" - led-no-hardware-pulse --led-pwm-lsb-nanoseconds = 180 --led-show-refresh --led-Brightness = 80 -D 11

Все работает нормально.

Теперь библиотека rpi-fb-matrix. Это покажет часть (96x64) экрана на светодиодных панелях RGB на основе Ledboard Pi

cd / home / pi / rpi-fb-матрица

ПОМНИТЕ, скопируйте последнюю версию библиотеки rpi-rgb-led-matrix в папку rpi-fb-matrix. ОЧЕНЬ ВАЖНО

очистить

сделать все

Эти последние команды для библиотек rpi-fb-matrix и rpi-rgb-led-matrix…..

Для rpi-fb-matrix необходима правильная конфигурация matrix.cfg (я переименовал davenew.cfg для этого руководства), читать, анализировать для пользовательских проектов с разным количеством светодиодных панелей RGB…

Конфигурация светодиодного матричного дисплея // Определите всю ширину и высоту дисплея в пикселях. // Это _общая_ ширина и высота прямоугольника, определяемого всеми // связанными панелями. Ширина должна быть кратна ширине панели в пикселях (32), // а высота должна быть кратной высоте панели в пикселях (8, 16 или 32). display_width = 96; display_height = 64; // Определяем ширину каждой панели в пикселях. Всегда должно быть 32 (но теоретически это можно // изменить). panel_width = 32; // Определяем высоту каждой панели в пикселях. Обычно это 8, 16 или 32. // ПРИМЕЧАНИЕ. Каждая панель на дисплее _ должна_ быть одинаковой высоты! Например, нельзя смешивать // панели высотой 16 и 32 пикселя. panel_height = 32; // Определяем общее количество панелей в каждой цепочке. Подсчитайте, сколько // панелей соединено вместе, и введите это значение здесь. Если вы используете // несколько параллельных цепочек, подсчитайте каждую отдельно и выберите // наибольшее значение для этой конфигурации. chain_length = 3; // Определяем общее количество параллельных цепочек. При использовании Adafruit HAT у вас // может быть только одна цепочка, поэтому придерживайтесь значения 1. Pi 2 может поддерживать // до 3 параллельных цепочек, дополнительную информацию см. В библиотеке rpi-rgb-led-matrix: // https://github.com/hzeller/rpi-rgb-led-matrix#chaining-parallel-chains-and-coordinate-system parallel_count = 2; // Настраиваем каждую светодиодную матричную панель. // Это двумерный массив с записью для каждой панели. Массив // определяет сетку, которая будет разделять дисплей, поэтому, например, дисплей размером 64x64 // с панелями 32x32 пикселей будет массивом конфигураций панелей 2x2. // // Для каждой панели вы должны установить порядок, в котором она находится в своей цепочке, т.е. // первая панель в цепочке имеет порядок = 0, следующая - порядок = 1 и т. Д. // Вы также можете установить вращение каждой панели для учета изменений ориентации панели // (например, при "изгибе" ряда панелей из конца в конец для более коротких проводов). / / / | Панель | | Панель | | Панель | // | заказ = 2 | <= | заказ = 1 | <= | order = 0 | <= Цепочка 1 (от Пи) // | повернуть = 0 | | повернуть = 0 | | повернуть = 0 | // | _ | | _ | | _ | // _ _ _ // | Панель | | Панель | | Панель | // | заказ = 2 | <= | заказ = 1 | <= | order = 0 | <= Цепочка 2 (от Пи) // | повернуть = 0 | | повернуть = 0 | | повернуть = 0 | // | _ | | _ | | _ | // // Обратите внимание, что цепочка начинается в правом верхнем углу и изгибается вниз // вправо. Порядок каждой панели устанавливается как ее положение в цепочке, // и вращение применяется к нижним панелям, которые переворачиваются относительно // панелей над ними. // // Не показано, но если вы используете параллельные цепочки, вы можете указать для каждой записи // в списке панелей a 'parallel = x;' option где x - идентификатор параллельной // цепочки (0, 1 или 2). панели = (({порядок = 2; поворот = 0; параллель = 0;}, {порядок = 1; поворот = 0; параллель = 0;}, {порядок = 0; поворот = 0; параллель = 0;}, { order = 2; rotate = 0; parallel = 1;}, {order = 1; rotate = 0; parallel = 1;}, {order = 0; rotate = 0; parallel = 1;})) // По умолчанию Инструмент rpi-fb-matrix изменит размер и масштаб экрана // в соответствии с разрешением панелей дисплея. Однако вместо этого вы можете получить // конкретную точную копию области экрана, установив координаты x, y // пикселей экрана ниже. Прямоугольник точного размера экрана // (т.е. display_width x display_height пикселей) будет скопирован с экрана // начиная с заданных координат x, y. Закомментируйте это, // чтобы отключить это поведение кадрирования, и вместо этого уменьшите размер экрана до матричного отображения. урожай_оригина = (0, 0)

Шаг 3. Компиляция, настройка и тестирование графического интерфейса пользователя Ledboard Pi

Image
Image
Компиляция, настройка и тестирование графического интерфейса пользователя Ledboard Pi
Компиляция, настройка и тестирование графического интерфейса пользователя Ledboard Pi
Компиляция, настройка и тестирование графического интерфейса пользователя Ledboard Pi
Компиляция, настройка и тестирование графического интерфейса пользователя Ledboard Pi

Нам нужна программная среда IDE для создания приложения с графическим интерфейсом (Ledboard Pi). Затем я выбираю «Lazarus IDE», очень похожую на Delphi / C ++ Builder, который я использовал в ОС Windows

sudo apt-get install lazarus-ide

После установки просто выполните:

lazarus-ide

Откройте проект Ledboard Pi, затем скомпилируйте, чтобы получить приложение Ledboard Pi. Прежде чем открывать это приложение, создайте каталог с именем LEDBOARD_APP в пути / home / pi, затем скопируйте в него приложение Ledboard Pi

Теперь мы собираемся добавить ссылку в контекстное меню открытого окна. Как, нам понадобится obmenu, также xterm с использованием ссылки Putty, поэтому:

sudo apt-get install obmenu xterm

Теперь мы можем использовать терминал и меню в окне vncviewer:

  1. Вызов xterm из контекстного меню
  2. Открыть обмен из xterm

Добавить новый элемент: Ledboard Pi

  1. Выбрать новый элемент
  2. назовите это Ledboard Pi
  3. выполнить sudo nice -n -15 / home / pi / LEDBOARD_APP / LEDBOARD
  • Загрузите "horn. WAV", затем, используя сетевое расположение samba "\ ledboardpi / ledboardpi \", скопируйте его и переименуйте в среду realtimePi как "horn.wav". После переименования этот файл необходимо скопировать в папку / home / pi.
  • Готово, вы должны иметь возможность запускать Ledboard Pi так же, как вы видите на видео и изображениях.

Шаг 4. Установка и настройка точки доступа Wi-Fi

Установка и настройка точки доступа Wi-Fi
Установка и настройка точки доступа Wi-Fi
Установка и настройка точки доступа Wi-Fi
Установка и настройка точки доступа Wi-Fi
Установка и настройка точки доступа Wi-Fi
Установка и настройка точки доступа Wi-Fi
Установка и настройка точки доступа Wi-Fi
Установка и настройка точки доступа Wi-Fi

Этот проект был разработан для запуска с использованием средства просмотра realvnc с ноутбука, подключенного по беспроводной сети к Raspberry Pi 3/4. Итак, это последний шаг, чтобы запустить его и сказать «hasta la vista baby» проводному кошмару.

Настройка программного обеспечения

sudo apt-get update

sudo apt-get install hostapd isc-dhcp-server

DHCP-сервер

Будьте мудры и всегда делайте резервную копию конфигурации по умолчанию

sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.default

Отредактируйте файл конфигурации по умолчанию

sudo nano /etc/dhcp/dhcpd.conf

Прокомментируйте следующие строки…

вариант доменного имени "example.org";

option domain-name-servers ns1.example.org, ns2.example.org;

читать:

#option имя-домена "example.org";

#option domain-name-servers ns1.example.org, ns2.example.org;

… И не комментировать эту строку

# авторитетный;

… читать:

авторитетный;

… Прокрутите вниз до конца файла и напишите следующие строки:

подсеть 192.168.42.0 сетевая маска 255.255.255.0 {

диапазон 192.168.42.10 192.168.42.50; опция широковещательного адреса 192.168.42.255; вариант маршрутизаторов 192.168.42.1; время аренды по умолчанию 600; max-lease-time 7200; вариант доменного имени "локальный"; option domain-name-servers 8.8.8.8, 8.8.4.4; }

Давайте настроим wlan0 для статического IP

Сначала выключите его…

sudo ifdown wlan0

… Сохраните его и сделайте резервную копию:

sudo cp / etc / network / interfaces /etc/network/interfaces.backup

… Отредактируйте файл сетевых интерфейсов:

Судо нано / и т. д. / сеть / интерфейсы

… Отредактируйте соответственно, чтобы читать:

исходный каталог /etc/network/interfaces.d

auto lo iface lo inet loopback iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet static address 192.168.42.1 netmask 255.255.255.0 post-up iw dev $ IFACE set power_save off

… Закройте файл и назначьте статический IP-адрес

sudo ifconfig wlan0 192.168.42.1

Выполнено…

Hostapd

Создайте файл и отредактируйте его:

sudo nano /etc/hostapd/hostapd.conf

Измените ssid с именем по вашему выбору и wpa_passphrase на аутентификацию WiFi

интерфейс = wlan0

ssid = LedboardPi hw_mode = g channel = 6 macaddr_acl = 0 auth_algs = 1 ignore_broadcast_ssid = 0 wpa = 2 wpa_passphrase = davewarePi wpa_key_mgmt = WPA-PSK wpa_pairwise = TKIP rsn_pairwise = CCMP

Настроим трансляцию сетевых адресов

Создать файл резервной копии

sudo cp /etc/sysctl.conf /etc/sysctl.conf.backup

отредактируйте файл конфигурации

sudo nano /etc/sysctl.conf

… Отменить комментарий или добавить внизу:

net.ipv4.ip_forward = 1

#… И сразу же активировать:

sudo sh -c "эхо 1> / proc / sys / net / ipv4 / ip_forward"

… Измените iptables, чтобы создать трансляцию сети между eth0 и wifi-портом wlan0

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED, ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

… Сделать это при перезагрузке, запустив

sudo sh -c "iptables-save> /etc/iptables.ipv4.nat"

… И снова редактирование

Судо нано / и т. д. / сеть / интерфейсы

… Добавление в конце:

вверх iptables-restore </etc/iptables.ipv4.nat

Наш файл / etc / network / interfaces теперь будет выглядеть так:

исходный каталог /etc/network/interfaces.d

авто лоу

iface lo inet loopback allow-hotplug eth0 iface eth0 inet статический адрес 192.168.100.61 сетевая маска 255.255.255.0 шлюз 192.168.100.1 allow-hotplug wlan0 iface wlan0 inet статический адрес 192.168.42.1 сетевая маска 255.255.255.0 сеть 192.168.42.0 широковещательный источник 192.168.42.255 каталог /etc/network/interfaces.d

Давайте протестируем нашу точку доступа, запустив:

sudo / usr / sbin / hostapd /etc/hostapd/hostapd.conf

Ваша точка доступа работает: попробуйте подключиться к ней с компьютера или смартфона. Когда вы это сделаете, вы также должны увидеть некоторые действия журнала на вашем терминале. Если вас устраивает, остановите это с помощью CTRL + C

Очистим все: sudo service hostapd start sudo service isc-dhcp-server start

… И убедитесь, что все в порядке:

статус службы sudo hostapd

sudo service isc-dhcp-server статус

… Давайте настроим наши демоны на запуск во время загрузки:

sudo update-rc.d hostapd включить

sudo update-rc.d isc-dhcp-server включить sudo systemctl unmask hostapd sudo systemctl unmask isc-dhcp-server

… Перезагрузите пи

перезагрузка sudo

Теперь вы должны увидеть свой Pi WiFi, подключиться к нему и получить к нему доступ в Интернет. Для быстрого сравнения, потоковое видео 4k будет потреблять около 10% процессора pi, поэтому … используйте его соответственно.

В качестве бонуса, если вы хотите проверить, что происходит в вашей точке доступа Wi-Fi, проверьте файл журнала:

хвост -f / var / журнал / системный журнал

Шаг 5:

Изображение
Изображение
Изображение
Изображение
Изображение
Изображение

Дело.

Дизайн

Для этой части я использовал программу 3D-дизайна sketchup. Алюминиевый корпус Ledboard Pi 3D-дизайн

Для этого я использовал обычные прямоугольные алюминиевые профили 82,5 x 38 мм, несколько уголков и несколько шурупов. Опора была основана моей мамой на улице, растрачивается. У него есть колеса, как показано на фотографиях.

Рекомендуемые: