UV3 EIE : PROGRAMMATION TP
Chapitre 3 : Utilisation du GPIO avec Raspberry 3
UV3
TP : UTILISATION DU GPIO
BAC PRO SN-RISC – LP ALEXANDRE BÉRARD
AVEC RASPBERRY 3
Classe de Seconde : 3ième trimestre Date : …………………
Noms : …………………………………………………
Prénoms : ………………………………………………...
Binôme n° : ……… Note :
UV3 chap3 TP : Raspberry utilisation du GPIO Page 1 sur 10
MISE EN SITUATION :
La section SN du lycée souhaite s’inscrire au concours « combat de robots » organisé par
BAC PRO SN-RISC – LP ALEXANDRE BÉRARD
la région Rhône Alpes. La conception de notre robot se fera autour du Raspberry et d’une
carte de puissance Arduino. Les deux cartes peuvent communiquer par l’intermédiaire
du GPIO, interface d’entrée/sortie du RPI 3.
Nous allons, dans un 1er temps nous familiariser avec cette interface et apprendre à
converser avec elle en utilisant le langage Python, inclus en natif dans le Raspberry.
FONCTIONS ACTIVITÉS COMPÉTENCES
C1-1 C2-1 C3-1 C7-1
A1-1
F1 Fonction préparation des opérations et des C8-1
équipements avant intervention sur site A1-2 C1-1 C3-2
d’installation
A1-4 C4-4
C3-2 Réaliser l’intégration matérielle ou logicielle d’un équipement.
C4-4 Installer, configurer les éléments du système et vérifier la conformité du
fonctionnement
RÉSULTATS DE L’ACTIVITÉ ATTENDUS :
- Les équipements fonctionnent conformément au projet d’installation et/ou au
cahier des charges et/ou à la commande du client ou du donneur d’ordre.
- Un compte-rendu d’intégration logiciel est renseigné.
CAHIER DES CHARGES :
Vous devez :
- Charger la distribution Stretch et les logiciels win32diskimager, sd formater,
- Formater la carte SD pour qu’elle reçoive la distribution Stretch,
- Configurer le RPI pour que le clavier Azerty soit reconnu.
- Installer les paquets tightvncserver, Apache, PHP, MySQL.
- Faire clignoter une DEL branchée sur le GPIO en utilisant un programme en langage Python.
« Quand on ferme les yeux sur ce qu’on voit, et qu’on n’écoute pas ce qu’on entend, on a tort de croire ce qu’on croit »
UV3 chap3 TP : Raspberry utilisation du GPIO Page 2 sur 10
C3.2 INSTALLATION ET PARAMÉTRAGE DU RASPBERRY PI.
À faire uniquement si la distribution Buster n’a pas été installée sur la carte SD.
- Installer la distribution Buster sur la carte SD
Faire valider par le professeur
BAC PRO SN-RISC – LP ALEXANDRE BÉRARD
- Paramétrer le RPI suivant le cahier des charges suivant :
- Utiliser tout l’espace de la carte SD,
- Avoir le clavier en français,
- Utiliser la langue française,
- Activer le protocole ssh,
- Démarrer en mode console.
- Faire une capture d'écran et l'insérer dans votre rapport.
- Changer vos paramètres IP pour correspondre au cahier des charges suivant :
- Adresse IP statique sous la forme 192.168.1.2XY
- Masque [Link]
XY correspond à votre
- Passerelle [Link] n° de poste
- Dns [Link]
- Faire une capture d'écran et l'insérer dans votre rapport.
- Installer tightvncserver.
- Vérifier que vous pouvez accéder à distance à votre RPI avec Putty en ligne de commande et
avec ultravnc en mode graphique. Faire une capture d'écran et l'insérer dans votre rapport.
Faire valider par le professeur
- Faire une mise à jour du Raspbian puis du firmware :
sudo apt-get update && apt-get upgrade -y
sudo rpi-update
- Faire une capture d'écran et l'insérer dans votre rapport.
Faire valider par le professeur
UV3 chap3 TP : Raspberry utilisation du GPIO Page 3 sur 10
Faire remplir par le professeur
C3-2 Réaliser l’intégration logicielle d’un équipement
Critères de réussite :
Réussite Réussite À Non Non
BAC PRO SN-RISC – LP ALEXANDRE BÉRARD
Critères Absent
Totale Partielle renforcer Acquis Évaluable
Installation Buster OK
Config RPI OK
Accès à distance OK
MAJ OK
C4.4 INSTALLER, CONFIGURER ET VÉRIFIER LA CONFORMITÉ DU FONCTIONNEMENT
Mise en place du serveur apache2, de php7 et MySQL :
- Une fois la mise à jour terminée, installer :
Apache2 (un serveur HTTP permettant de publier du contenu Html sur le web)
sudo apt-get install -t stretch apache2
PHP7 (langage serveur permettant le traitement dynamique d’informations)
sudo apt-get install -t stretch php7.0 php7.0-curl php7.0-gd php7.0-fpm
php7.0-cli php7.0-opcache php7.0-json php7.0-mbstring php7.0-xml php7.0-zip
php7.0-mysql
sudo apt-get install -t stretch libapache2-mod-php7.0
Et MySQL (une base de données)
sudo apt-get install -t stretch mysql-server mysql-client
- Tester le serveur web apache dans un navigateur internet, taper l’adresse IP du RPI. Vous
devriez arriver sur la page du serveur. Faire une capture d'écran et l'insérer dans votre rapport.
- Installer également le paquet phpMyAdmin, script php permettant de gérer facilement la base de
données MySQL depuis l’adresse : [Link]
sudo apt-get install -t stretch phpmyadmin
- Tester la base de données depuis un navigateur internet. Le login par défaut est root et le mot
de passe est celui que vous avez renseigné lorsque vous avez installé MySQL.
- Faire une capture d'écran et l'insérer dans votre rapport.
Faire valider par le professeur
- Éteindre le Raspberry (sudo shutdown -h now)
UV3 chap3 TP : Raspberry utilisation du GPIO Page 4 sur 10
Utilisation du GPIO :
- Donner l’acronyme de GPIO.
- Nous allons utiliser le port GPIO du RPI pour commander l’allumage d’une Diode Électro
Luminescente (DEL ou LED) en utilisant le langage python. Pour cela, vous allez avoir besoin du
matériel suivant :
- Un RPI,
- Une LED,
- Une résistance R1 de 330Ω,
BAC PRO SN-RISC – LP ALEXANDRE BÉRARD
- Une plaque Lab,
- Un cobbler Sparkfun ou autre marque,
- Des fils de connexion.
1- Le montage :
Pour nous faciliter l’utilisation du GPIO, nous allons déporter le connecteur vers une plaque
Lab. Il faut pour cela utiliser un cobbler (de marque Sparkfun). Faire le montage suivant
(prendre des photos et les insérer dans votre rapport) :
Attention : les broches du connecteur sur le RPI et sur le cobbler sont fragiles.
Procéder avec précaution lorsque vous insérez et la nappe dans le GPIO et le
cobbler sur la plaque Lab.
UV3 chap3 TP : Raspberry utilisation du GPIO Page 5 sur 10
L’objectif de ce TP est de faire clignoter une LED qui sera commandée par un signal logique
rectangulaire. Lorsque ce signal sera au niveau logique haut, la LED sera allumée et lorsque le
signal sera au niveau logique bas, la LED sera éteinte.
Il faudra donc s’assurer qu’une des broches du GPIO du RPI soit configurée en sortie et qu’elle
délivre un signal logique rectangulaire.
On désire réaliser le câblage ci-dessous :
BAC PRO SN-RISC – LP ALEXANDRE BÉRARD
GPIO du
Raspberry
R1
Remarque : La LED est composée de deux
pattes : la cathode (-) et l’anode (+) :
Anode (+) Cathode (-)
- En vous aidant de l’annexe n°1, désigner les numéros de broches du GPIO où connecter la
patte gauche de la résistance R1 et la cathode de la diode (sur le connecteur GPIO du
Raspberry, la broche n°1 est en haut à gauche).
R1 = n° de broche ……
Diode = n° de broche ……..
- En déduire, pour ces deux broches, leur nom éventuel, leur correspondance en notation
BCM (GPIO), WiringPi et la désignation sur le Tcobbler.
UV3 chap3 TP : Raspberry utilisation du GPIO Page 6 sur 10
Vous l’aurez peut-être remarqué, mais la résistance et la diode ne seront pas reliés directement
au GPIO du RPI mais au cobbler fixé sur la plaque Lab.
- Sur le cobbler ci-dessous, entourer les deux broches à utiliser et y dessiner le schéma de
câblage de la diode et de la résistance que vous allez brancher :
BAC PRO SN-RISC – LP ALEXANDRE BÉRARD
- Vous trouverez en annexe n°2 le schéma d’implantation du cobbler SPARKFUN (à titre
indicatif).
- Sur la plaque Lab, tous les points sur une même colonne sont reliés entre eux. Aucuns points
d’une même ligne sont reliés entre eux. Vous trouverez ci-dessous le câblage de la diode et
de la résistance sur une plaque Lab :
Ligne Colonne
- Réaliser le câblage.
Vous ne devez en aucun mettre sous tension le Raspberry avant d’avoir
fait valider votre câblage au professeur.
Faire valider par le professeur
UV3 chap3 TP : Raspberry utilisation du GPIO Page 7 sur 10
2- Le programme :
Comme nous l’avons précisé précédemment, le programme sera écrit en python. Votre
distribution Stretch possède en natif python.
- Redémarrer votre RPI
- Lancer VNC Viewver (sudo tightvncserver)
BAC PRO SN-RISC – LP ALEXANDRE BÉRARD
- Une fois sur l’interface graphique, ouvrir le logiciel Python 3 :
Python est un langage interprété contrairement à de nombreux autres langages, le C notamment,
qui sont des langages compilés.
Dans un langage compilé, on écrit un programme et lorsqu’on veut le tester on doit le compiler
c’est à dire qu’on le traduit en langage machine. Lorsque cette opération est terminée, alors on
peut l’exécuter.
Dans un langage interprété, chaque ligne de programme est traduite au fur et à mesure en
langage machine. On peut donc le tester au fil de l’eau (en temps réel).
- Saisir à côté du prompt (>>>) la ligne suivante pour tester :
>>> print (‘bonjour’)
>>>2+3
Si on veut exécuter plusieurs instructions à la suite et de façon répétitive, il va donc falloir créer
un fichier dans lequel on placera la suite des instructions à exécuter. Il faudra ensuite demander
à l’interpréteur de Python d’exécuter le fichier.
- Nous allons écrire notre premier programme en Python. Aller dans file puis new file.
Cliquer sur Save et nommer votre fichier « faire_clignoter_del » dans le répertoire home/pi.
- Faire une capture d'écran et l'insérer dans votre rapport.
UV3 chap3 TP : Raspberry utilisation du GPIO Page 8 sur 10
- Recopier les lignes suivantes dans votre fichier :
BAC PRO SN-RISC – LP ALEXANDRE BÉRARD
- Faire une capture d'écran et l'insérer dans votre rapport.
Faire valider par le professeur
3- Le test :
- Exécuter votre programme en allant dans run et run Module (F5).
- Calculer :
Le temps pendant lequel la diode est allumée :
Le temps pendant lequel la diode est éteinte :
Le nombre de fois que la diode s’éclaire :
On désire maintenant faire clignoter cette diode 10 fois de suite et en utilisant une autre broche
du GPIO; le n° de broche 35.
- Donner la correspondance entre la broche 35 et son équivalent en désignation GPIO et
cobbler.
- Refaire le câblage pour correspondre au nouveau cahier des charges.
Faire valider par le professeur
UV3 chap3 TP : Raspberry utilisation du GPIO Page 9 sur 10
- Modifier votre fichier pour correspondre au nouveau cahier des charges.
Faire vérifier votre nouveau fichier avant de l’exécuter.
- Faire une capture d'écran et l'insérer dans votre rapport.
Faire valider par le professeur
BAC PRO SN-RISC – LP ALEXANDRE BÉRARD
- Exécuter votre fichier et vérifier que la LED qui clignote 10 fois avant de s’éteindre.
Faire valider par le professeur
- Éteindre proprement le Raspberry.
- Enlever délicatement le cobbler de la plaque Lab et la nappe du RPI.
- Ranger votre matériel.
.
Faire remplir par le professeur
C4-4 Installer, configurer les éléments du système et vérifier la conformité du fonctionnement
Critères de réussite :
Réussite Réussite À Non Non
Critères Absent
Totale Partielle renforcer Acquis Évaluable
Installation de Apache, PHP,
MYSQL et PhpMyAdmin
Lien symbolique OK
Montage SPARKFUN OK
N° broches OK
Câblage plaque lab OK
Programme : Python OK
Test programme OK
Fichier modifié OK
Nouveau test clignotex10 OK
UV3 chap3 TP : Raspberry utilisation du GPIO Page 10 sur 10