Sommario:

Ledboard Pi: 5 passaggi (con immagini)
Ledboard Pi: 5 passaggi (con immagini)

Video: Ledboard Pi: 5 passaggi (con immagini)

Video: Ledboard Pi: 5 passaggi (con immagini)
Video: How to make Custom Pixel Art with NO CODE on Any LED Grid - GlowBit Matrix With WLED & ESP32/ESP8266 2024, Luglio
Anonim
Ledboard più
Ledboard più
Ledboard più
Ledboard più
Ledboard più
Ledboard più

Lo schermo Ledboard Pi è il risultato di anni di esperienze, apprendimento e sviluppo; ma anche, il risultato di avere gli strumenti giusti (hardware, software, firmware) in questo momento giusto: Raspberry Pi 4 (funziona anche con Raspberry Pi 3) con la sua velocità, memoria e capacità wireless, il meraviglioso progetto Raspberry Pi LED Matrix Display basato sulle librerie rpi-rgb-led-matrix e rpi-fb-matrix (per pilotare molti pannelli LED RGB commerciali tramite GPIO) per mostrare l'uscita video del Raspberry Pi su un ampio display a matrice LED RGB (per questo istruibile, la risoluzione è 96x64 utilizzando 6 pannelli sparkfun 32x32). Tutto questo è controllato con un'applicazione GUI programmata utilizzando lazarus ide su un desktop openbox molto leggero installato su un'immagine Raspbian Buster Lite e, infine, mostra tutto ciò che la tua immaginazione può programmare: un tabellone segnapunti multi-sport, un digital signage o un lettore video; non ci sono limiti. Questo progetto, controllato da qualsiasi computer, è in grado di eseguire VNC Viewer, poiché il server VNC è installato anche su Rasbian Buster Lite di Raspberry Pi 4.

Da domani cercherò di spiegare nel dettaglio ogni passaggio per far funzionare questo progetto.

Forniture

Abbiamo bisogno per questo progetto:

Hardware

  1. Un Raspberry Pi 3 o superiore, Raspberry Pi 4 con il suo alimentatore da 5 V 2,5 A
  2. Una scheda di unità del pannello a matrice LED RGB Electrodragon per Raspberry Pi
  3. Sei pannelli LED RGB 32x32 di Sparkfun
  4. Un alimentatore da 40A 5v
  5. Una cornice rettangolare in alluminio da 3 metri 82,5 mm x 38 mm
  6. Un taglio di acrilico di dimensioni L 576 mm x H 384 mm
  7. Un taglio di pellicola polarizzata

Software

  1. libreria hezeller rpi-rgb-led-matrix
  2. Libreria Adafruit rpi-fb-matrix
  3. Immagini Raspbian buster lite o realtimepi-buster-lite
  4. Scatola aperta
  5. Per controllo pc/laptop/Raspberry Pi 3 o 4, Real VNC Viewer per Windows o Linux o Raspbian
  6. Lazarus IDE per raspbian buster lite
  7. Applicazione Leboard Pi

continua…

Passaggio 1: impostazione delle cose del sistema operativo Raspberry Pi 3/4

Impostazione delle cose sul sistema operativo Raspberry Pi 3/4
Impostazione delle cose sul sistema operativo Raspberry Pi 3/4
Impostazione delle cose sul sistema operativo Raspberry Pi 3/4
Impostazione delle cose sul sistema operativo Raspberry Pi 3/4
Impostazione delle cose sul sistema operativo Raspberry Pi 3/4
Impostazione delle cose sul sistema operativo Raspberry Pi 3/4

Una volta che abbiamo le parti hardware, dobbiamo ottenere le cose del sistema operativo:

Innanzitutto, dobbiamo ottenere il sistema operativo per Raspbian 3/4. nel mio caso, decido di utilizzare buster lite in tempo reale; ma puoi usare anche la versione Raspbian Buster Lite. Quindi è necessario trasferire questa immagine su una scheda micro SD utilizzando balenaEtcher.

Quindi, dobbiamo collegare un display HDMI e una tastiera USB e un cavo di rete cat5 collegato a

Raspberry Pi 3/4 RJ45; quindi, possiamo cercare l'IP Raspberry Pi 3/4 per effettuare la configurazione iniziale: IP di rete, cablato e wireless. Ho usato lo scanner IP avanzato. Ora, tramite raspi-config, attiva il server SSH per la connessione remota utilizzando Putty per completare il resto della configurazione di Ledboard Pi.

Ora, oltre alla versione lite, installeremo un ambiente desktop leggero con openbox

sudo apt-get install --no-install-recommends xserver-xorg x11-xserver-utils xinit openbox

Quindi, installa lightdm (gestore di accesso)

sudo apt-get install lightdm

Attiva realvncserver da raspi-config

sudo raspi-config > Opzioni interfaccia > vncserver > attiva vncserver

Qui, una volta attivato il server vnce, utilizzeremo VNC Viewer. In questo, il desktop da configurare nella connessione è 0, es. Se l'IP è 192.168.100.61, la connessione è "192.168.100.61:0"

Abbiamo bisogno di un collegamento tra il computer di controllo/laptop e il Ledboard Pi, quindi è necessario installare samba per il trasferimento di codice sorgente, file, immagini, video, ecc

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

Assicurati che il tuo utente sia il proprietario del percorso che stai cercando di condividere tramite Samba

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

Prendi una copia del file di condivisione originale di samba

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

Modifica il file di configurazione di samba

sudo nano /etc/samba/smb.conf

Lascia il gruppo di lavoro come WORKGROUP (o chiamalo come desideri)

#vince il supporto = no

vincere supporto = si

Quindi ….

#Questo è il nome della cartella condivisa che apparirà quando navighi

[ledboardpi] comment = percorso cartella condivisione ledboardPi = /home/pi/Share create mask = 0775 directory mask = 0775 sola lettura = no sfogliabile = sì public = sì force user = solo pi guest = no

Ora possiamo accedere alla cartella "home/pi/share" nel percorso /home/pi da un altro computer.

Per gestire il file system utilizzando un'app gui, installeremo pcmanfm

sudo apt-get install pcmanfm

Passaggio 2: download, configurazione ed esecuzione delle librerie necessarie per il pannello LED RGB

Image
Image
Download, installazione ed esecuzione delle librerie necessarie per il pannello LED RGB
Download, installazione ed esecuzione delle librerie necessarie per il pannello LED RGB
Download, installazione ed esecuzione delle librerie necessarie per il pannello LED RGB
Download, installazione ed esecuzione delle librerie necessarie per il pannello LED RGB

Innanzitutto, installa i prerequisiti

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

Quindi, scarica e compila hzeller rpi-rgb-led-matrix

wget

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

Inoltre, scarica e installa rpi-fb-matrix

È necessario clonare questo repository con l'opzione ricorsiva in modo che vengano clonati anche i sottomoduli necessari. Esegui questo comando:

git clone --recursive

fare

Nota: sostituire la libreria rpi-rgb-led-matrix scaricata in anticipo nella cartella rpi-fb-matrix

Ora testeremo quelle librerie, ricorda, rpi-fb-matrix dipende da rpi-rgb-led-matrix

cd rpi-fb-matrix

cd rpi-rgb-led-matrix 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 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-brightness=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="regular" --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=" regolare" --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="regular" --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="regular" --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="regular" --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="regular" --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="regular" --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-brightness=80 -D 10 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 11

Funzionano tutti bene.

Ora, la libreria rpi-fb-matrix. Questo mostrerà una porzione (96x64) dello schermo in pannelli LED RGB basati su Ledboard Pi

cd /home/pi/rpi-fb-matrix

RICORDA, copia l'ultima versione della libreria rpi-rgb-led-matrix nella cartella rpi-fb-matrix. MOLTO IMPORTANTE

rendere pulito

fare tutto

Quegli ultimi comandi, sia per le librerie rpi-fb-matrix che rpi-rgb-led-matrix…..

Per rpi-fb-matrix è necessaria una corretta configurazione di matrix.cfg (ho rinominato davenew.cfg per questo istruibile), leggere, analizzare per progetti personalizzati con un numero diverso di pannelli LED RGB…

Configurazione display a matrice di LED // Definisce l'intera larghezza e altezza del display in pixel. // Questa è la _totale_ larghezza e altezza del rettangolo definita da tutti i // pannelli concatenati. La larghezza deve essere un multiplo della larghezza dei pixel del pannello (32), // e l'altezza deve essere un multiplo dell'altezza dei pixel del pannello (8, 16 o 32). display_width = 96; display_altezza = 64; // Definisce la larghezza di ogni pannello in pixel. Dovrebbe essere sempre 32 (ma // in teoria può essere modificato). pannello_larghezza = 32; // Definisce l'altezza di ogni pannello in pixel. Normalmente è 8, 16 o 32. // NOTA: ogni pannello nel display _deve_ avere la stessa altezza! Ad esempio, non è possibile combinare // pannelli alti da 16 e 32 pixel. pannello_altezza = 32; // Definisce il numero totale di pannelli in ogni catena. Contare quanti // pannelli sono collegati insieme e inserire quel valore qui. Se stai usando // più catene parallele, conta ciascuna separatamente e scegli il // valore più grande per questa configurazione. lunghezza_catena = 3; // Definisce il numero totale di catene parallele. Se usi Adafruit HAT // puoi avere solo una catena, quindi mantieni il valore 1. Il Pi 2 può supportare fino a // fino a 3 catene parallele, consulta la libreria rpi-rgb-led-matrix per ulteriori informazioni: // https://github.com/hzeller/rpi-rgb-led-matrix#chaining-parallel-chains-and-coordinate-system parallel_count = 2; // Configura ogni pannello a matrice di LED. // Questo è un array bidimensionale con una voce per ogni pannello. L'array // definisce la griglia che suddividerà il display, quindi ad esempio un display di dimensioni // 64x64 con pannelli da 32x32 pixel sarebbe un array 2x2 di configurazioni di pannelli. // // Per ogni pannello devi impostare l'ordine in cui si trova all'interno della sua catena, cioè il // primo pannello in una catena è order = 0, il successivo è order = 1, ecc. Puoi anche // impostare un rotazione per ciascun pannello per tenere conto dei cambiamenti nell'orientamento del pannello // (come quando si "serpeggiano" una serie di pannelli da un capo all'altro per percorsi di filo più brevi). // // Ad esempio la configurazione seguente definisce questa griglia di visualizzazione dei pannelli e // il loro cablaggio (a partire dal pannello in alto a destra e serpeggiando a sinistra, in basso e // a destra fino al pannello in basso a destra): // _ _ _ / / | Pannello | | Pannello | | Pannello | // | ordine = 2 |<=| ordine = 1 |<=| ordine = 0 |<= Catena 1 (da Pi) // | ruota = 0 | | ruota = 0 | | ruota = 0 | // |_| |_| |_| // _ _ _ // | Pannello | | Pannello | | Pannello | // | ordine = 2 |<=| ordine = 1 |<=| ordine = 0 |<= Catena 2 (da Pi) // | ruota = 0 | | ruota = 0 | | ruota = 0 | // |_| |_| |_| // // Nota che la catena inizia in alto a destra e si snoda in basso // a destra. L'ordine di ciascun pannello è impostato come la sua posizione lungo la catena, // e la rotazione viene applicata ai pannelli inferiori che vengono capovolti rispetto a // dei pannelli sopra di essi. // // Non mostrato ma se stai usando catene parallele puoi specificare per ogni voce // nell'elenco dei pannelli un 'parallel = x;' opzione dove x è l'ID di una // catena parallela (0, 1 o 2). pannelli = (({ ordine = 2; rotazione = 0; parallelo=0; }, { ordine = 1; rotazione = 0; parallelo=0;}, { ordine = 0; rotazione = 0; parallelo=0;}, { ordine = 2; rotazione = 0; parallelo=1; }, { ordine = 1; rotazione = 0; parallelo=1;}, { ordine = 0; rotazione = 0; parallelo=1;})) // Per impostazione predefinita il Lo strumento rpi-fb-matrix ridimensionerà e ridimensionerà lo schermo // per adattarlo alla risoluzione dei pannelli di visualizzazione. Tuttavia, puoi invece prendere // una copia pixel-perfetta specifica di una regione dello schermo impostando le coordinate x, y // pixel dello schermo di seguito. Un rettangolo delle dimensioni esatte del display // (cioè display_width x display_height pixel) verrà copiato dallo schermo // a partire dalle coordinate x, y fornite. Commenta questo per disabilitare // questo comportamento di ritaglio e ridimensiona invece lo schermo fino al display a matrice. crop_origin = (0, 0)

Passaggio 3: compilazione, impostazione e test dell'applicazione GUI Ledboard Pi

Image
Image
Compilazione, impostazione e test dell'applicazione GUI Ledboard Pi
Compilazione, impostazione e test dell'applicazione GUI Ledboard Pi
Compilazione, impostazione e test dell'applicazione GUI Ledboard Pi
Compilazione, impostazione e test dell'applicazione GUI Ledboard Pi

Abbiamo bisogno di un IDE di programmazione per creare un'applicazione GUI (Ledboard Pi). Quindi, scelgo "Lazarus IDE" molto simile a Delphi/C++ Builder che ho usato nel sistema operativo Windows

sudo apt-get install lazarus-ide

Una volta installato, esegui semplicemente:

lazzaro-ide

Aprire il progetto Ledboard Pi, quindi compilare per ottenere l'applicazione Ledboard Pi. Prima di aprire questa applicazione, crea una directory denominata LEDBOARD_APP nel percorso /home/pi, quindi copia l'applicazione Ledboard Pi in questa

Ora, aggiungeremo un collegamento nel menu di scelta rapida dell'openbox. Come, abbiamo bisogno dell'obmenu, anche xterm usando il collegamento Putty, quindi:

sudo apt-get install obmenu xterm

Ora, possiamo usare il terminale e obmenu all'interno della finestra di vncviewer:

  1. Chiama xterm dal menu di scelta rapida
  2. Apri obmenu da xterm

Aggiungi nuovo elemento: Ledboard Pi

  1. Scegli Nuovo articolo
  2. chiamalo Ledboard Pi
  3. esegui sudo nice -n -15 /home/pi/LEDBOARD_APP/LEDBOARD
  • Scarica "horn. WAV", quindi, utilizzando la posizione di samba collegata alla rete "\ledboardpi\ledboardpi\", copialo e rinominalo in ambiente realtimePi come "horn.wav". Questo file, una volta rinominato, deve essere copiato nella cartella /home/pi.
  • Fatto, devi essere in grado di eseguire Ledboard Pi così come vedi nei video e nelle immagini.

Passaggio 4: installazione e configurazione dell'hotspot WiFi

Installazione e configurazione dell'hotspot WiFi
Installazione e configurazione dell'hotspot WiFi
Installazione e configurazione dell'hotspot WiFi
Installazione e configurazione dell'hotspot WiFi
Installazione e configurazione dell'hotspot WiFi
Installazione e configurazione dell'hotspot WiFi
Installazione e configurazione dell'hotspot WiFi
Installazione e configurazione dell'hotspot WiFi

Questo progetto è stato progettato per essere eseguito utilizzando il visualizzatore realvnc da un laptop connesso in modalità wireless al Raspberry Pi 3/4. Quindi, questo è il passaggio finale per farlo funzionare e dire "hasta la vista baby" all'incubo cablato.

Configurazione del software

sudo apt-get update

sudo apt-get install hostapd isc-dhcp-server

Server DHCP

Sii saggio e fai sempre un backup della configurazione predefinita

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

Modifica il file di configurazione predefinito

sudo nano /etc/dhcp/dhcpd.conf

Commenta le seguenti righe…

opzione nome dominio "esempio.org";

opzione server-nome-dominio ns1.example.org, ns2.example.org;

leggere:

#option nome-dominio "esempio.org";

#option server-nome-dominio ns1.example.org, ns2.example.org;

…e decommenta questa riga

#autorevole;

… leggere:

autorevole;

… scorri verso il basso in fondo al file e scrivi le seguenti righe:

sottorete 192.168.42.0 maschera di rete 255.255.255.0 {

intervallo 192.168.42.10 192.168.42.50; opzione indirizzo di trasmissione 192.168.42.255; router opzionali 192.168.42.1; tempo di locazione predefinito 600; tempo massimo di locazione 7200; opzione nome dominio "locale"; opzione server-nome-dominio 8.8.8.8, 8.8.4.4; }

Impostiamo wlan0 per IP statico

Per prima cosa, spegnilo…

sudo ifdown wlan0

… tienilo al sicuro e crea un file di backup:

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

…modifica il file delle interfacce di rete:

sudo nano /etc/network/interfaces

… modificare di conseguenza per leggere:

directory dei sorgenti /etc/network/interfaces.d

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

…chiudi il file e assegna un IP statico ora

sudo ifconfig wlan0 192.168.42.1

Fatto…

Hostapd

Crea un file e modificalo:

sudo nano /etc/hostapd/hostapd.conf

Modifica ssid con un nome a tua scelta e wpa_passphrase su un'autenticazione WiFi

interfaccia=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

Configuriamo la traduzione dell'indirizzo di rete

Crea un file di backup

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

modifica il file di configurazione

sudo nano /etc/sysctl.conf

…togli il commento o aggiungi in fondo:

net.ipv4.ip_forward=1

# …e attivalo subito:

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

…modificare iptables per creare una traduzione di rete tra eth0 e la porta 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

…fai che questo accada al riavvio eseguendo

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

…e modifica di nuovo

sudo nano /etc/network/interfaces

…aggiungendo alla fine:

up iptables-restore < /etc/iptables.ipv4.nat

Il nostro file /etc/network/interfaces ora avrà il seguente aspetto:

directory dei sorgenti /etc/network/interfaces.d

spegnimento automatico

iface lo inet loopback allow-hotplug eth0 iface eth0 inet indirizzo statico 192.168.100.61 netmask 255.255.255.0 gateway 192.168.100.1 allow-hotplug wlan0 iface wlan0 inet indirizzo statico 192.168.42.1 netmask 255.255.255.0 rete 192.168.442.255 broadcast 192.168. directory /etc/network/interfaces.d

Testiamo il nostro punto di accesso eseguendo:

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

Il tuo hotspot è attivo e funzionante: prova a connetterti da un computer o da uno smartphone. Quando lo fai, dovresti anche vedere alcune attività di registro sul tuo terminale. Se sei soddisfatto, fermalo con CTRL+C

Puliamo tutto: sudo service hostapd start sudo service isc-dhcp-server start

…e assicurati che siamo operativi:

sudo service hostapd status

sudo service isc-dhcp-server status

…configuriamo i nostri demoni per l'avvio all'avvio:

sudo update-rc.d hostapd enable

sudo update-rc.d isc-dhcp-server enable sudo systemctl unmask hostapd sudo systemctl unmask isc-dhcp-server

…riavviare il pi

sudo reboot

Ora dovresti essere in grado di vedere il tuo pi WiFi, connetterti e accedere a Internet. Come rapido confronto, lo streaming di video 4K consumerà circa il 10% della CPU pi quindi … usalo di conseguenza.

Come bonus, se vuoi controllare cosa sta succedendo sul tuo hotspot WiFi, controlla il file di registro:

tail -f /var/log/syslog

Passaggio 5:

Immagine
Immagine
Immagine
Immagine
Immagine
Immagine

Il caso.

Design

Per questa parte, ho usato il programma di progettazione 3D sketchup. Ledboard Pi Custodia in alluminio 3D Design

Per questo ho usato dei comuni profili in alluminio rettangolari 82,5 mm x 38 mm, degli angoli e delle viti. Il sostegno è stato fondato da mia Madre per strada, sprecato. Ha le ruote come da foto.

Consigliato: