Cuprins:

Ledboard Pi: 5 pași (cu imagini)
Ledboard Pi: 5 pași (cu imagini)

Video: Ledboard Pi: 5 pași (cu imagini)

Video: Ledboard Pi: 5 pași (cu imagini)
Video: Raspberry Pi LED Matrix Display 2024, Iulie
Anonim
Ledboard Pi
Ledboard Pi
Ledboard Pi
Ledboard Pi
Ledboard Pi
Ledboard Pi

Ecranul Ledboard Pi este rezultatul a ani de experiență, învățare și dezvoltare; dar, de asemenea, rezultatul de a avea instrumentele potrivite (hardware, software, firmware) în acest moment potrivit: Raspberry Pi 4 (cu Raspberry Pi 3 funcționează și) cu viteza, memoria și capacitatea wireless, minunatul proiect Raspberry Pi LED Matrix Display bazat pe bibliotecile rpi-rgb-led-matrix și rpi-fb-matrix (pentru conducerea multor panouri LED RGB comerciale prin GPIO) pentru a arăta ieșirea video a Raspberry Pi pe un afișaj cu matrice LED RGB mare (pentru acest lucru instructiv, rezoluția este 96x64 folosind 6 panouri sparkfun 32x32). Toate acestea sunt controlate cu o aplicație GUI programată folosind lazarus ide pe un desktop openbox foarte ușor instalat peste o imagine Raspbian Buster Lite și, în cele din urmă, arată o programare cu imaginația ta: un tablou de bord multi-sport, o semnalizare digitală sau un player video; nu există limite. Acest proiect, controlat de orice computer, capabil să ruleze VNC Viewer, deoarece serverul VNC este instalat și pe Rasbian Buster Lite de la Raspberry Pi 4.

De mâine, voi încerca să explic în detaliu fiecare pas pentru ca acest proiect să funcționeze.

Provizii

Avem nevoie pentru acest proiect:

Hardware

  1. Un Raspberry Pi 3 sau mai bun, Raspberry Pi 4 cu sursa de alimentare de 5V 2,5 A
  2. O placă de unitate cu panou cu matrice LED RGB Electrodragon pentru Raspberry Pi
  3. Șase panouri LED 32x32 RGB de la Sparkfun
  4. O sursă de alimentare 40A 5v
  5. Un cadru dreptunghiular din aluminiu de 3 metri 82,5 mm x 38 mm
  6. O tăietură de dimensiuni acrilice L 576 mm x H 384 mm
  7. O singură bucată de film polarizat

Software

  1. bibliotecă hezeller rpi-rgb-led-matrix
  2. Biblioteca Adafruit rpi-fb-matrix
  3. Raspbian buster lite sau imagini realtimepi-buster-lite
  4. Cutie deschisa
  5. Pentru computer / laptop / Raspberry Pi 3 sau 4, Real VNC Viewer pentru Windows sau Linux sau Raspbian
  6. Lazarus IDE pentru raspbian buster lite
  7. Aplicația Leboard Pi

va urma…

Pasul 1: Setarea Raspberry Pi 3/4 OS Stuff

Setarea Raspberry Pi 3/4 OS Stuff
Setarea Raspberry Pi 3/4 OS Stuff
Setarea Raspberry Pi 3/4 OS Stuff
Setarea Raspberry Pi 3/4 OS Stuff
Setarea Raspberry Pi 3/4 OS Stuff
Setarea Raspberry Pi 3/4 OS Stuff

Odată ce avem piesele hardware, trebuie să obținem elemente de sistem de operare:

În primul rând, trebuie să obținem sistemul de operare pentru Raspbian 3/4. în cazul meu, decid să folosesc Buster Lite în timp real; dar puteți utiliza și versiunea Raspbian Buster Lite. Apoi, trebuie să transferați această imagine pe cardul micro SD folosind balenaEtcher.

Apoi, trebuie să conectăm un afișaj HDMI și o tastatură USB și un cablu de rețea cat5 conectat la

Raspberry Pi 3/4 RJ45; deci, putem căuta Raspberry Pi 3/4 IP pentru a face configurarea inițială: IP de rețea, cu fir și fără fir. Am folosit scanerul IP avansat. Acum, prin raspi-config, activați serverul SSH pentru conectarea de la distanță folosind Putty pentru a finaliza restul configurării Ledboard Pi.

Acum, peste versiunea simplă, vom instala un mediu ușor de desktop cu openbox

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

Apoi, instalați lightdm (Manager de conectare)

sudo apt-get install lightdm

Activați realvncserver din raspi-config

sudo raspi-config> Opțiuni interfață> vncserver> activați vncserver

Aici, odată ce vnceserverul este activat, vom folosi VNC Viewer. În aceasta, desktopul de configurat în conexiune este 0, de ex. Dacă IP este 192.168.100.61, conexiunea este „192.168.100.61:0”

Avem nevoie de o legătură între computerul de control / laptop și Ledboard Pi, astfel încât samba trebuie instalat pentru transferul codului sursă, fișiere, imagini, videoclipuri etc

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

Asigurați-vă că utilizatorul dvs. este proprietarul căii pe care încercați să o partajați prin Samba

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

Luați o copie a fișierului de partajare samba original

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

Editați fișierul de configurare samba

sudo nano /etc/samba/smb.conf

Lăsați grupul de lucru ca GRUP DE LUCRU (sau denumiți-l după cum doriți)

# câștigă suport = nu

to wins support = da

Atunci ….

# Acesta este numele folderului de partajare pe care îl va afișa ca atunci când navigați

[ledboardpi] comentariu = ledboardPi share folder path = / home / pi / Share create mask = 0775 director mask = 0775 only read = nu browseable = yes public = yes force user = pi only guest = no

Acum, putem accesa folderul „home / pi / share” din calea / home / pi de pe alt computer.

Pentru a gestiona sistemul de fișiere utilizând o aplicație gui, vom instala pcmanfm

sudo apt-get install pcmanfm

Pasul 2: Descărcați, configurați și rulați bibliotecile necesare panoului LED RGB

Image
Image
Descărcare, configurare și rulare a bibliotecilor necesare panoului LED RGB
Descărcare, configurare și rulare a bibliotecilor necesare panoului LED RGB
Descărcare, configurare și rulare a bibliotecilor necesare panoului LED RGB
Descărcare, configurare și rulare a bibliotecilor necesare panoului LED RGB

Mai întâi, instalați premisele

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

Apoi, descărcați și compilați hzeller rpi-rgb-led-matrix

wget

dezarhivați master.zip cd rpi-rgb-led-matrix-master / && make

De asemenea, descărcați și instalați rpi-fb-matrix

Trebuie să clonați acest depozit cu opțiunea recursivă, astfel încât să fie clonate și submodulele necesare. Rulați această comandă:

git clone --recursive

face

Notă: înlocuiți biblioteca rpi-rgb-led-matrix descărcată devreme în folderul rpi-fb-matrix

Acum, vom testa acele biblioteci, amintiți-vă, rpi-fb-matrix depinde de 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 = " obișnuit "--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-nanosecunde = 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-nanosecunde = 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-nanosecunde = 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

Toate merg bine.

Acum, biblioteca rpi-fb-matrix. Aceasta va arăta o porțiune (96x64) de ecran în panouri LED RGB pe bază de Ledboard Pi

cd / home / pi / rpi-fb-matrix

REȚINEȚI, copiați ultima versiune a bibliotecii rpi-rgb-led-matrix în folderul rpi-fb-matrix. FOARTE IMPORTANT

face curat

face totul

Aceste ultime comenzi, atât pentru bibliotecile rpi-fb-matrix, cât și pentru rpi-rgb-led-matrix …..

Pentru rpi-fb-matrix este necesară o configurație corectă a matrix.cfg (am redenumit davenew.cfg pentru acest instructable), citiți, analizați pentru proiecte personalizate cu un număr diferit de panouri LED RGB …

Configurarea afișajului cu matrice LED // Definiți întreaga lățime și înălțime a afișajului în pixeli. // Aceasta este lățimea și înălțimea totală a dreptunghiului definit de toate // panourile înlănțuite. Lățimea trebuie să fie un multiplu al lățimii pixelului panoului (32), // și înălțimea ar trebui să fie un multiplu al înălțimii pixelului panoului (8, 16 sau 32). display_width = 96; display_height = 64; // Definiți lățimea fiecărui panou în pixeli. Aceasta ar trebui să fie întotdeauna 32 (dar // poate fi teoretic modificată). panou_lățime = 32; // Definiți înălțimea fiecărui panou în pixeli. Aceasta este de obicei 8, 16 sau 32. // NOTĂ: Fiecare panou de pe afișaj trebuie să aibă aceeași înălțime! De exemplu, nu puteți amesteca panouri cu înălțime de 16 și 32 de pixeli. panel_height = 32; // Definiți numărul total de panouri din fiecare lanț. Numărați oricât de multe // panouri sunt conectate împreună și puneți această valoare aici. Dacă utilizați // mai multe lanțuri paralele, numărați fiecare separat și alegeți cea mai mare // valoare pentru această configurație. lungime_lant = 3; // Definiți numărul total de lanțuri paralele. Dacă utilizați Adafruit HAT // puteți avea doar un lanț, deci rămâneți cu valoarea 1. Pi 2 poate suporta până la // până la 3 lanțuri paralele, consultați biblioteca rpi-rgb-led-matrix pentru mai multe informații: // https://github.com/hzeller/rpi-rgb-led-matrix#chaining-parallel-chains-and-coordinate-system parallel_count = 2; // Configurați fiecare panou cu matrice LED. // Acesta este un tablou bidimensional cu o intrare pentru fiecare panou. Matricea // definește grila care va subdiviza afișajul, deci, de exemplu, un afișaj de dimensiune 64x64 cu panouri de 32x32 pixeli ar fi o matrice 2x2 de configurații de panouri. // // Pentru fiecare panou trebuie să setați ordinea în care se află în lanțul său, adică // primul panou dintr-un lanț este ordine = 0, următorul este ordine = 1, etc. rotația fiecărui panou pentru a ține cont de schimbările de orientare a panoului // (cum ar fi atunci când „șerpuiește” o serie de panouri cap la cap pentru runde mai scurte de sârmă). // // De exemplu, configurația de mai jos definește această afișare în grilă a panourilor și // cablarea acestora (începând de la panoul din dreapta sus și șerpuind în stânga, în jos și // dreapta în panoul din dreapta jos): // _ _ _ / / | Panou | | Panou | | Panou | // | ordine = 2 | <= | comanda = 1 | <= | order = 0 | <= Lanțul 1 (din Pi) // | rotire = 0 | | rotire = 0 | | rotire = 0 | // | _ | | _ | | _ | // _ _ _ // | Panou | | Panou | | Panou | // | ordine = 2 | <= | comanda = 1 | <= | order = 0 | <= Lanțul 2 (din Pi) // | rotire = 0 | | rotire = 0 | | rotire = 0 | // | _ | | _ | | _ | // // Observați că lanțul începe în partea dreaptă sus și șerpuiește în jos // dreapta. Ordinea fiecărui panou este setată ca poziție de-a lungul lanțului, // și rotația se aplică panourilor inferioare care sunt răsucite în raport cu // la panourile de deasupra lor. // // Nu este afișat, dar dacă utilizați lanțuri paralele, puteți specifica pentru fiecare intrare // în panouri listează un „paralel = x;” opțiune unde x este ID-ul unui lanț // paralel (0, 1 sau 2). panouri = (({ordine = 2; rotire = 0; paralel = 0;}, {ordine = 1; rotire = 0; paralel = 0;}, {ordine = 0; rotire = 0; paralel = 0;}, { ordine = 2; rotire = 0; paralel = 1;}, {ordine = 1; rotire = 0; paralel = 1;}, {ordine = 0; rotire = 0; paralel = 1;})) // În mod implicit, Instrumentul rpi-fb-matrix va redimensiona și micșora ecranul // pentru a se potrivi cu rezoluția panourilor de afișare. Cu toate acestea, puteți lua // o copie specifică perfectă pentru pixel a unei regiuni a ecranului, setând coordonatele pixelilor x, y // ale ecranului de mai jos. Un dreptunghi cu dimensiunea exactă a afișajului // (adică display_width x display_height pixels) va fi copiat de pe ecran // începând cu coordonatele x, y furnizate. Comentează acest lucru pentru a dezactiva // acest comportament de decupare și, în schimb, redimensionează ecranul până la afișarea matricei. crop_origin = (0, 0)

Pasul 3: Compilarea, setarea și testarea aplicației GUI Ledboard Pi

Image
Image
Compilarea, setarea și testarea aplicației GUI Ledboard Pi
Compilarea, setarea și testarea aplicației GUI Ledboard Pi
Compilarea, setarea și testarea aplicației GUI Ledboard Pi
Compilarea, setarea și testarea aplicației GUI Ledboard Pi

Avem nevoie de un IDE de programare pentru a crea o aplicație GUI (Ledboard Pi). Apoi, aleg „Lazarus IDE” foarte asemănător cu Delphi / C ++ Builder pe care l-am folosit în sistemul de operare Windows

sudo apt-get install lazarus-ide

Odată instalat, executați doar:

lazarus-ide

Deschiderea proiectului Ledboard Pi, apoi compilați pentru a obține aplicația Ledboard Pi. Înainte de a deschide această aplicație, creați un director numit LEDBOARD_APP în calea / home / pi, apoi copiați aplicația Ledboard Pi în aceasta

Acum, vom adăuga un link în meniul cu clic dreapta al openbox-ului. Cum, avem nevoie de meniu, de asemenea xterm folosind linkul Putty, deci:

sudo apt-get install obmenu xterm

Acum, putem folosi terminalul și meniul în fereastra vncviewer:

  1. Apelați xterm din meniul cu clic dreapta
  2. Deschideți meniul din xterm

Adăugați un element nou: Ledboard Pi

  1. Alegeți Element nou
  2. denumiți-l Ledboard Pi
  3. executați sudo nice -n -15 / home / pi / LEDBOARD_APP / LEDBOARD
  • Descărcați "horn. WAV", apoi, utilizând locația samba legată de rețea "\ ledboardpi / ledboardpi \" copiați acest lucru și redenumiți-l în mediul realPi ca "horn.wav". Acest fișier, odată redenumit, trebuie copiat în folderul / home / pi.
  • Gata, trebuie să puteți rula Ledboard Pi, precum veți vedea în videoclipuri și imagini.

Pasul 4: Instalați și configurați hotspot-ul WiFi

Instalați și configurați hotspot-ul WiFi
Instalați și configurați hotspot-ul WiFi
Instalați și configurați hotspot-ul WiFi
Instalați și configurați hotspot-ul WiFi
Instalați și configurați hotspot-ul WiFi
Instalați și configurați hotspot-ul WiFi
Instalați și configurați hotspot-ul WiFi
Instalați și configurați hotspot-ul WiFi

Acest proiect a fost conceput pentru a rula utilizând vizualizatorul realvnc de la un laptop conectat fără fir la Raspberry Pi 3/4. Deci, acesta este ultimul pas pentru a-l rula și spune „hasta la vista baby” la coșmarul cu fir.

Configurare software

sudo apt-get update

sudo apt-get install hostapd isc-dhcp-server

Server DHCP

Fiți înțelepți și faceți întotdeauna o copie de rezervă a configurării implicite

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

Editați fișierul de configurare defect

sudo nano /etc/dhcp/dhcpd.conf

Comentează următoarele rânduri …

opțiune nume de domeniu "example.org";

opțiune nume-domeniu-servere ns1.example.org, ns2.example.org;

a citi:

#option nume-domeniu "example.org";

#option server-nume-domeniu ns1.example.org, ns2.example.org;

… și dez-comentează această linie

#autoritativ;

… a citi:

autoritar;

… Derulați în jos în partea de jos a fișierului și scrieți următoarele rânduri:

subrețea 192.168.42.0 netmask 255.255.255.0 {

interval 192.168.42.10 192.168.42.50; opțiune broadcast-address 192.168.42.255; routerele de opțiuni 192.168.42.1; timpul de leasing implicit 600; timp maxim de închiriere 7200; opțiune nume de domeniu „local”; opțiune nume-domeniu-servere 8.8.8.8, 8.8.4.4; }

Să configurăm wlan0 pentru IP static

Mai întâi, închide-l …

sudo ifdown wlan0

… păstrați-l în siguranță și creați un fișier de rezervă:

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

… Editați fișierul interfețelor de rețea:

sudo nano / etc / network / interfaces

… editați în consecință pentru a citi:

director-sursă /etc/network/interfaces.d

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

… Închideți fișierul și atribuiți acum un IP static

sudo ifconfig wlan0 192.168.42.1

Terminat…

Hostapd

Creați un fișier și editați-l:

sudo nano /etc/hostapd/hostapd.conf

Modificați ssid cu un nume la alegere și wpa_passphrase la un authen WiFi

interfață = 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

Să configurăm traducerea adresei de rețea

Creați un fișier de rezervă

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

editați fișierul de configurare

sudo nano /etc/sysctl.conf

… anulați comentariul sau adăugați în partea de jos:

net.ipv4.ip_forward = 1

# … și activați-l imediat:

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

… Modificați iptables pentru a crea o traducere de rețea între eth0 și portul wifi wlan0

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

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

… faceți acest lucru la repornirea de runnig

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

… și editarea din nou

sudo nano / etc / network / interfaces

… atașat la sfârșitul apoi:

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

Fișierul nostru / etc / network / interfaces va arăta astfel:

director-sursă /etc/network/interfaces.d

auto lo

iface lo inet loopback allow-hotplug eth0 iface eth0 inet adresa statică 192.168.100.61 netmask 255.255.255.0 gateway 192.168.100.1 allow-hotplug wlan0 iface wlan0 inet adresa statică 192.168.42.1 netmask 255.255.255.0 rețea 192.168.42.0 difuzare 192.168.42.255 sursă- directorul /etc/network/interfaces.d

Să testăm punctul nostru de acces rulând:

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

Hotspot-ul dvs. este în funcțiune: încercați să vă conectați la acesta de pe un computer sau un smartphone. Când faceți acest lucru, ar trebui să vedeți, de asemenea, unele activități de jurnal pe terminalul dvs. Dacă sunteți mulțumit, opriți-l cu CTRL + C

Să curățăm totul: sudo service hostapd start sudo service isc-dhcp-server start

… și asigurați-vă că suntem în funcțiune:

sudo service hostapd status

sudo service isc-dhcp-server status

… haideți să ne configurăm demonii pentru a începe la momentul pornirii:

sudo update-rc.d hostapd activate

sudo update-rc.d isc-dhcp-server activate sudo systemctl demascare hostapd sudo systemctl demascare isc-dhcp-server

… reporniți pi

sudo reboot

Acum ar trebui să vă puteți vedea WiFi-ul pi, să vă conectați la acesta și să accesați internetul la acesta. Ca o comparație rapidă, streamingul de videoclipuri 4k va consuma aproximativ 10% din CPU-ul pi, așa că … utilizați-l în consecință.

Ca bonus, dacă doriți să verificați ce se întâmplă pe hotspot-ul dvs. WiFi, verificați fișierul jurnal:

tail -f / var / log / syslog

Pasul 5:

Imagine
Imagine
Imagine
Imagine
Imagine
Imagine

Cazul.

Proiecta

Pentru această parte, am folosit programul de proiectare 3D sketchup. Ledboard Pi aluminiu carcasă Proiectare 3D

Pentru aceasta, am folosit profile comune de aluminiu dreptunghiulare de 82,5 mm x 38 mm, unele unghiuri și câteva șuruburi. Sprijinul a fost fondat de mama mea pe stradă, irosit. Are roți așa cum se arată în imagini.

Recomandat: