Table des matières:

Ledboard Pi : 5 étapes (avec photos)
Ledboard Pi : 5 étapes (avec photos)

Vidéo: Ledboard Pi : 5 étapes (avec photos)

Vidéo: Ledboard Pi : 5 étapes (avec photos)
Vidéo: Как сделать легкую цементную стяжку в старом доме. ПЕРЕДЕЛКА ХРУЩЕВКИ ОТ А до Я #12 2024, Juillet
Anonim
Tableau de bord Pi
Tableau de bord Pi
Tableau de bord Pi
Tableau de bord Pi
Tableau de bord Pi
Tableau de bord Pi

L'écran Ledboard Pi est le résultat d'années d'expérience, d'apprentissage et de développement; mais aussi, le résultat d'avoir les bons outils (matériel, logiciel, firmware) au bon moment: Raspberry Pi 4 (avec Raspberry Pi 3 fonctionne aussi) avec sa vitesse, sa mémoire et sa capacité sans fil, le merveilleux projet Raspberry Pi LED Matrix Display basé sur les bibliothèques rpi-rgb-led-matrix et rpi-fb-matrix (pour piloter de nombreux panneaux LED RVB commerciaux via GPIO) pour afficher la sortie vidéo du Raspberry Pi sur un grand écran matriciel LED RVB (pour ce instructable, la résolution est 96x64 utilisant 6 panneaux sparkfun 32x32). Tout cela est contrôlé avec une application graphique programmée à l'aide de lazarus ide sur un bureau openbox très léger installé sur une image Raspbian Buster Lite et enfin, montrez tout ce que votre imagination peut programmer: un tableau de bord multisports, un affichage numérique ou un lecteur vidéo; il n'y a pas de limites. Ce projet, contrôlé par n'importe quel ordinateur, est capable d'exécuter VNC Viewer, car le serveur VNC est également installé sur Rasbian Buster Lite de Raspberry Pi 4.

A partir de demain, je vais essayer d'expliquer en détail chaque étape pour faire fonctionner ce projet.

Fournitures

Nous avons besoin pour ce projet:

Matériel

  1. Un Raspberry Pi 3 ou supérieur, Raspberry Pi 4 avec son alimentation 5V 2,5 A
  2. Une carte d'entraînement de panneau de matrice de LED Electrodragon RGB pour Raspberry Pi
  3. Six panneaux LED RVB 32x32 de Sparkfun
  4. Une alimentation 40A 5v
  5. Un cadre rectangulaire en aluminium de 3 mètres 82,5 mm x 38 mm
  6. Une coupe d'acrylique taille L 576 mm x H 384 mm
  7. Une coupe de film polarisé

Logiciel

  1. bibliothèque hezeller rpi-rgb-led-matrix
  2. Bibliothèque Adafruit rpi-fb-matrix
  3. Images Raspbian buster lite ou realtimepi-buster-lite
  4. Boîte ouverte
  5. Pour contrôler pc/ordinateur portable/Raspberry Pi 3 ou 4, Real VNC Viewer pour Windows ou Linux ou Raspbian
  6. IDE Lazarus pour raspbian buster lite
  7. Application Leboard Pi

à suivre…

Étape 1: Configuration des éléments du système d'exploitation Raspberry Pi 3/4

Réglage des trucs du système d'exploitation Raspberry Pi 3/4
Réglage des trucs du système d'exploitation Raspberry Pi 3/4
Réglage des trucs du système d'exploitation Raspberry Pi 3/4
Réglage des trucs du système d'exploitation Raspberry Pi 3/4
Réglage des trucs du système d'exploitation Raspberry Pi 3/4
Réglage des trucs du système d'exploitation Raspberry Pi 3/4

Une fois que nous avons les pièces matérielles, nous devons obtenir les éléments du système d'exploitation:

Tout d'abord, nous devons obtenir le système d'exploitation pour Raspbian 3/4. dans mon cas, je décide d'utiliser buster lite en temps réel; mais vous pouvez également utiliser la version Raspbian Buster Lite. Ensuite, vous devez transférer cette image sur une carte micro SD à l'aide de balenaEtcher.

Ensuite, nous devons connecter un écran HDMI et un clavier USB et un câble réseau cat5 connecté à

Raspberry Pi 3/4 RJ45; ainsi, nous pouvons rechercher l'IP Raspberry Pi 3/4 pour faire la configuration initiale: IP réseau, filaire et sans fil. J'ai utilisé le scanner ip avancé. Maintenant, via raspi-config, activez le serveur SSH pour vous connecter à distance à l'aide de Putty pour terminer le reste de la configuration de Ledboard Pi.

Maintenant, sur la version allégée, nous allons installer un environnement de bureau léger avec openbox

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

Ensuite, installez lightdm (Gestionnaire de connexion)

sudo apt-get install lightdm

Activer realvncserver depuis raspi-config

sudo raspi-config > Options d'interface > vncserver > activer vncserver

Ici, une fois le vnceserver activé, nous allons utiliser VNC Viewer. En cela, le bureau à configurer dans la connexion est 0, ex. Si l'IP est 192.168.100.61, la connexion est « 192.168.100.61:0 »

Nous avons besoin d'un lien entre l'ordinateur de contrôle/l'ordinateur portable et le Ledboard Pi, donc samba doit être installé pour le transfert du code source, des fichiers, des images, des vidéos, etc

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

Assurez-vous que votre utilisateur est le propriétaire du chemin que vous essayez de partager via Samba

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

Faites une copie du fichier de partage samba d'origine

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

Modifier le fichier de configuration de samba

sudo nano /etc/samba/smb.conf

Laissez le groupe de travail en tant que WORKGROUP (ou nommez-le comme vous le souhaitez)

#gagne le support = non

pour gagner le soutien = oui

Puis ….

#Ceci est le nom du dossier de partage sous lequel il apparaîtra lorsque vous parcourez

[ledboardpi] comment = ledboardPi partager le chemin du dossier = /home/pi/Share create mask = 0775 directory mask = 0775 read only = no browserable = yes public = yes force user = pi only guest = no

Maintenant, nous pouvons accéder au dossier "home/pi/share" dans le chemin /home/pi depuis un autre ordinateur.

Pour gérer le système de fichiers à l'aide d'une application graphique, nous allons installer pcmanfm

sudo apt-get install pcmanfm

Étape 2: Téléchargement, configuration et exécution des bibliothèques requises du panneau LED RVB

Image
Image
Téléchargement, configuration et exécution des bibliothèques requises pour le panneau LED RVB
Téléchargement, configuration et exécution des bibliothèques requises pour le panneau LED RVB
Téléchargement, configuration et exécution des bibliothèques requises pour le panneau LED RVB
Téléchargement, configuration et exécution des bibliothèques requises pour le panneau LED RVB

Tout d'abord, installez les pré-requis

sudo apt-get mise à jour

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

Ensuite, téléchargez et compilez hzeller rpi-rgb-led-matrix

wget

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

Aussi, téléchargez et installez rpi-fb-matrix

Vous devez cloner ce référentiel avec l'option récursive afin que les sous-modules nécessaires soient également clonés. Exécutez cette commande:

git clone --recursive

Fabriquer

Remarque: remplacez la bibliothèque rpi-rgb-led-matrix téléchargée au début dans le dossier rpi-fb-matrix

Maintenant, nous allons tester ces bibliothèques, rappelez-vous, rpi-fb-matrix dépend de rpi-rgb-led-matrix

cd rpi-fb-matrice

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=" régulier" --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

Tout marche bien.

Maintenant, la bibliothèque rpi-fb-matrix. Cela affichera une partie (96x64) de l'écran dans des panneaux LED RVB basés sur Ledboard Pi

cd /home/pi/rpi-fb-matrice

N'OUBLIEZ PAS de copier la dernière version de la bibliothèque rpi-rgb-led-matrix dans le dossier rpi-fb-matrix. TRÈS IMPORTANT

rendre propre

fait tout

Ces dernières commandes, pour les bibliothèques rpi-fb-matrix et rpi-rgb-led-matrix…..

Pour le rpi-fb-matrix est nécessaire une configuration correcte de matrix.cfg (j'ai renommé davenew.cfg pour cette instructable), lisez, analysez pour des projets personnalisés avec un nombre différent de panneaux LED RVB…

Configuration de l'affichage matriciel à LED // Définissez la largeur et la hauteur totales de l'affichage en pixels. // Il s'agit de la largeur et de la hauteur _totales_ du rectangle défini par tous les // panneaux chaînés. La largeur doit être un multiple de la largeur en pixels du panneau (32), // et la hauteur doit être un multiple de la hauteur en pixels du panneau (8, 16 ou 32). largeur_affichage = 96; hauteur_affichage = 64; // Définit la largeur de chaque panneau en pixels. Cela devrait toujours être 32 (mais peut en théorie être modifié). largeur_panneau = 32; // Définit la hauteur de chaque panneau en pixels. Il s'agit généralement de 8, 16 ou 32. // REMARQUE: chaque panneau de l'écran _doit_ avoir la même hauteur ! Vous ne pouvez pas mélanger // des panneaux de 16 et 32 pixels de haut par exemple. panneau_hauteur = 32; // Définit le nombre total de panneaux dans chaque chaîne. Comptez le nombre de // panneaux connectés entre eux et indiquez cette valeur ici. Si vous utilisez // plusieurs chaînes parallèles, comptez chacune séparément et choisissez la // plus grande valeur pour cette configuration. chain_length = 3; // Définit le nombre total de chaînes parallèles. Si vous utilisez l'Adafruit HAT, vous ne pouvez // avoir qu'une seule chaîne, alors tenez-vous en à la valeur 1. Le Pi 2 peut prendre en charge jusqu'à // 3 chaînes parallèles, consultez la bibliothèque rpi-rgb-led-matrix pour plus d'informations: // https://github.com/hzeller/rpi-rgb-led-matrix#chaining-parallel-chains-and-coordinate-system parallel_count = 2; // Configurez chaque panneau matriciel à LED. // Ceci est un tableau à deux dimensions avec une entrée pour chaque panneau. Le tableau // définit la grille qui subdivisera l'affichage, donc par exemple un affichage de taille 64x64 // avec des panneaux de 32x32 pixels serait un tableau 2x2 de configurations de panneaux. // // Pour chaque panneau, vous devez définir l'ordre dans lequel il se trouve dans sa chaîne, c'est-à-dire que le // premier panneau d'une chaîne est order = 0, le suivant est order = 1, etc. Vous pouvez // également définir un rotation pour chaque panneau pour tenir compte des changements d'orientation du panneau // (comme lorsque vous « serpent » une série de panneaux bout à bout pour des câbles plus courts). // // Par exemple la configuration ci-dessous définit cette grille d'affichage des panneaux et // leur câblage (en partant du panneau supérieur droit et en serpentant vers la gauche, le bas et // la droite vers le panneau inférieur droit): // _ _ _ / / | Panneau | | Panneau | | Panneau | // | ordre = 2 |<=| commande = 1 |<=| ordre = 0 |<= Chaîne 1 (de Pi) // | rotation = 0 | | rotation = 0 | | rotation = 0 | // |_| |_| |_| // _ _ _ // | Panneau | | Panneau | | Panneau | // | ordre = 2 |<=| commande = 1 |<=| ordre = 0 |<= Chaîne 2 (de Pi) // | rotation = 0 | | rotation = 0 | | rotation = 0 | // |_| |_| |_| // // Remarquez que la chaîne commence en haut à droite et serpente vers le bas // à droite. L'ordre de chaque panneau est défini comme sa position le long de la chaîne, // et la rotation est appliquée aux panneaux inférieurs qui sont retournés par rapport // aux panneaux au-dessus d'eux. // // Non affiché mais si vous utilisez des chaînes parallèles, vous pouvez spécifier pour chaque entrée // dans la liste des panneaux un 'parallel = x;' option où x est l'ID d'une // chaîne parallèle (0, 1 ou 2). panneaux = (({ ordre = 2; rotation = 0; parallèle=0; }, { ordre = 1; rotation = 0; parallèle=0;}, { ordre = 0; rotation = 0; parallèle=0;}, { order = 2; rotate = 0; parallel=1; }, { order = 1; rotate = 0; parallel=1;}, { order = 0; rotate = 0; parallel=1;})) // Par défaut le L'outil rpi-fb-matrix redimensionnera et réduira l'écran // pour s'adapter à la résolution des panneaux d'affichage. Cependant, vous pouvez à la place récupérer // une copie spécifique au pixel près d'une région de l'écran en définissant les coordonnées x, y // des pixels de l'écran ci-dessous. Un rectangle de la taille exacte de l'affichage // (c'est-à-dire display_width x display_height pixels) sera copié à partir de l'écran // à partir des coordonnées x, y fournies. Mettez ceci en commentaire pour désactiver // ce comportement de recadrage et redimensionner à la place l'écran jusqu'à l'affichage matriciel. origine_culture = (0, 0)

Étape 3: Compilation, configuration et test de l'application GUI Ledboard Pi

Image
Image
Compilation, configuration et test de l'application GUI Ledboard Pi
Compilation, configuration et test de l'application GUI Ledboard Pi
Compilation, configuration et test de l'application GUI Ledboard Pi
Compilation, configuration et test de l'application GUI Ledboard Pi

Nous avons besoin d'un IDE de programmation pour créer une application GUI (Ledboard Pi). Ensuite, je choisis "Lazarus IDE" très similaire à Delphi/C++ Builder que j'ai utilisé dans le système d'exploitation Windows

sudo apt-get install lazarus-ide

Une fois installé, exécutez simplement:

lazare-ide

Ouvrez le projet Ledboard Pi, puis compilez pour obtenir l'application Ledboard Pi. Avant d'ouvrir cette application, créez un répertoire nommé LEDBOARD_APP dans le chemin /home/pi, puis copiez l'application Ledboard Pi dans celui-ci

Maintenant, nous allons ajouter un lien dans le menu contextuel de l'openbox. Comment, nous avons besoin de l'obmenu, également xterm en utilisant le lien Putty, donc:

sudo apt-get install obmenu xterm

Maintenant, nous pouvons utiliser le terminal et l'obmenu dans la fenêtre vncviewer:

  1. Appeler xterm à partir du menu contextuel
  2. Ouvrir l'obmenu de xterm

Ajouter un nouvel élément: Ledboard Pi

  1. Choisissez un nouvel élément
  2. nommez-le Ledboard Pi
  3. exécuter sudo nice -n -15 /home/pi/LEDBOARD_APP/LEDBOARD
  • Téléchargez le "horn. WAV", puis, en utilisant l'emplacement samba lié au réseau "\ledboardpi\ledboardpi\", copiez-le et renommez-le dans l'environnement realtimePi en "horn.wav". Ce fichier, une fois renommé, doit être copié dans le dossier /home/pi.
  • Terminé, vous devez être capable d'exécuter Ledboard Pi aussi bien que vous le voyez dans les vidéos et les images.

Étape 4: Installation et configuration du point d'accès WiFi

Installation et configuration du point d'accès WiFi
Installation et configuration du point d'accès WiFi
Installation et configuration du point d'accès WiFi
Installation et configuration du point d'accès WiFi
Installation et configuration du point d'accès WiFi
Installation et configuration du point d'accès WiFi
Installation et configuration du point d'accès WiFi
Installation et configuration du point d'accès WiFi

Ce projet a été conçu pour fonctionner à l'aide de la visionneuse realvnc à partir d'un ordinateur portable connecté sans fil au Raspberry Pi 3/4. Donc, c'est la dernière étape pour le faire fonctionner et dire "hasta la vista baby" au cauchemar filaire.

Configuration du logiciel

sudo apt-get mise à jour

sudo apt-get install hostapd isc-dhcp-server

Serveur DHCP

Soyez prudent et faites toujours une sauvegarde de la configuration par défaut

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

Modifier le fichier de configuration defult

sudo nano /etc/dhcp/dhcpd.conf

Commentez les lignes suivantes…

option nom de domaine "exemple.org";

option serveurs de noms de domaine ns1.example.org, ns2.example.org;

lire:

#option nom de domaine "exemple.org";

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

…et dé-commentez cette ligne

#autoritaire;

… lire:

faisant autorité;

… faites défiler vers le bas en bas du fichier et écrivez les lignes suivantes:

sous-réseau 192.168.42.0 masque de réseau 255.255.255.0 {

plage 192.168.42.10 192.168.42.50; option adresse de diffusion 192.168.42.255; routeurs en option 192.168.42.1; durée de location par défaut 600; durée de location maximale 7200; option nom de domaine "local"; option serveurs de noms de domaine 8.8.8.8, 8.8.4.4; }

Configurons wlan0 pour une IP statique

Tout d'abord, fermez-le…

sudo ifdown wlan0

… gardez-le en sécurité et créez un fichier de sauvegarde:

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

…modifier le fichier d'interfaces réseau:

sudo nano /etc/network/interfaces

… modifier en conséquence pour lire:

répertoire-source /etc/network/interfaces.d

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

… fermez le fichier et attribuez une IP statique maintenant

sudo ifconfig wlan0 192.168.42.1

Terminé…

Hostapd

Créez un fichier et modifiez-le:

sudo nano /etc/hostapd/hostapd.conf

Modifiez le ssid avec un nom de votre choix et wpa_passphrase en un authen WiFi

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

Configurons la traduction d'adresse réseau

Créer un fichier de sauvegarde

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

modifier le fichier de configuration

sudo nano /etc/sysctl.conf

…dé-commenter ou ajouter en bas:

net.ipv4.ip_forward=1

# …et l'activer immédiatement:

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

…modifier les iptables pour créer une traduction réseau entre eth0 et le port 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

… faites en sorte que cela se produise au redémarrage en exécutant

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

… et retravailler

sudo nano /etc/network/interfaces

… en ajoutant à la fin:

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

Notre fichier /etc/network/interfaces ressemblera maintenant à ceci:

répertoire-source /etc/network/interfaces.d

lo auto

iface lo inet loopback allow-hotplug eth0 iface eth0 inet adresse statique 192.168.100.61 netmask 255.255.255.0 passerelle 192.168.100.1 allow-hotplug wlan0 iface wlan0 inet adresse statique 192.168.42.1 netmask 255.255.255.0 réseau 192.168.42.0 diffusion 192.168.42.255 source- répertoire /etc/network/interfaces.d

Testons notre point d'accès en exécutant:

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

Votre hotspot est opérationnel: essayez de vous y connecter depuis un ordinateur ou un smartphone. Lorsque vous le faites, vous devriez également voir une activité de journal sur votre terminal. Si vous êtes satisfait, arrêtez-le avec CTRL+C

Nettoyons tout: sudo service hostapd start sudo service isc-dhcp-server start

… et assurez-vous que nous sommes opérationnels:

état du service sudo hostapd

état du serveur sudo isc-dhcp-server

… configurons nos démons pour qu'ils démarrent au démarrage:

sudo update-rc.d hostapd activer

sudo update-rc.d isc-dhcp-server activer sudo systemctl démasquer hostapd sudo systemctl démasquer isc-dhcp-server

… redémarrez le pi

redémarrage sudo

Vous devriez maintenant pouvoir voir votre pi WiFi, vous y connecter et y accéder à Internet. À titre de comparaison rapide, le streaming de vidéos 4k consommera environ 10% du processeur pi, donc… utilisez-le en conséquence.

En bonus, si vous souhaitez vérifier ce qui se passe sur votre hotspot WiFi, consultez le fichier journal:

tail -f /var/log/syslog

Étape 5:

Image
Image
Image
Image
Image
Image

L'affaire.

Concevoir

Pour cette partie, j'ai utilisé le programme de conception 3D Sketchup. Conception 3D du boîtier en aluminium Ledboard Pi

Pour cela, j'ai utilisé des profilés en aluminium rectangulaires courants de 82,5 mm x 38 mm, des angles et des vis. Le soutien a été fondé par ma mère dans la rue, gaspillé. Il a des roues comme indiqué sur les photos.

Conseillé: