MODULE PYTHON POUR
LA MANIPULATION DE
LA RPI
Imene Sghaier
2017-2018
LE MODULE RPI.GPIO
Le module RPi.GPIO est installé par défaut par
Raspbian. N’importe quel script RPi.GPIO doit
etre exécuté en tant que root.
Imene Sghaier-Programmation Python
IMPORTATION DU MODULE
Pour importer le module RPi.GPIO :
import RPi.GPIO as GPIO
Pour importer le module et vérifier si c’est fait
avec succès
try:
import RPi.GPIO as GPIO
except RuntimeError:
print("Error importing RPi.GPIO! Use sudo”)
Imene Sghaier-Programmation Python
NUMÉROTATION DE PINS
Il y a deux méthodes de numérotation de pins selon le
module Rpi.GPIO:
La première utilisant la numérotation de BOARD (celle de
la carte: numerotation physique).
La seconde méthode de numérotation est nommée BCM.
Elle refère à la numérotation selon le SOC Broacom. Vous
utiliserez un diagram de mapping des pins. Votre code
risque de ne pas toujours fonctionner en changeant la
version de votre Rpi.
Pour specifier quel mode vous utiliserez
GPIO.setmode(GPIO.BOARD) #ou bien
GPIO.setmode(GPIO.BCM)
Pour detecter quel mode de numérotation est utilisé
vous pouvez faire
mode = GPIO.getmode()
=>le mode sera GPIO.BOARD, GPIO.BCM ou None 4
Imene Sghaier-Programmation Python
5
Imene Sghaier-Programmation Python
NUMÉROTATION DE PINS
Pour utiliser la numérotation Wiring PI
http://raspi.tv/2013/how-to-use-wiringpi2-for-
python-on-the-raspberry-pi-in-raspbian
Imene Sghaier-Programmation Python
LES WARNINGS
Il est possible que vous ayez plus qu’un seul cript
ou circuit qui s’éxécute sur les pins GPIO de votre
RPi. Comme résultat si le package RPi.GPIO
detecte qu’une broche a été configurée pour
quelque chose autre que celle par défaut (input),
vous aurez un warning quand vous essayez de
configurer votre script. Pour désactiver ce type de
warnings on fait :
GPIO.setwarnings(False)
Imene Sghaier-Programmation Python
CONFIGURATION DU SENS D’UTILISATION
D’UNE BROCHE
Vous aurez besoin de faire un set up pour
chaque broche vous désirez utiliser en
entrée (input) ou en sortie (output). Pour
le faire:
GPIO.setup(numero, GPIO.IN)
Pour configurer une broche en sortie :
GPIO.setup(channel, GPIO.OUT)
On peut configurer plus d’une broche à la
fois et ce en utilisant par exemple une
liste ou un tuple:
pin_list = [11,12]
GPIO.setup(pin_list, GPIO.OUT) 8
Imene Sghaier-Programmation Python
LECTURE ET ÉCRITURE SUR UNE BROCHE GPIO
Input
Pour lire la valeur d’une pin GPIO on fait:
GPIO.input(num_pin)
Ceci renvoie soit 0 / GPIO.LOW / False ou 1 /
GPIO.HIGH / True.
Output
Pour écrire sur une pin GPIO on fait:
GPIO.output(num_pin, etat)
etat peut être égal à 0 / GPIO.LOW / False ou 1 /
GPIO.HIGH / True.
Imene Sghaier-Programmation Python
PWM
Pour créer une instance PWM :
p = GPIO.PWM(pin, frequency)
Pour commencer PWM:
p.start(dc)
# avec dc est le rapport cyclique (0.0 <= dc <= 100.0)
Pour changer la fréquence
p.ChangeFrequency(freq)
#avec freq est la nouvelle frequence en Hz
Pour changer le nouveau rapport cyclique:
p.ChangeDutyCycle(dc)
# avec 0.0 <= dc <= 100.0
Pour ctopper PWM:
10
p.stop()
Imene Sghaier-Programmation Python