Apprenez à programmer sur le Raspberry Pi: contrôlez les broches GPIO

L’une des caractéristiques spéciales du Raspberry Pi est les broches d’entrée-sortie programmables. Ces soi-disant GPIO peuvent facilement être commutés via un programme, que nous allons parcourir dans ce tutoriel. Pour cela, nous allons écrire un programme Python, d’une part, nous enregistrons des entrées et d’autre part, nous commutons les broches GPIO du Raspberry Pi afin de pouvoir changer d’autres modules et capteurs. De plus, je vais également expliquer comment fonctionne une planche à pain.

Si vous n’avez pas lu la première partie et que vous avez toujours des problèmes avec les bases, je vous conseille de passer par celle-ci en premier. Pour ceux qui ont déjà une expérience en programmation mais qui n’ont pas encore travaillé avec les GPIO, vous pouvez commencer directement par cela.

Soit dit en passant: ce serait bien pour les autres parties si vous avez des suggestions ou ce qui vous intéresse le plus. J’essaierai de l’intégrer à l’avenir.

Breadboard requis

Dans ce didacticiel, nous aurons besoin de quelques blocs de construction matériels. Ce sont entre autres:

Soit dit en passant, ces composants sont toujours nécessaires. Si vous souhaitez créer plus de projets matériels, vous aurez certainement besoin de ces accessoires.

Comment fonctionne une Breadboard ?

Une Breadboard est utile car en l’utilisant, on peut configurer des circuits rapidement sans avoir à les souder à chaque fois. Il offre de grands avantages, en particulier lors des tests et de la conception. Il existe des platines de différentes tailles, mais la structure est généralement la suivante:

Planche à pain GPIO Raspberry PiLes connexions sont marquées dans le schéma ci-dessous. Les lignes indiquent lesquels des trous sont connectés. En haut et en bas, vous pouvez voir deux barres horizontales auxquelles vous fixez normalement les pôles plus et moins d’un appareil.

Les connexions sur les broches centrales sont verticales. Ici, par exemple une LED peut être insérée dans deux colonnes côte à côte. Mais plus à ce sujet dans un instant.

Présentation du Raspberry Pi GPIO

Depuis le modèle B +, les Raspberry Pi ont un en-tête à 40 broches. Tous ne peuvent pas être lus ou connectés car il existe également des connexions de tension et de masse. Le graphique suivant répertorie les broches complètes, y compris les fonctions et la numérotation. Le côté gauche (vert) devrait symboliser la carte du Raspberry Pi.

Affectation des broches GPIO du Raspberry Pi

Affectation des broches GPIO du Raspberry Pi

Toutes les broches qui ont «GPIO» dans leurs noms peuvent être programmées. Il y a aussi la «masse» (= connexion à la terre) et les broches de tension (3,3 V et 5 V).

Comme vous pouvez le voir, il y a deux affectations de broches: d’abord l’affectation des broches ascendantes (commençant à 1 en haut à gauche), puis la numérotation plutôt aléatoire des GPIO. Ceci est important car vous pouvez adresser un GPIO via les deux numéros.

Broche 15 = GPIO 22, par exemple. Faites toujours attention à l’utilisation de la broche ou du GPIO. La plupart des didacticiels le font ne pas utiliser la numérotation des broches, mais le numéro GPIO.

Préparation

Comme précédemment, nous ouvrons l’éditeur Python via le menu Démarrer> Programmation.

1591858146 881 Apprenez a programmer sur le Raspberry Pi controlez les broches

Dans la console Python ouverte, nous saisissons d’abord les éléments suivants:

import RPi.GPIO as GPIO

Nous importons une bibliothèque avec laquelle nous pouvons programmer les broches GPIO du Raspberry Pi. Cette bibliothèque contenait déjà toutes les fonctions requises, nous n’avons donc pas à écrire de fonctions supplémentaires pour elle.

Nous importons également une bibliothèque avec laquelle nous pouvons arrêter le script pendant une courte période. Ce sera intéressant par la suite.

import time

Ensuite, nous indiquons si nous voulons adresser les GPIO via des numéros de carte (1-40) ou via leur numéro GPIO. Puisque nous voulons ce dernier, la commande est:

GPIO.setmode(GPIO.BCM)

Switch Raspberry Pi GPIO Pins – Sortie

Tout d’abord, nous voulons commuter quelques LED simples à l’aide des GPIO. Nous construisons les LED selon le graphique suivant. En tant que connexion entre le Raspberry Pi et la planche à pain, vous pouvez utiliser les câbles de démarrage et un simple fil pour toutes les autres connexions. Les couleurs ne sont pas pertinentes et ne sont destinées qu’à une meilleure différenciation.

Carte de test de sortie GPIO Raspberry Pi

La LED a deux extrémités de longueurs différentes. L’extrémité la plus longue correspond à la tension positive de 3,3 volts du GPIO 23 (broche 16). La résistance choisie est de 330Ω (Ohm).

Maintenant, il revient à la console Python, où nous entrons notre code. Tout d’abord, nous devons définir broche en sortie:

GPIO.setup(23, GPIO.OUT)

Les fonctions de sortie pour cette broche sont maintenant disponibles. Avec les deux commandes suivantes, nous pouvons d’abord allumer la LED, puis l’éteindre à nouveau:

GPIO.output(23, GPIO.HIGH)
GPIO.output(23, GPIO.LOW)

Cette commande indique simplement si une tension de 3,3 V (HIGH) ou 0 V (LOW) doit être appliquée.

C’est assez facile, non ?? Si vous souhaitez construire un petit circuit clignotant, vous pouvez par exemple procédez comme suit:

for i in range(5):
    GPIO.output(23, GPIO.HIGH)
    time.sleep(0.5)
    GPIO.output(23, GPIO.LOW)
    time.sleep(0.5)

Cela allume et éteint la LED 5 fois, en attendant une demi-seconde entre les deux avant de changer l’état.

Lecture des broches GPIO du Raspberry Pi – Entrée

Avec les GPIO, les courants peuvent non seulement être commutés, mais ils peuvent également être lus. Par conséquent, nous élargissons maintenant notre circuit avec un bouton. L’état doit être lu et la LED doit s’allumer dès que le bouton est enfoncé. Si le bouton n’est plus enfoncé, la LED doit également cesser de s’allumer.

Premièrement, nous élargissons le circuit. En plus du bouton, nous avons besoin d’une résistance de 10 000 Ω, qui est connectée à la masse à une extrémité du bouton. Entre les deux, il y a une connexion au GPIO 24 (broche 18). L’autre extrémité de l’interrupteur est connectée à la tension de 3,3 volts:

Carte de test d'entrée Raspberry Pi GPIO

Pourquoi tout ça? Tant que l’interrupteur n’est pas enfoncé, la connexion entre la tension 3,3 V et le GPIO est ouverte. Cependant, pour qu’un état clair soit reconnu (0 V ou 3,3 V), la connexion est connectée à la connexion de masse via une très grande résistance.
Dès que le bouton est enfoncé, la connexion se ferme et 3,3 V est connecté au GPIO.

Remarque: Ne connectez jamais plus de 3,3 V aux GPIO, sinon ils peuvent se casser.

Passons au code. Ici aussi, nous devons d’abord définir l’état, mais cette fois, la broche est définie comme entrée:

GPIO.setup(24, GPIO.IN)

Maintenant, nous pouvons déjà interroger le statut:

GPIO.input(24)

Cela produira soit 0 (si le bouton n’a pas été enfoncé) ou 1 (si le bouton a été enfoncé).

Dans la dernière étape, nous étendons le programme comme suit, afin que la LED soit toujours allumée lorsque le bouton est enfoncé.

# Infinite loop
while True:
    if GPIO.input(24) == 0:
        # Turn off
        GPIO.output(23, GPIO.LOW)
    else:
        # Turn on
        GPIO.output(23, GPIO.HIGH)

Vous pouvez également annuler le processus avec CTRL + C.

Sommaire

En résumé, il y a aussi le code du script entier au cas où quelqu’un voudrait l’enregistrer dans un fichier et l’appeler dans son ensemble.

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

GPIO.setup(23, GPIO.OUT)
GPIO.setup(24, GPIO.IN)

for i in range(5):
    GPIO.output(23, GPIO.HIGH)
    time.sleep(0.5)
    GPIO.output(23, GPIO.LOW)
    time.sleep(0.5)

# Infinite loop
while True:
    if GPIO.input(24) == 0:
        # Turn off
        GPIO.output(23, GPIO.LOW)
    else:
        # Turn on
        GPIO.output(23, GPIO.HIGH)

Si vous avez apprécié cette introduction, je ne peux que recommander le mini projet d’un commutateur de feux de circulation. Divisé en deux parties, un système de feux de circulation fonctionnel composé de feux de voiture et de piétons est construit.

Vous pouvez trouver plus d’informations sur cette structure ici.

Avec les connaissances transmises ici, vous pouvez déjà démarrer de petits projets. Voici un petit avant-goût:

Dans la prochaine partie, nous écrirons notre première GUI (interface utilisateur graphique), que nous pouvons également utiliser pour contrôler les GPIO.