Application sur Microprocesseur (Raspberry Pi's GPIO)
On va essayer de se communiquer avec la Raspberry en touchant
leurs entrées sorties ou autrement dit GPIO.
GPIO c’est (General
Purpose Input Output), parmi les avantages de notre Raspberry l’inclusion d’une collection de
connecteurs qui jouent l’interface entrée sortie avec le monde externe, ils
sont des entrées sorties supplémentaires accessibles directement a la carte
mère.
Le nombre de ces pattes se diffère de modèle à autre.
Le nombre de ces pattes se diffère de modèle à autre.
Il faut bien mettre
en compte que les GPIO ne possèdent aucune protection. Il ne faut donc pas
oublier d'utiliser des buffers ou des optocoupleurs si nous avons des doutes
avec le montage.
Les modèles A et B
possédaient un port GPIO à 26 points. Les modèles A+, B+ et B2 possèdent un
port GPIO à 40 points, correspondant aux 26 points des modèles A/B plus 14
points supplémentaires. Un circuit conçu pour les versions A/B est donc
compatible A+/B+/B2.
Concernant les
modèles A et B, il y a eu plusieurs révisions. Le câblage du GPIO a été modifié
entre ces différentes versions. Le GPIO des versions A et B que nous verrons
ici correspond à la dernière révision, qui est également la plus répandue.
Les entrées-sorties sont de type
CMOS, et fonctionnent donc en +3.3V. N'essayez surtout pas de brancher des
circuits TTL (+5V) sur les entrées-sorties, sans adaptation. Vous risqueriez de
détruire votre Raspberry Pi.
L'ensemble de ces fonctionnalités peuvent être activées une à
une selon nos besoins.
Il faut bien mettre en compte que il existe deux numérotations
pour les GPIO expliquée au dessous:
Les GPIO.BOARD cette option elle nécessite
l’utilisation de numérotation déjà imprimé sur la carte électronique.
The GPIO.BCM cette option elle annule la
numérotation antécédente et elle va s’adresser avec les pins lisibles
directement sur le pus ou Broadcom SOC
channel .
Il est bien
recommandé d’utiliser la première numérotation que le deuxième surtout en
travaillant dans un projet qui inclut plus que la Raspberry seule.
Sur la
graphe suivante la numérotation BCM elle est celle la colorée en vert.
Comme il est indiqué sur la graphe
de GPIO antécédente il existe plusieurs protocoles qu’on a connu avec des
autres cartes électroniques déjà utilisée tels que le protocole I2C, UART,…. .
Ces protocoles seront pas
automatiquement activées on aura besoin de les activés manuellement avant de
les utilisées. Alors il faut réaliser les étapes suivantes avant :
- Ouvrons un terminal, depuis une interface
graphique, et/ou lancons la commande suivante :
sudo
raspi-config
- Cela lance l'interface de configuration du
Raspberry Pi, sélectionnons « Advanced Options » puis validons :
- Sur le nouvel écran, sélectionnons
« I2C » par exemple puis validons :
- Répondons « Yes » à toutes les
questions qui suivent.
- Rebootons notre machine en tapant
sudo reboot
- Testons que l'I2C est active avec la commande
suivante :
lsmod | grep
i2c_
Le même principe avec les restes de
protocoles au but d’activer le protocole qu’on va utilisée selon la tache.
Aujourd’hui nous allons voir comment
utiliser les entrées/sorties (GPIO) du Raspberry-pi pour interfacer du matériel
extérieur (Diode LED). Pour ceci on va utiliser le langage de programmation
Python dont nous allons faire la découverte avec un premier programme.
Découvrons Python
d’abord:
Python en définition est un langage
de programmation si simple. Le grand avantage de ce langage est qu’il sera
interprété et non compilé.
Ceci signifie qu’il n’y a pas besoin de
compilateur pour commencer à programmer. Un simple éditeur de texte est capable
de tout réalisée et puis exécuté directement en ligne de commande avec la
console. Le Raspberry-pi elle est prête par défaut de tout ce dont nous avons besoin
pour programmer en Python.
Alors notre premier programme qu’on va
réaliser c’est programmer une diode LED de façon a l’allumer puis l’éteindre.
Pour ceci il faut
suivre les étapes suivantes :
·
Aller au répertoire /home/pi et créer
une répertoire qu’on la nomme Travaux_pratiques et dedans un fichier texte
nommé LED.py
·
Ecrire le programme si dessous dedans ( # s’écrit pour les
commentaries)
Import RPi.GPIO as GPIO
# appel au piblioteque GPIO
import time
# appel au timer
GPIO.setmode(GPIO.BOARD)
#l’utilisation de numérotation inclut sur la carte
GPIO.setup(12,GPIO.OUT)
#déclaration de port 12 comme etant sortie
GPIO.output(12,GPIO.HIGH)
# enclenchement en niveau haut de port 12
time.sleep(0.5)
# appel au piblioteque GPIO
import time
# appel au timer
GPIO.setmode(GPIO.BOARD)
#l’utilisation de numérotation inclut sur la carte
GPIO.setup(12,GPIO.OUT)
#déclaration de port 12 comme etant sortie
GPIO.output(12,GPIO.HIGH)
# enclenchement en niveau haut de port 12
time.sleep(0.5)
·
On compte de gauche à droite. La
broche 1 pour l’alimentation 3.3V, broche 2 correspond à l’alimentation 5V. La
masse se trouve sur la broche 6. Les GPIO sont représentées avec les pastilles
vertes. Dans notre code nous avons utilisé les broches 12 corresponde aux GPIO
16.
Prenons
une diode LED, (éventuellement une résistance de 270 ohms) et quelques fils.
Puis réaliser le câblage suivant sur une petite platine de test:
·
Maintenant après avoir tout verifier il nous reste
qu’exécuter le programme et pour ceci il faut revenir au Terminal et taper
cd /home/pi/Travaux_Pratiques pour aller
dans le répertoire qui contient votre programme
sudo python LED.py pour executer le programme
·
Et voila c’est tout on a réalisé
notre objectif.
Si on cherche à éteindre la diode LED il suffit de
changer HIGH par LOW.
Aucun commentaire:
Enregistrer un commentaire