Le Raspberry Pi et les GPIO en Python

Un Raspberry Pi 3 (Raspberry Pi Foundation)

Allez, il est temps de parler un peu plus du Raspberry Pi sur ce blog. Il faut dire que je suis plus orienté soft (logiciel) et que parler Scratch ou Python n’a rien de spécifique au Raspberry Pi. Cependant, le Raspberry Pi offre une possibilité en plus par rapport à un ordinateur classique, c’est de pouvoir être connecté à du matériel avec cette barrette de connecteurs, les GPIO. Grâce à eux, on va pouvoir utiliser le Raspberry Pi de manière similaire à l’Arduino pour contrôler de l’électronique.

Ici, je vais commencer par vous présenter cette barrette et son usage en reproduisant avec un Raspberry Pi le Hello World de l’Arduino. L’exercice va consister à allumer ou éteindre une diode électroluminescente (LED). L’avantage du Raspberry Pi, c’est qu’on a le choix de la techno. Pour être plus précis, « du moment qu’il existe une bibliothèque de fonctions ». Et c’est le cas pour le langage Python.

Matériel et méthode

Coté matériel, à part le Raspberry Pi, il nous faut une carte de type Breadboard pour y fixer les composants, une LED, d’une résistance de 330 Ω et évidemment des câbles. Pour vous les procurer, vous pouvez choisir un kit même dédié à l’Arduino (par exemple, celui-ci). Ces kits proposent pour peu cher suffisamment de composants pour s’amuser. Pour ce type de montage, vous pouvez aussi choisir une platine d’expérimentation complète qui revient à pas cher.

Les connecteurs du Raspberry Pi ont chacun une fonction bien précise. Pour savoir lequel sert à quoi, il n’y a pas 36.000 solutions, il faut se référer au schéma suivant (issu du site officiel). N’hésitez pas à imprimer cette image et à la conserver en référence.

Disposition des connecteurs GPIO du Raspberry Pi (Raspberry Pi Foundation)

Dans le cas du contrôle d’une LED, nous utiliserons un connecteur de type GPIO pour envoyer du courant et, évidemment, la masse (Ground).

Le montage

Le schéma de branchement, assez simple, est le suivant. Le connecteur GPIO utilisé est identifié comme étant le 17.

Schéma de montage du Raspberry Pi et d’une LED.

Allumer la LED avec Python

Le Raspberry Pi est un ordinateur faisant fonctionner un système d’exploitation complet. On peut donc utiliser son langage favori. Python étant le plus accessible et, vous allez voir, très bien intégré, c’est celui que je vais utiliser ici.

La très bonne intégration vient de l’existence d’une bibliothèque dédiée aux GPIO. Il s’agit de gpiozero et elle va bien nous faciliter les choses. Celle-ci a été créée pour le Raspberry Pi et est disponible sur le système Raspbian sans que vous n’ayez rien à faire. Vous pouvez donc saisir le code suivant sans vous soucier de dépendances.

import gpiozero
import time

led = gpiozero.LED(17)

for i in range(10):
    led.on()
    time.sleep(1)
    led.off()
    time.sleep(1)

Quelques explications.

Les deux premières lignes importent les dépendances, c’est à dire les fonctions qui ne sont pas disponibles de base dans le langage Python.

La ligne 4 déclare une variable représentant le GPIO. La lib gpiozero propose de manipuler les connecteurs GPIO sous forme d’une donnée représentant le composant réel. Il s’agit donc d’objets selon le paradigme du même nom. Ici, il s’agit donc d’un objet de type LED. Pour créer cette donnée, il faut fournir un paramètre qui est simplement le connecteur GPIO utilisé.

Un objet LED est un output device, c’est à dire un composant qui émettra un signal. Cet objet possède deux méthodes : on() qui permet d’activer le composant et off() qui permet de désactiver le composant. Ces méthodes sont utilisées dans la boucle à partir de la ligne 6. À 10 reprises, nous activons le composant pendant une seconde avant de le désactiver pendant une seconde.

Si vous exécutez ce code avec ce montage, la LED s’allumera et s’éteindra 10 fois avec des attentes d’une seconde.

Voilà, magique. Bon, c’est peut-être un peu exagéré, mais vous pouvez voir comment il peut être facile de communiquer avec un composant électronique avec un Raspberry Pi et un langage de haut niveau. Facile et peut-être simpliste, mais cet article n’est qu’une introductions aux GPIO avec le Raspberry Pi. En attendant les suivants, si vous voulez aller plus loin, le site de la fondation propose pas mal d’exemples de code en Python.

À propos de... Darko Stankovski

iT guy, photographe et papa 3.0, je vous fais partager mon expérience et découvertes dans ces domaines. Vous pouvez me suivre sur les liens ci-dessous.

Vous aimerez aussi...

Laisser un commentaire

En naviguant sur Dad 3.0, vous acceptez l’utilisation de cookies pour une navigation optimale et nous permettre de réaliser des statistiques de visites. Plus d'informations

Le blog Dad 3.0 utilise les cookies pour vous permettre une navigation optimale et nous permettre de réaliser des statistiques de visite. Dad 3.0 affichant des publicités, celles-si utilisent également des cookies pour un ciblage publicitaire. En continuant la navigation sur Dad 3.0, vous acceptez le dépôt et la lecture de cookies.

Fermer