Vous êtes ici:

Menu


Stacks Image 36912
Nous allons aborder la gestion des GPIO du Raspberry. Nous en aurons besoin pour gérer nos moteurs et le ventilateur. Je vais vous présenter un programme de mon cru développé en gambas3 permettant la visualisation des états des GPIO du Raspberry.

1 Installation de la bibliothèque Wiring Pi

Nous aurons besoin de la bibliothèque Wiring Pi pour l'utiliser dans les scripts python et la programmation Gambas3. Il faut utiliser la bonne bibliothèque pour le PI 4.
cd /tmp
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb

1.1 Utilisation de la commande gpio

1.1a Statut des GPIO

Première commande intéressante, la lecture globale de l'état des GPIO. Cette commande permet de connaitre le mode des GPIO : ALT, IN, OUT.
gpio readall
résultat
 +-----+-----+---------+------+---+---Pi 4B--+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
 |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5v      |     |     |
 |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | IN   | TxD     | 15  | 14  |
 |     |     |      0v |      |   |  9 || 10 | 1 | IN   | RxD     | 16  | 15  |
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
 |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
 |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
 |   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
 |  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |
 |  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
 |  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |
 |     |     |      0v |      |   | 39 || 40 | 0 | IN   | GPIO.29 | 29  | 21  |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+---Pi 4B--+---+------+---------+-----+-----+

1.1b Changement du mode d'un GPIO

Par défaut la commande utilise la numérotation wPI (WiringPI) pour les ports GPIO. Pour configurer le port GPIO 29 en sortie.
gpio mode 29 out
résultat
 |     |     |      0v |      |   | 39 || 40 | 0 | OUT  | GPIO.29 | 29  | 21  |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+---Pi 4B--+---+------+---------+-----+-----+
Pour configurer le port GPIO 29 en entrée.
gpio mode 29 in

1.1c Lire l'état d'un GPIO

Voici la commande pour lire l"état d"un GPIO. niveau haut : 1, niveau bas : 0.
gpio read 30
Résultat
1

1.1d Changer l'état d'un GPIO

Voici la commande pour modifier l'état d'un GPIO.
gpio write 29 1
résultat
 |     |     |      0v |      |   | 39 || 40 | 1 | OUT  | GPIO.29 | 29  | 21  |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+---Pi 4B--+---+------+---------+-----+-----+

2 Test du fonctionnement du ventilateur

Nous allons effectuer notre premier test de fonctionnement des shield. Le ventilateur est banché sur les ports GPIO 9 et 11 (numérotation des pins). En numérotation wPI, respectivement 13 et 14. Voici un extrait du schéma électrique pour le ventilateur.
Stacks Image 969795
Si nous saisissons les commandes suivantes, notre ventilateur devrait démarrer.
Changement de mode
gpio mode 13 out
gpio mode 14 out
Changement d'état
gpio write 14 1
Le ventilateur devrait fonctionner.

3 Programme TestGpio avec Gambas3

J'ai réalisé un programme qui vérifie en temps réel, le statut des ports GPIO et affiche les différentes numérotation (pin, BCM, wPI). Mais avant d'installer l'exécutable, il faut installer l'IDE de programmation Gambas3. Oui, je sais, j'aurais du faire une installation complète pour éviter l'installation du logiciel de programmation. Mais je l'utiliserai pour développer d'autres programmes pour mon projet. Et puis l'installation est vraiment facile.
sudo apt install gambas3
Récupérez mon dépôt pour le projet pi-gbc dans le dossier Documents. Le chemin a une importance, nous le verrons plus tard, avec la supervision Centreon.
cd Documents/
git clone https://github.com/kermith72/pi-gbc.git
Dans le dossier /home/pi/Documents/pi-gbc/gpio vous trouverez deux scripts bash et le programme Testgpio.gambas. le script statusgpiomode.sh est requis pour visualiser le mode des GPIO. Il doit se trouver à la racine du programme gambas.
Stacks Image 969651
Double-cliquez sur l'exécutable et confirmez avec le bouton exécuter.
Stacks Image 969812
Le programme se lance et affiche toutes les cinq secondes, l'état des GPIO. La numérotation est celle des pin. La couleur rouge correspond au 5v, la couleur orange au 3,3v, la couleur noir au 0v GND. Sinon l'état 1 est affiché en vert et l'état 0 en violet. Le mode OUT est affiché en flèche rouge. Le script bash est utilisé pour l'affichage du mode sinon on utilise la librairie WiringPI pour le reste. On peut modifier le rafraîchissement de la lecture des GPIO. Il est possible d'afficher les différentes numérotation des GPIO.
Stacks Image 969817
L'intérêt de ce petit programme est de visualiser l'état des GPIO comme pour le test précédents.
Stacks Image 969834
Dans cet exemple, je commande l'arrêt du ventilateur en modifiant l'état du GPIO. Auparavant, j'ai modifié la numérotation en Wpi.
Stacks Image 969831
Les source du programme sont disponible dans le dossier /home/pi/Documents/pi-gbc/gambas3/Testgpio. Ouvrez le dossier avec le programme gambas3, vous pouvez le modifier à votre guise.
Stacks Image 969828
C'est fini pour cette partie, nous allons installer la plateforme de supervision qui nous servira à asservir les moteurs et le ventilateur. Passons à l'installation de Centreon.
comments powered by Disqus
 Vous êtes ici: