Raspberry utiliser les GPIO avec Python

Installation des paquets nécessaires sur le Raspberry pour utiliser les GPIO dans un script Python.

Toujours pour continuer avec le Python sur le Raspberry, voici un article qui devrait intéressé ceux qui veulent utiliser les port GPIO de notre framboise avec le langage Python.

Toujours dans le but de pouvoir faire des scripts efficaces utilisant les caractéristiques des Raspberry, il peut être utile (voire indispensable pour beaucoup de projet domotique ou robotique) de lire ou d’écrire sur les GPIO du Raspberry.

GPIO disponible sur le Raspberry

Ici je me contenterai d’aborder les Raspberry Pi B+, Raspberry Pi 2, Raspberry Pi Zero et Raspberry Pi 3, tous les trois disposent de 40 broches pour interagir avec le milieu extérieur.

Le type de ports disponibles

Pour rappel, ces cartes disposent de 40 broches ayant des caractéristiques différentes :

  • GPIO classique
  • interface I2C
  • interface SPI
  • certaines broches peuvent être utilisée en PWM (pulse width modulation par exemple pour des moteurs)
  • d’autre en PPM (pulse position modulation pour les servomoteurs)
  • une communication par UART
  • alimentation 3,3v et 5V, attention cependant au courant max délivrable si vous ne voulez pas griller votre Pi

Une broche ne peut pas fournir plus de 17mA et sa totalité ne peut pas excéder 50mA.

Les broche GPIO ne tolère en entrée qu’une tension maximale de 3,3V et en sortie, elles fournissent un tension max de 3,3V, il faudra donc lui ajouter un convertisseur de niveau logique de ce type.

Schéma des broches du Raspberry

Pour le détail des broches :

Broches du Raspberry (version 40 pins)
Broches du Raspberry (version 40 pins)

Les broches PWM sont sur :

  • GPIO 18
  • GPIO 21

Pour vos tests, vous pouvez utiliser un adaptateur qui simplifiera vos montages, disponible ici.

La tension maximale de 3,3v sur le GPIO en sortie n’est pas systématiquement génante et n’oblige pas l’utilisation d’un convertisseur, beaucoup de composant comprennent un 3,3V comme étant un niveau logique haut (voir les documentations des composants).

Matériels nécessaires

De base, pour installer les bibliothèques, vous n’aurez besoin que d’un Raspberry (listés au début). Pour tester le fonctionnement, vous allez avoir besoin d’une résistance (270Ω) et d’une led.

Installation des paquets

Dans un terminal saisir : sudo apt-get install python-rpi.gpio  pour des script avec python 2.x et pour python 3, saisir : sudo apt-get install python3-rpi.gpio , je vous conseille de mettre les deux :

sudo apt-get install python-rpi.gpio python3-rpi.gpio

Vos bibliothèques sont maintenant installées.

Test de la bibliothèque

Nous allons procéder à un petit test, le but faire est de faire clignoter une led un certain nombre de fois pendant un certain temps (tout sera rentré par l’utilisateur).

Avec votre éditeur, créer un fichier test_gpio_led.py et y écrire :

import RPi.GPIO as GPIO
import time

pin = 7

GPIO.setmode(GPIO.BOARD) ## On utilise le numero de la pin
GPIO.setup(pin, GPIO.OUT) ## Initialisation de la broche comme sortie

##Definition de la fonction de clignotement
def Blink(numTimes,speed):
        for i in range(0,numTimes):## Nombre de fois a clignoter
                print "Iteration " + str(i+1)
                GPIO.output(pin,True) ##On allume la led
                time.sleep(speed)## on attend
                GPIO.output(pin,False)## On eteint la led
                time.sleep(speed)## on attend
        print "Done" ## Fin de la boucle
        GPIO.cleanup()

## On demande combien de clignotement et combien de temps
iterations = raw_input("Saisir le nombre de fois a faire clignoter: ")
speed = raw_input("La duree de chaque clignotement(secondes): ")

## On demarre la fonction
Blink(int(iterations),float(speed))

Pour lancer le script : python ./test_gpio_led.py  (en étant dans le dossier contenant le script)

ce script ne fonctionne pas en python 3, dans python 3, print est devenu une fonction

Voila pour une première utilisation basique de la bibliothèque python pour utiliser vos port GPIO de votre merveilleuse framboise.

N’hésitez pas à commenter, partager

SOURCE

Laisser un commentaire