Оглавление:
- Запасы
- Шаг 1. Настройка ОС Raspberry Pi 3/4
- Шаг 2. Загрузка, установка и запуск необходимых библиотек для светодиодной панели RGB
- Шаг 3. Компиляция, настройка и тестирование графического интерфейса пользователя Ledboard Pi
- Шаг 4. Установка и настройка точки доступа Wi-Fi
- Шаг 5:
Видео: Ledboard Pi: 5 шагов (с изображениями)
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-03 03:04
Экран 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.
С завтрашнего дня я постараюсь подробно объяснить каждый шаг, чтобы этот проект заработал.
Запасы
Для этого проекта нам понадобятся:
Аппаратное обеспечение
- Один Raspberry Pi 3 или лучше, Raspberry Pi 4 с блоком питания 5 В, 2,5 А
- Одна плата привода панели светодиодной матрицы Electrodragon RGB для Raspberry Pi
- Шесть светодиодных панелей 32x32 RGB от Sparkfun
- Один блок питания 40A 5v
- Одна 3-х метровая алюминиевая прямоугольная рама 82,5 мм x 38 мм
- Один разрез акрила размером 576 мм x 384 мм
- Один срез поляризованной пленки
Программное обеспечение
- библиотека hezeller rpi-rgb-led-matrix
- Библиотека Adafruit rpi-fb-matrix
- Изображения Raspbian buster lite или realtimepi-buster-lite
- Открытая коробка
- Для управляющего компьютера / ноутбука / Raspberry Pi 3 или 4, Real VNC Viewer для Windows или Linux или Raspbian
- Lazarus IDE для raspbian buster lite
- Приложение Leboard Pi
продолжение следует…
Шаг 1. Настройка ОС 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
Сначала установите предварительные требования
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
Нам нужна программная среда 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:
- Вызов xterm из контекстного меню
- Открыть обмен из xterm
Добавить новый элемент: Ledboard Pi
- Выбрать новый элемент
- назовите это Ledboard Pi
- выполнить sudo nice -n -15 / home / pi / LEDBOARD_APP / LEDBOARD
- Загрузите "horn. WAV", затем, используя сетевое расположение samba "\ ledboardpi / ledboardpi \", скопируйте его и переименуйте в среду realtimePi как "horn.wav". После переименования этот файл необходимо скопировать в папку / home / pi.
- Готово, вы должны иметь возможность запускать Ledboard Pi так же, как вы видите на видео и изображениях.
Шаг 4. Установка и настройка точки доступа 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 мм, несколько уголков и несколько шурупов. Опора была основана моей мамой на улице, растрачивается. У него есть колеса, как показано на фотографиях.
Рекомендуемые:
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: 7 шагов (с изображениями)
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: я планирую использовать этот Rapsberry PI в кучу забавных проектов еще в моем блоге. Не стесняйтесь проверить это. Я хотел вернуться к использованию своего Raspberry PI, но у меня не было клавиатуры или мыши в моем новом месте. Прошло много времени с тех пор, как я установил Raspberry
Счетчик шагов - Micro: Bit: 12 шагов (с изображениями)
Счетчик шагов - Микро: Бит: Этот проект будет счетчиком шагов. Мы будем использовать датчик акселерометра, встроенный в Micro: Bit, для измерения наших шагов. Каждый раз, когда Micro: Bit трясется, мы добавляем 2 к счетчику и отображаем его на экране
Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): 6 шагов (с изображениями)
Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): Индуктивная зарядка (также известная как беспроводная зарядка или беспроводная зарядка) - это тип беспроводной передачи энергии. Он использует электромагнитную индукцию для обеспечения электропитания портативных устройств. Самым распространенным применением является беспроводная зарядка Qi st
Как разобрать компьютер с помощью простых шагов и изображений: 13 шагов (с изображениями)
Как разобрать компьютер с помощью простых шагов и изображений: это инструкция о том, как разобрать компьютер. Большинство основных компонентов имеют модульную конструкцию и легко снимаются. Однако важно, чтобы вы были организованы по этому поводу. Это поможет уберечь вас от потери деталей, а также при повторной сборке
Проектирование печатной платы с помощью простых и легких шагов: 30 шагов (с изображениями)
Проектирование печатных плат с помощью простых и легких шагов: ПРИВЕТ, ДРУЗЬЯ Это очень полезное и легкое руководство для тех, кто хочет изучить дизайн печатных плат. Давайте начнем