Le Raspberry Pi est un ordinateur monomoteur polyvalent qui est devenu un favori parmi les amateurs, les éducateurs et les professionnels. L'une de ses fonctionnalités les plus puissantes est la capacité d'interagir avec le monde physique via ses épingles d'entrée / sortie (GPIO) à usage général (GPIO). En tirant parti de Python, un langage de programmation adapté aux débutants et puissants, vous pouvez contrôler ces broches GPIO pour construire un large éventail de projets, des simples blinkers LED aux systèmes de domotique complexes. Dans cet article de blog, nous vous guiderons à travers les bases de l'utilisation de Raspberry Pi pour contrôler GPIO avec Python.
Comprendre les broches GPIO
Les broches GPIO sont des interfaces polyvalentes sur le Raspberry Pi qui vous permettent de connecter et de contrôler les dispositifs externes comme les LED, les capteurs, les moteurs, etc. Selon le modèle de Raspberry Pi, vous trouverez un nombre variable de broches GPIO disposées dans un modèle spécifique. Ces broches peuvent être configurées comme entrées ou sorties:
- Saisir: Lisez les signaux des dispositifs externes (par exemple, boutons, capteurs).
- Sortir: Envoyez des signaux à des dispositifs externes (par exemple, LED, relais).
Avant de plonger dans l'aspect de programmation, il est essentiel de comprendre la disposition de la broche de votre framboise PI. Reportez-vous au diagramme officiel de broche Raspberry Pi GPIO pour des informations précises spécifiques à votre modèle.
Configuration de votre Raspberry Pi
Pour commencer à contrôler les broches GPIO avec Python, assurez-vous que votre Raspberry Pi est configuré correctement:
- Installez le dernier Raspberry Pi OS: Assurez-vous que votre Raspberry Pi exécute la dernière version de Raspberry Pi OS. Vous pouvez le télécharger à partir du site officiel de Raspberry Pi et utiliser des outils comme Raspberry Pi Imageur pour le flasher sur votre carte SD.
- Mettez à jour votre système: Ouvrez le terminal et exécutez les commandes suivantes pour mettre à jour vos packages système:
sudo apt update
sudo apt upgrade -y
sudo apt install python3-rpi.gpio
Écriture de votre premier script GPIO Python
Commençons par un projet simple: clignoter une LED. Vous aurez besoin des composants suivants:
- Raspberry Pi
- DIRIGÉ
- Résistance de 220 ohms
- Fils de planche à pain et de cavalier
Câblage de la LED:
- Connectez la longue jambe (anode) de la LED à la broche GPIO 17 à travers la résistance.
- Connectez la jambe courte (cathode) de la LED à une goupille moulue (GND) sur le framboise Pi.
Maintenant, écrivons le script Python pour contrôler la LED.
Clignoter une LED avec Python
import RPi.GPIO as GPIO
import time
# Use BCM GPIO numbering
GPIO.setmode(GPIO.BCM)
# Set GPIO pin 17 as output
LED_PIN = 17
GPIO.setup(LED_PIN, GPIO.OUT)
try:
while True:
GPIO.output(LED_PIN, GPIO.HIGH) # Turn LED on
time.sleep(1) # Wait for 1 second
GPIO.output(LED_PIN, GPIO.LOW) # Turn LED off
time.sleep(1) # Wait for 1 second
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup() # Reset GPIO settings
Explication:
-
import RPi.GPIO as GPIO
: Importe la bibliothèque RPI.gpio. -
import time
: Importe le module de temps pour la fonctionnalité de sommeil. -
GPIO.setmode(GPIO.BCM)
: Définit le schéma de numérotation GPIO à BCM (canal SOC Broadcom). -
GPIO.setup(LED_PIN, GPIO.OUT)
: Configure la broche GPIO 17 en tant que broche de sortie. - Le
try
Block contient une boucle infinie qui allume et éteint la LED à chaque seconde. -
GPIO.cleanup()
: Nettoie les paramètres GPIO pour assurer une sortie propre.
Exécuter votre script
Enregistrez votre script en tant que blink_led.py
et l'exécutez en utilisant la commande suivante:
python3 blink_led.py
Vous devriez voir la LED connectée à la broche GPIO 17 clignotant et hors de chaque seconde. Pour arrêter le script, appuyez sur Ctrl + C
.
Élargir votre projet
Une fois que vous avez maîtrisé un clignotant, vous pouvez explorer des projets plus complexes en combinant différents capteurs et actionneurs. Voici quelques idées pour vous aider à démarrer:
- Interaction bouton: Contrôlez la LED à l'aide d'un bouton physique. Cela implique la configuration d'une broche GPIO en entrée et en lisant son état dans votre script Python.
- Dogue des données du capteur: Utilisez des capteurs comme la température ou les détecteurs de mouvement pour collecter des données et les enregistrer pour analyse.
- Home-Automation: Les appareils de contrôle à distance en intégrant le contrôle GPIO avec les interfaces Web ou les applications mobiles.
Contrôler un bouton
Étendons notre exemple précédent en ajoutant un bouton pour contrôler la LED. Vous aurez besoin:
- Bouton
- Résistance 10k-ohm
- Fils de cavalier supplémentaires
Câblage du bouton:
- Connectez une jambe du bouton à la broche GPIO 27.
- Connectez l'autre jambe à une broche de sol (GND) à travers une résistance de 10 km-ohm.
Voici le script Python pour contrôler la LED avec le bouton:
import RPi.GPIO as GPIO
import time
# Use BCM GPIO numbering
GPIO.setmode(GPIO.BCM)
# Define GPIO pins
LED_PIN = 17
BUTTON_PIN = 27
# Set up GPIO pins
GPIO.setup(LED_PIN, GPIO.OUT)
GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
try:
while True:
button_state = GPIO.input(BUTTON_PIN)
if button_state == GPIO.HIGH:
GPIO.output(LED_PIN, GPIO.HIGH) # Turn LED on
else:
GPIO.output(LED_PIN, GPIO.LOW) # Turn LED off
time.sleep(0.1)
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()
Explication:
- La broche GPIO 27 est configurée comme une entrée avec une résistance déroulante pour assurer un état stable lorsque le bouton n'est pas enfoncé.
- Le script lit en continu l'état du bouton et allume la LED lorsque le bouton est appuyé sur le bouton.
Meilleures pratiques et conseils de sécurité
Lorsque vous travaillez avec des broches GPIO, il est crucial de respecter les meilleures pratiques pour éviter de nuire à votre framboise PI ou à des composants connectés:
- Éteindre lors de la connexion du matériel: Éteignez toujours votre Raspberry Pi avant de vous connecter ou de déconnecter le matériel pour éviter les courts-circuits.
- Utilisez des résistances de limitation de courant: Protégez vos composants en utilisant des résistances appropriées, en particulier lorsque vous travaillez avec les LED.
- Câblage à double vérification: Assurez-vous que toutes les connexions sont correctes pour éviter les dommages accidentels aux broches GPIO.
- Manipuler avec soin: Évitez soigneusement la décharge statique en manipulant soigneusement le Raspberry Pi et les composants.
Conclusion
Le contrôle des broches GPIO avec Python sur un Raspberry Pi ouvre un monde de possibilités pour créer des projets interactifs et automatisés. Des tâches simples comme clignoter des LED à des systèmes plus complexes impliquant plusieurs capteurs et actionneurs, la maîtrise du contrôle du GPIO est une compétence fondamentale pour tout passionné de Raspberry Pi. En suivant les étapes décrites dans ce guide et en adhérant aux meilleures pratiques, vous serez en bonne voie de créer des projets passionnants et innovants.
Bonne bricolage!