Académique Documents
Professionnel Documents
Culture Documents
Ce cours vise à vous fournir l'essentiel des informations nécessaires afin de vous permettre de
créer vos propres projets, tout en exploitant au mieux le port GPIO.
Le port GPIO (General Purpose Input/Output, ou Entrées/Sorties pour un usage générique) mettra
à votre disposition de nombreuses entrées-sorties, une alimentation, un port SPI, un port I2C, et
un port série.
Après une rapide présentation du Raspberry Pi, de ses différentes versions existantes, et des
caractéristiques liées, nous nous pencherons sur le fonctionnement et la programmation du port
GPIO.
Enfin, nous finirons par une mise en pratique de la théorie que nous aurons vue précédemment.
II - Le Raspberry Pi
Qu’est-ce que la Raspberry Pi ?
La Raspberry Pi est ce que l’on appelle un nano-ordinateur monocarte. Plus simplement, on
pourrait résumer la Raspberry Pi en disant que c’est un ordinateur de la taille d’une carte de crédit
qui coûte environ 35€.
Très abordable en termes de prix, consommant peut d’énergie et disposant de connecteurs adaptés
à électronique, la Raspberry Pi est donc très adaptée pour apprendre la programmation, faire de
l’électronique, de la domotique, etc.
Ubuntu Mate
Le très populaire Ubuntu a lui aussi décidé de développer un
environnement spécialement pour les nano-ordinateurs tel que le
Raspberry Pi. Cela a donné naissance à Ubuntu Mate.
Il est un peu plus lourd que Raspbian mais s’adresse principalement aux utilisateurs déjà familiers
avec Ubuntu.
Windows 10 IoT Core
Windows 10 IoT Core est développé par Microsoft visant les
utilisateurs de Raspberry Pi mais il faut savoir qu’il est très
différent d’un Windows 10 classique.
Les programmeurs pourront concevoir des programmes et applications PC via Windows Azure et
Visual Studio et les exécuter directement sur Raspberry Pi.
Il faut avouer que Microsoft a fait du bon travail sur Windows 10 IoT Core et qu’il se révèle très
utile pour les développeurs.
Cliquer sur choisissez l’OS, puis sur utiliser image personnalisée et ouvrir le chemin de système
d’exploitation Raspbian sur votre machine.
Cliquer ensuite sur choisissez stockage et choisir votre carte mémoire et en fin cliquer sur écrire.
COMMENT BIEN CONFIGURER RASPBIAN ?
Une fois que Raspbian est installé sur votre Raspberry Pi, il nous reste quelques paramètres à
configurer avant de pouvoir l’utiliser pleinement, comme par exemple la langue de l’OS ou la
langue du clavier.
sudo raspi-config
C’est ici que va se passer une grande partie de la configuration de Raspbian. Voyons tout de suite
ce qu’il est possible de configurer via le raspi-config :
Dans les menus, rendez-vous dans : « Localisation Options » / « Change keyboard layout »
Dans le choix du clavier, choisissez « Français » avec une disposition « Par défaut » et validez.
Dans la nouvelle fenêtre, descendez jusqu’à la ligne « en_GB.UTF-8 UTF-8 » et appuyez sur la
touche Espace.
Descendez ensuite jusqu’à la ligne « fr_FR.UTF-8 UTF-8 » et appuyez sur la touche Espace.
Validez pour ouvrir la prochaine fenêtre où vous allez choisir « fr_FR.UTF-8 » et valider à
nouveau.
Patientez le temps que tout se configure normalement et votre Raspbian sera alors en Français. Si
votre menu de configuration est encore en anglais, ne vous inquiétez pas, c’est tout à fait normal.
« sudo » permet d’exécuter la commande comme administrateur, nécessaire car la mise à jour va
modifier des fichiers du système.
« update » est une option de apt-get permettant de mettre à jour tous les paquets installés.
sudo apt-get -y dist-upgrade
sudo reboot
À quoi cela sert de se connecter en SSH à son Raspberry Pi ? En une phrase, se connecter en SSH
va vous permettre d’accéder à distance, depuis un autre ordinateur, à votre Raspberry Pi.
Cela peut être très pratique avec le Raspberry Pi car vous pouvez alors vous passer de l’écran, du
clavier et de la souris. La connexion SSH est très utilisée pour les projets d’objets connectés
utilisants un Raspberry Pi.
Pour cela, allez dans le menu suivant : Préférences > Raspberry Pi Configuration > Interfaces et
passez SSH sur « Enabled ». Confirmez en cliquant sur OK.
Pensez à activer le SSH dans les paramètres de Raspbian !
Bien entendu, votre Raspberry Pi doit être connectée à internet mais que vous soyez connecté en
wi-fi ou via un câble ethernet n’a pas vraiment d’importance.
Sur Windows, vous allez avoir besoin d’un logiciel pour vous connecter en SSH. Le meilleur
logiciel et celui recommandé par la fondation Raspberry Pi est PuTTY.
Une fois PuTTY téléchargé et installé, vous pouvez entrer l’adresse IP que vous avez récupéré sur
Raspbian dans le champ « Host Name (or IP address). Vérifiez bien que le champ « Connection
Type » est bien « SSH ».
Vous pouvez alors cliquer sur « Open » et une fenêtre de sécurité « Security Alert » apparaît,
cliquez simplement sur « Yes ».
Une fenêtre de ligne de commande devrait alors apparaître vous demandant « login as : ». Entrez
« pi » puis appuyez sur la touche entrée. Entrez ensuite votre mot de passe et validez
Comment programmer en Python sur Raspbian ?
Pour écrire votre premier programme, rendez-vous dans le menu de Raspbian et allez dans :
Programming > Thonny Python IDE
Une fenêtre s’ouvre et c’est ici que vous pourrez écrire votre code en Python.
« Hello World »
Si c’est le cas, tout fonctionne parfaitement et vous êtes prêt à coder vos premiers programmes en
Python sur Raspberry Pi.
Utilisation de GPIO
Une fonctionnalité puissante du Raspberry Pi est la rangée de broches GPIO (entrée / sortie à
usage général) le long du bord supérieur de la carte. Un en-tête GPIO à 40 broches se trouve sur
N'importe laquelle des broches GPIO peut être désignée (dans le logiciel) comme une broche
0 et 1 sont présentes sur la carte (broches physiques 27 et 28) mais sont réservées à une utilisation
Tensions
Deux broches 5V et deux broches 3V3 sont présentes sur la carte, ainsi qu'un certain nombre de
broches de masse (0V), qui ne sont pas configurables. Les broches restantes sont toutes des
broches 3V3 à usage général, ce qui signifie que les sorties sont réglées sur 3V3 et les entrées sont
tolérantes à 3V3.
Les sorties
Une broche GPIO désignée comme broche de sortie peut être réglée sur haut (3V3) ou bas (0V).
Contributions
Une broche GPIO désignée comme broche d'entrée peut être lue comme haute (3V3) ou basse
(0V). Ceci est facilité par l'utilisation de résistances internes de pull-up ou de pull-down. Les
broches GPIO2 et GPIO3 ont des résistances de rappel fixes, mais pour les autres broches, cela
Suite
En plus des périphériques d'entrée et de sortie simples, les broches GPIO peuvent être utilisées
avec une variété de fonctions alternatives, certaines sont disponibles sur toutes les broches,
SPI :
SPI0: MOSI (GPIO10); MISO (GPIO9); SCLK (GPIO11); CE0 (GPIO8), CE1 (GPIO7)
SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK (GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE2
(GPIO16)
I2C :
En série :
TX (GPIO14); RX (GPIO15)
Brochage GPIO :
Il est important de savoir quelle broche est laquelle. Certaines personnes utilisent des tiquettes à
exécutant le brochage de la commande. Cet outil est fourni par la bibliothèque GPIO Zero Python,
qui est installée par défaut sur l'image de bureau Raspberry Pi OS, mais pas sur Raspberry Pi OS
Lite
RPi.GPIO
Le module RPi.GPIO est installé par défaut sur les versions récentes de Raspbian Linux. Pour
De cette façon, vous pouvez faire référence à toutes les fonctions du module en utilisant le nom
RPi.GPIO prend en charge la référence aux broches GPIO en utilisant les numéros de broches
physiques sur le connecteur GPIO ou en utilisant les noms de canaux BCM du SOC Broadcom
auxquels les broches sont connectées. Par exemple, la broche 24 est le canal BCM GPIO8. Pour
GPIO.setmode(GPIO.BOARD)
GPIO.setmode(GPIO.BCM)
GPIO.setup(canal, GPIO.IN)
ou
GPIO.setup(canal, GPIO.OUT)
Où canal est le numéro de canal basé sur le système de numérotation que vous avez spécifié
GPIO.input(canal)
Où canal est le numéro de canal utilisé dans la configuration. Il renverra une valeur de 0,
GPIO.LOW ou False ( sont équivalents) s'il est à l’état bas et 1, GPIO.HIGH ou True s'il était à un
niveau haut.
Pour définir l'état de sortie d'une broche GPIO, appelez :
GPIO.output(canal, état)
Où canal est le numéro de canal et l'état est le niveau de sortie souhaité : soit 0, GPIO.LOW, ou
False pour un niveau logique bas ou 1, GPIO.HIGH, ou True pour un niveau logique haut.
N.B : Lorsque vous avez terminé avec la bibliothèque, il est recommandé de libérer toutes les
ressources utilisées et de ramener tous les canaux à la valeur par défaut sûre d'être des entrées.
GPIO.cleanup()
Voici un exemple autonome très simple qui active et désactive une broche de sortie pendant 200
millisecondes, dix fois. Il signale également le niveau sur la broche d'entrée 31.
led = 18
switch = 31
GPIO.setmode(GPIO.BOARD)
GPIO.setup(led, GPIO.OUT)
GPIO.setup(switch, GPIO.IN)
for i in range(10):
GPIO.output(led, GPIO.HIGH)
time.sleep(0.2)
GPIO.output(led, GPIO.LOW)
time.sleep(0.2)
print('Switch status = ', GPIO.input(switch))
GPIO.cleanup()
Si la broche 18 est connectée à une LED et la broche 31 à un interrupteur, nous pouvons voir la
servomoteur ou lorsque vous devez obtenir une sortie analogique avec des moyens numériques.
Les broches GPIO du Raspberry pi nous donnent soit 3,3 V (lorsqu'elles sont réglées sur HAUT)
ou 0 V (lorsqu'elles sont sur BAS) et la sortie est un signal d'onde carrée. Donc, si nous voulons
atténuer une LED, nous ne pouvons pas obtenir la tension entre 0 et 3,3 V à partir de la broche
GPIO mais nous pouvons changer le temps ON et OFF du signal. Si nous changeons le temps ON
TON (On Time): C'est le temps aux quelle le signal est élevé.
TOFF (Off Time) : C'est le temps aux quelle le signal est faible.
Cycle de service (Duty cycle) : il s'agit du pourcentage de temps pendant lequel le signal était haut
pendant la période.
Duty Cycle =Turn ON time/ (Turn ON time + Turn OFF time)
Ainsi, la tension de sortie moyenne sera de 50% de la tension fournis par Raspberry.
C'est le cas pendant une seconde et nous pouvons voir que la LED est éteinte pendant une demi-
désactivation est passée de «1 par seconde » à «50 par seconde». L'œil humain ne peut pas
capturer cette fréquence. Pour un œil normal, la LED sera vue comme brillante avec la moitié de
Raspberry pi et PWM
La bibliothèque «RPI.GPIO» pour Raspberry pi a une fonction que nous pouvons utiliser pour
PWM. Pour cela, nous devrons d'abord créer un objet dans lequel nous passerons les paramètres
de la broche GPIO et la fréquence que nous voulons utiliser. Dans la commande ci-dessous, nous
avons créé un objet de nom «pwm», puis appelé la fonction à partir de la bibliothèque.
Ensuite, nous devons démarrer le PWM. Pour démarrer le PWM, nous devrons spécifier le duty
pwm.start (50)
Si vous souhaitez modifier le duty cycle, vous pouvez utiliser la commande ci-dessous.
pwm.ChangeDutyCycle (80)
pwm.ChangeFrequency (1000)
pwm.stop ()
for x in range(100,0,-1):
pwm.ChangeDutyCycle(x)
sleep(0.01)