Introduction à Raspberry pi |
||
Noms : | ||
Centre d'intérêt : | CI 2 Instrumentation / Acquisition et restitution de grandeurs physiques | |
Classe : | Terminale Sti2d Sin | |
Id programme : | sin17, sin19, sin22, sin29, sin33, sin36, sin39 | |
Conditions : | 2 élèves , durée 3 heures. | |
Matériel : | - PC | |
Logiciel : | - Proteus - Chrome |
Source ; https://www.raspberrypi.org/app/uploads/2017/05/Raspberry-Pi-3-1-1619x1080.jpg
I. Objectifs
L'objectif du TP est de découvrir :
- Prise en main du RPi (raspberry pi);
- Voir les différents modes connexion;
- Gérer les entrées sortie de la carte.
II. Généralités
Les ordinateurs embarqués sous le système d’exploitation Linux sont massivement présents dans les technologies modernes (transports, multimédia, téléphonie mobile, appareils photos …). L’ordinateur Raspberry PI constitue un support d’apprentissage performant, très bon marché et disposant d’une forte communauté sur le net. Il possède des entrées/sorties puissantes permettant une connexion avec le monde physique par l’intermédiaire de capteurs et d’actionneurs. L’objectif de ce TP est de réaliser une rapide prise en main d’un système embarqué au travers d’un ordinateur Raspberry PI et d’effectuer un tour d’horizon des pratiques de mise en œuvre et de développement. Les connaissances acquises devront permettre la réalisation d’une application embarquée de supervision d’un système matériel simplifié.
Aller sur Wikipédia pour répondre aux questions suivantes :
On dit qu’il s’agit d’un …………………………..Pourquoi ? ……………………………………………………………
Quels sont le type et l’architecture du microprocesseur utilisé ? ………………………………………………………
Citez 2 avantages importants concernant l’emploi de ce module ………………………………………………………
Complétez le tableau suivant en indiquant les différents modèles commercialisés et leurs différences.
|
Arduino Uno |
Esp8266 modèle Esp12s |
Raspberry Pi Modèle 2 |
Raspberry Pi Modèle 3 |
Mémoire vive |
||||
Vitesse d’horloge |
||||
Processeur |
||||
Nombre I/O Logique |
||||
Nombre de sorties Analogique |
||||
Réseau(x) embarqué(s) |
||||
Capacité multitâche |
||||
Tension d’entrée |
||||
Mémoire flash |
||||
USB |
||||
Système d’exploitation |
||||
Environnement de développement intégré (IDE) |
Qu’est ce qu’un SoC ?
Le modèle qui est à votre disposition est un modèle : ……………
De quoi a besoin le module pour fonctionner (à part l’alimentation) ? …………………………………………..
Le module est équipé de Raspbian. De quoi s’agit-il ? Quelle différence avec Windows ?
Complétez le document ci-dessous :
1: | 5: | 9: |
2: | 6: | 10: |
3: | 7: | 11: |
4: | 8: | 12: |
III. Accès au Raspberry pi
3.1. RPi raccordé sur un moniteur via HDM
Pour installer l'OS sur la RPi, vous pouvez suivre les liens suivants (environ 1h d'installation) :
http://www.raspberrypi-france.fr/premiere-utilisation-raspberry-pi/
https://www.raspberrypi.org/downloads/noobs/
Pour ce TP, l'OS est déja installé.
Brancher le RPi :
Clavier, souris, moniteur, câble ethernet et terminer par l'alimentation.
Normalement le RPi devrai démarrer.
Lancer le terminal.
Relever l'adresse ip sur eth0, à l'aide de la commande :
ifconfig
Débrancher le clavier,la souris et le moniteur.
Maintenant, vous allez pouvoir vous connecter à distance sur le RPi.
3.2. Connexion en SSH
Vous allez vous connecter en mode SSH afin de poursuivre la configuration.
Les identifiants par défaut sont :
Login : pi
Mot de passe : raspberry
Question 1 :
Rechercher l’acronyme de SSH. A quoi cela sert-il ? Quel est le numéro de port utilisé ?
Question 2 :
Ouvrir l’application Putty.
Cliquer sur « Translation » et choisir UTF-8.
Ceci permet d’avoir un affichage correct des caractères
accentués.
Cliquer sur « Session ». Noter l’IP du module.
Puis « Open ».
Entrer Login et mot de passe du raspberry.
Question 3 :
Vous devriez obtenir le prompt suivant : pi@raspberrypi ~ $ Que signifient les symboles ~ et $ ?
3.3. Connexion en vnc
Quel est l’acronyme de VNC ?
L’utilisation de la console distante va permettre de configurer le Raspberry pour disposer sur le PC de l’interface graphique complète : il s’agit d’une connexion du bureau à distance.
Voici le principe :
Internet : prise murale
Serveur Client
(tightVNCserver) (VNC Viewer)
Suivez la procédure de configuration du serveur et du client pour installer vnc.
(Configurer le serveur et le client VNC)
1 – Installer le serveur VNC sur le Rasberry :
sudo apt-get install tightvncserver
2- Vérifier s’il fonctionne après l’installation :
tigntvncserver
Résultat : You will require a password to access your desktops.
Password:
Warning: password truncated to the length of 8.
Verify:
Would you like to enter a view-only password (y/n)? n
New 'X' desktop is raspberrypi:1
Creating default startup script /home/pi/.vnc/xstartup
Starting applications specified in /home/pi/.vnc/xstartup
Log file is /home/pi/.vnc/raspberrypi:1.log
3- Installer le client VNC Viewer sur le PC :
sur le serveur FTP de la section, prendre le bon fichier exécutable en 32 bits ou 64 bits selon votre PC.
Lancer l’exécutable.
Mettre l’IP du module
Connexion
IV: Exploitation des entrées et des sorties
Le Raspberry Pi dispose d’un connecteur 40 broches ; certaines broches sont appelées GPIO
Source : https://www.element14.com/community/servlet/JiveServlet/previewBody/73950-102-11-339300/pi3_gpio.png
Question 1 :
Quel est l’acronyme de GPIO ? Donner son rôle.
Un connecteur GPIO peut être configuré pour jouer le rôle d’une entrée (réception d’un signal) ou d’une sortie (émission d’un signal). (C3-3 Réaliser l'intégration logicielle d'un équipement)
4-1 Gestion d’un voyant lumineux
Un connecteur GPIO peut être configuré pour jouer le rôle d’une entrée (réception d’un signal) ou d’une sortie (émission d’un signal). (C3-3 Réaliser l'intégration logicielle d'un équipement)
Question 2 :
Pour commander un voyant, il faut ……………………..un signal. La ligne du port GPIO où sera relié
le voyant, est donc une …………………. .
Question 3 :
Suivre la procédure ci-dessous pour tester les différents programmes.
1- Installation d’une bibliothèque de gestion des entrées/sorties du GPIO : Rpi.GPIO
Mise à jour des paquets : sudo apt-get update
Installation du paquet RPI.GPIO : sudo apt-get install rpi.gpio
2- Réalisation du câblage
3- Ecriture du programme gpio1.py
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM) #Utilisation des numéros de broches du processeur
GPIO.setup(4, GPIO.OUT) #GPIO4 configurée en sortie
while True: # Boucle infinie
GPIO.output(4,1) # Allume la LED
GPIO.cleanup()
Ouvrir l’IDLE Python (sur le bureau) et entrez ce programme (File New Windows). Sauvegardez-le dans votre home dans un répertoire à créer, par exemple : programmes, sous le nom « gpio1.py »
Dans la console, entrer la commande suivante : sudo python gpio1.py. Que constatez-vous ?
Que signifie sudo ? Que signifie python ?
Pour stopper l’exécution du programme, on peut entrer CTRL-C.
Vous allez modifier le programme en plaçant un message qui s’affichera au lancement du programme :
Pour cela, ajouter
print("Allumage du voyant")
avant la ligne while.
Tester.
4- Ecriture du programme gpio2.py
On souhaite faire clignoter le voyant.
Reprenez le programme gpio1.py et enregistrez-le en gpio2.py.
Voici les modifications du programme :
import time
GPIO.output(4,1) # Allume la LED
time.sleep(0.5) # Tempo 0,5s
GPIO.output(4,0) # éteint la LED
time.sleep(0.5) # Tempo 0,5s
Tester.
Conclusion : pour faire clignoter un voyant, on ……………...le voyant pendant un temps, puis on
…………………le voyant pendant un second temps identique ou non.
5- Ecriture du programme gpio3.py
On souhaite faire varier la luminosité du voyant.
Voici le programme :
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT) #GPIO4 configurée en sortie
led = GPIO.PWM(4,50)#fréquence du signal fixée à 50Hz
while True: # Boucle infinie
print(‘rapport cyclique: 10%’)
led.start(10)
time.sleep(2)
print(‘rapport cyclique: 40%’)
led.start(40)
time.sleep(2)
print(‘rapport cyclique: 100%’)
led.start(100)
time.sleep(2)
4-2 Gestion d’un bouton poussoir
Vous allez utiliser votre programme précédent pour détecter un appui sur un bouton poussoir.
Les broches du GPIO du Raspberry Pi peuvent être configurées en entrée. Elles peuvent alors détecter si le niveau présent sur l’entrée est haut ou bas. Configurée en entrée, la broche GPIO est flottante, c’est-à-dire qu’elle n’a pas de niveau de tension défini. Pour garantir le bon fonctionnement de l’entrée, il faudra fixer son niveau avec une résistance de tirage.
1- Réalisation du câblage d’un bouton poussoir
2- Ecriture du programme gpio4.py
On souhaite afficher un message lorsque el bouton poussoir est appuyé.
Voici le programme :
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN) #GPIO17 configurée en entrée
while True: # Boucle infinie
if (GPIO.input(17)) :
print(“Bouton appuyé”)
4-3 Synthèse
Vous allez réutiliser les programmes précédents pour répondre à l’objectif suivant :
Lorsque le bouton poussoir n’est pas appuyé, le voyant est allumé à 20%
Lorsque le bouton est appuyé, le voyant est allumé à 100%
4-4 Complément
Vous avez pu constater que lorsque le programme python est lancé, vous n’avez plus la possibilité d’écrire des commandes dans la console.
Pour cela, vous devez rajouter une esperluette (&) à la fin de la commande de lancement du programme :
sudo python gpio5.py &
On peut remarquer :
[1] xxxx
xxxx étant un nombre correspondant au PID (processus en cours d’exécution).
Cette fois, on peut continuer à entrer des commandes et on ne peut plus arrêter le programme.
Entrer sudo kill xxxx
et le programme s’interrompt.
V. Résumé des commandes indispensables sous Linux
Raspberry Pi est un ordinateur fonctionnant sous le système d’exploitation LINUX‐DEBIAN adapté à la Raspberry Pi sous le nom RASPBIAN, il est indispensable pour le configurer et l’utiliser de connaitre quelques commandes Linux en mode console
‐ Une aide exhaustive pour chaque commande est disponible sous linux par : man nom‐de‐la‐commande
sudo (substitute user do) | Entête donnant les droits de super utilisateur (root) Les programmes PYTHON doivent être lancés avec sudo |
shutdown ‐r now | redémarre le raspberry pi |
shutdown ‐h now | éteind le raspberry pi |
ls | voir le contenu du dossier |
Ls ‐l | voir le contenu du dossier et les droits sur les fichiers |
pwd | afficher le nom du dossier courant |
cd nomdossier | descendre dans l’arborescence |
cd .. | remonter dans l’arborescence |
nano nom_fichier | éditer un fichier |
exit | se déconnecter de la machine |
cp source destination | copier un fichier |
mkdir nom | créer un dossier |
mv source destination | déplacer un fichier/dossier |
mv nom1 nom2 | renommer un fichier |
rm fichier et rm –r dossier | supprime un fichier ou un dossier |
chmod +x nom_du_fichier | Rendre un fichier exécutable |
./nom_du_fichier | Exécuter un fichier |
‐ Pour éviter de taper à chaque fois sudo, passez en mode administrateur : sudo –i
passer en shell administrateur : sudo –s (déconseillé) pour sortir du mode shell : exit
‐ Linux utilise beaucoup les scripts, de petits fichiers de type texte qui permettent l’enchaînement de commandes systèmes. Il existe plusieurs types de scripts systèmes.
Les fichiers BASH sont très utilisés sur Raspberry Pi Exemple :
sudo nano essai
# !/bin/bash indique un fichier de type bash
echo « Bonjour, voici le dossier courant »
ls
ctrl‐x Y
pour enregistrer et quitter. Il suffit de lancer le fichier essai pour l’exécuter.
Exemple d’écriture d’un script en PYTHON :
sudo nano monscript.py
Lancerl’execution d’un script PYTHON
sudo python monscript.py (ctrl‐c pour l’arrêter)
Pour rendre un programme PYTHON exécutable sans avoir à lancer la commande python, le script doit contenir la ligne
#!/usr/bin/python3.2 (ici pour indiquer qu’il s’agit d’un script Python 3.2).
sudo chmod +x monscript.py
L’executer : sudo ./monscript.py
VI. Conclusion
Donner une conclusion à cette activité.
Sources :
http://eduscol.education.fr/sti/sites/eduscol.education.fr.sti/files/ressources/pedagogiques/4346/4346-1-rpi-presentation.pdf
http://www.misfu.com/commandes‐unix.html
http://documents.sn-bretagne.net/Combslaville-Jacquesprevert/systeme-RaspberryPi/TP1%20SEN%20Raspberry%20pi%20rev00.pdf
Puis « Open ».
Entrer Login et mot de passe du raspberry.
Question 3 :
Vous devriez obtenir le prompt suivant : pi@raspberrypi ~ $ Que signifient les symboles ~ et $ ?
/2
/2
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques 4 Electronique Industrielle Embarquée
TP1 SEN Rev00
d’exploitation
Question 4 :
L’utilisation de la console distante va permettre de configurer le Raspberry pour disposer sur le PC de l’interface graphique complète : il s’agit d’une connexion du bureau à distance.
Voici le principe :
Internet : prise murale
Serveur Client
(tightVNCserver) (VNC Viewer)
A l’aide de l’annexe 2, suivez la procédure de configuration du serveur et du client.
VALIDATION : |
/3 |
4: EXPLOITATION DES ENTRÉES/SORTIES
Le Raspberry Pi dispose d’un connecteur 40 broches ; certaines broches sont appelées GPIO.
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques 5 Electronique Industrielle Embarquée
d’exploitation
Question 1 :
Quel est l’acronyme de GPIO ? Donner son rôle.
TP1 SEN Rev00
/2
4-1 Gestion d’un voyant lumineux
Un connecteur GPIO peut être configuré pour jouer le rôle d’une entrée (réception d’un signal) ou d’une sortie (émission d’un signal). (C3-3 Réaliser l'intégration logicielle d'un équipement)
Question 2 : |
/2 |
|
Pour commander un voyant, il faut ……………………..un signal. La ligne du port GPIO où sera relié |
|
le voyant, est donc une …………………. .
Question 3 :
Suivre la procédure en annexe 3 pour tester les différents programmes.
VALIDATION :
4-2 Gestion d’un bouton poussoir
Vous allez utiliser votre programme précédent pour détecter un appui sur un bouton poussoir.
VALIDATION :
|
|
4-3 Synthèse |
|
|
|
|
|
|
|
|
|
Vous allez réutiliser les programmes précédents pour répondre à l’objectif suivant : |
|
|
|||
|
|
||||
|
Lorsque le bouton poussoir n’est pas appuyé, le voyant est allumé à 20% |
/4 |
|
||
|
Lorsque le bouton est appuyé, le voyant est allumé à 100% |
|
|||
|
|
||||
|
|
|
|
|
|
4-4 Complément
Vous avez pu constater que lorsque le programme python est lancé, vous n’avez plus la possibilité d’écrire des commandes dans la console.
Pour cela, vous devez rajouter une esperluette (&) à la fin de la commande de lancement du programme :
-
sudo python gpio5.py &
On peut remarquer : |
[1] xxxx |
|
|
|
|
||
xxxx étant un nombre correspondant au PID (processus en cours d’exécution). |
|
|
|
Cette fois, on peut continuer à entrer des commandes et on ne peut plus arrêter le programme. |
/1 |
|
|
|
|
||
Entrer sudo kill xxxx |
et le programme s’interrompt. |
|
|
|
|
|
|
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques 6 Electronique Industrielle Embarquée
TP1 SEN Rev00
d’exploitation
ANNEXE 1 : VUE D’ENSEMBLE DU RASPBERRY PI
(Compléter le NOM et le RÔLE des éléments désignés)
/5
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques 7 Electronique Industrielle Embarquée
Entrer le mot de passe « prevert »
Traitement & systèmes
TP1 SEN Rev00
d’exploitation
ANNEXE 2 : BUREAU A DISTANCE
(Configurer le serveur et le client VNC)
1 – Installer le serveur VNC sur le Rasberry :
-
sudo apt-get install tightvncserver
2- Vérifier s’il fonctionne après l’installation :
-
tigntvncserver
Résultat : You will require a password to access your desktops.
Password:
Warning: password truncated to the length of 8.
Verify:
Would you like to enter a view-only password (y/n)? n
New 'X' desktop is raspberrypi:1
Creating default startup script /home/pi/.vnc/xstartup
Starting applications specified in /home/pi/.vnc/xstartup
Log file is /home/pi/.vnc/raspberrypi:1.log
3- Installer le client VNC Viewer sur le PC :
-
sur le serveur FTP de la section, prendre le bon fichier exécutable en 32 bits ou 64 bits selon votre PC.
-
Lancer l’exécutable.
-
Mettre l’IP du module
-
Connexion
192.168.5.xxx :1
192.168.5.xxx :5901
http://www.framboise314.fr/prenez-la-main-a-distance-sur-votre-raspberry-pi-avec-vnc/
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques 8 Electronique Industrielle Embarquée
TP1 SEN Rev00
d’exploitation
ANNEXE 3 : TEST DE PROGRAMMES DE GESTION D’UNE SORTIE NUMÉRIQUE
1- Installation d’une bibliothèque de gestion des entrées/sorties du GPIO : Rpi.GPIO
-
Mise à jour des paquets : sudo apt-get update
-
Installation du paquet RPI.GPIO : sudo apt-get install rpi.gpio
2- Réalisation du câblage
3- Ecriture du programme gpio1.py
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM) #Utilisation des numéros de broches du processeur
GPIO.setup(4, GPIO.OUT) #GPIO4 configurée en sortie
while True: # Boucle infinie
GPIO.output(4,1) # Allume la LED
GPIO.cleanup()
Ouvrir l’IDLE Python (sur le bureau) et entrez ce programme (File New Windows). Sauvegardez-le dans votre home dans un répertoire à créer, par exemple : programmes, sous le nom « gpio1.py »
-
Dans la console, entrer la commande suivante : sudo python gpio1.py. Que constatez-vous ?
Que signifie sudo ? Que signifie python ?
/5
Pour stopper l’exécution du programme, on peut entrer CTRL-C.
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques 9 Electronique Industrielle Embarquée
TP1 SEN Rev00
d’exploitation
Vous allez modifier le programme en plaçant un message qui s’affichera au lancement du programme :
-
Pour cela, ajouter
print("Allumage du voyant")
avant la ligne while.
Tester.
4- Ecriture du programme gpio2.py
On souhaite faire clignoter le voyant.
Reprenez le programme gpio1.py et enregistrez-le en gpio2.py.
Voici les modifications du programme :
-
import time
/2
GPIO.output(4,1)
# Allume la
LED
time.sleep(0.5)
# Tempo 0,5s
GPIO.output(4,0) # éteint la
LED
time.sleep(0.5)
# Tempo 0,5s
Tester.
Conclusion : pour faire clignoter un voyant, on ……………...le voyant pendant un temps, puis on
…………………le voyant pendant un second temps identique ou non.
5- Ecriture du programme gpio3.py
On souhaite faire varier la luminosité du voyant.
Voici le programme :
import RPi.GPIO as GPIO
import time
-
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT) #GPIO4 configurée en sortie
/2
led =
GPIO.PWM(4,50)#fréquence du signal fixée à 50Hz
while
True:
# Boucle infinie
print(‘rapport cyclique: 10%’)
led.start(10)
time.sleep(2)
print(‘rapport cyclique: 40%’)
led.start(40)
time.sleep(2)
print(‘rapport cyclique: 100%’)
led.start(100)
time.sleep(2)
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques 10 Electronique Industrielle Embarquée
TP1 SEN Rev00
d’exploitation
ANNEXE 4 : TEST DU PROGRAMME DE GESTION D’UNE ENTRÉE NUMÉRIQUE
Les broches du GPIO du Raspberry Pi peuvent être configurées en entrée. Elles peuvent alors détecter si le niveau présent sur l’entrée est haut ou bas. Configurée en entrée, la broche GPIO est flottante, c’est-à-dire qu’elle n’a pas de niveau de tension défini. Pour garantir le bon fonctionnement de l’entrée, il faudra fixer son niveau avec une résistance de tirage.
1- Réalisation du câblage d’un bouton poussoir
/4
2- Ecriture du programme gpio4.py
On souhaite afficher un message lorsque el bouton poussoir est appuyé.
Voici le programme :
-
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
/2
GPIO.setup(17, GPIO.IN) #GPIO17 configurée en entrée
while True:
# Boucle infinie
if (GPIO.input(17)) :
print(“Bouton appuyé”)
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèm