Vous êtes sur la page 1sur 4

 

Institut Supérieur des Technologies Médicales de Tunis 
Département Génie électrique 
 
 

Linux Embarqué
TP3
Script de commande du GPIO

 
 
Introduction

La Raspberry Pi est une carte électronique considérée comme un mini‐ordinateur avec de plus faibles performances qu’un 
ordinateur moderne mais qui est de très petite taille. Par conséquent, il est préférable d’installer un système optimisé 
pour la Raspberry Pi. Raspbian a été créé dans cette optique, et il est donc tout particulièrement adapté à la Raspberry 
Pi. En tant que distribution dérivée de Debian, il répond à la majeure partie de la très vaste documentation de Debian. 
Enfin, Raspbian est sans doute la distribution la plus utilisée pour les Raspberry Pi ®, et bénéficie donc d’une communauté 
largement active. 
La Raspberry Pi dispose d'un connecteur 26‐broches d'Entrée/Sortie d'utilisation générale (appelée GPIO acronyme de 
"General  Purpose  Input/Output")  qui  transporte  des  signaux  et  des  bus  (de  données).  L’accès au GPIO peut se faire
directement en ligne de commande ou en utilisant des bibliothèques ou des interfaces développées dans ce but.

Objectif du TP

Dans ce TP, il s’agit de reprendre les concepts de base associés au développement  de scripts bash pour contrôler des 
périphériques extérieurs connectés sur l’interface GPIO d’une carte Raspberry PI. L’étudiant abordera le contrôle du GPIO 
par l’intermédiaire de l’interface sysfs et l’utilisation des commandes de la bibliothèque Wiring Pi. 

MANIPULATION 1 : ECRIRE SUR GPIO PAR L’INTERFACE SYSFS 
1. En utilisant les commandes d’accès aux fichiers de contrôle du GPIO, allumer et éteigndre successivement 
une LED connectée au GPIO 24.  
2. Ecrire et tester le script led_clignote.sh pour automatiser le clignotement, une fois par seconde.  
#!/bin/bash 
clear 
cd /sys/class/gpio 
if [ ‐d "gpio24" ]; then 
   echo "gpio24 existe dejà" 
else 
   echo "gpio24 : Création" 
   echo 24 > export 
fi 
cd gpio24/ 
echo out > direction 
echo 0 > value 
x=1 
while [ $x ‐gt 0 ] 
do 
   echo 1 > value 
   echo "LED allumée" 
   sleep 1 
   echo 0 > value 
   echo "LED éteinte" 
   sleep 1 
done 
 

MANIPULATION 2 : LIRE/ECRIRE SUR GPIO PAR L’INTERFACE SYSFS 

9   |TP Linux Embarqué, GBM2‐SEE, 2020/2021
 
1. Ecrire un script lit_switch.sh pour automatiser la lecture de l’état du bouton poussoir connecté au GPIO 21 
et afficher le résultat à l’écran à chaque changement d’état. 

$ ./lit_switch.sh  

gpio21 existe dejà  

Switch relâché  

Switch appuyé  

Switch relâché  

Switch appuyé 

2. Ecrire un script shell qui allume la LED tant que le bouton poussoir est appuyé 
3. Modifier ce script pour avoir le comportement suivant  : Lorsqu’on appuie  sur le bouton poussoir, la LED 
clignote une fois par seconde (~0,5 seconde allumée, ~0,5 seconde éteinte). Elle clignote tant qu’on appuie 
sur le bouton poussoir. Elle s’éteint quand on relâche le bouton poussoir. 

MANIPULATION 3 : UTILISATION DE LA BIBLIOTHEQUE WIRINGPI 
1. Adapter le script led_clignote.sh (question 2 manipulation 1) pour utiliser les commandes de la bibliothèque 
Wiring PI à la place des accès sysfs. 
2. Ecrire un script qui récupère un entier entre 0 et 9 en paramètre et l’affiche sur un afficheur 7 segments 
connecté au RPI comme suit : 

 
3. Améliorer ce script pour développer une application « tirage au sort » : l’afficheur déroule à des pas de 
500ms les valeurs de 1 à 9. A l’appui sur le bouton poussoir, l’affichage devient figer sur une valeur tirée 
au hasard. Le défilement reprend dès que le bouton est relâché. 
 
 

10  |TP Linux Embarqué, GBM2‐SEE, 2020/2021
 
EXERCICE D’APPLICATION 

Ecrire un programme qui demande de saisir un nombre compris entre 1 et 10. La valeur saisie est vérifiée, et refusée si 
elle est hors plage. La LED clignote un nombre de fois égal à la valeur saisie. 

11  |TP Linux Embarqué, GBM2‐SEE, 2020/2021

Vous aimerez peut-être aussi