rasp132
Bac STI2D

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

Raspberry pi 3

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 :

 

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

GPIO du raspberry
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

Traitement & systèmes

 

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

Traitement & systèmes

 

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

Traitement & systèmes

 

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 :

 

 

2- Vérifier s’il fonctionne après l’installation :

 

 

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 :

 

 

 

 

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

Traitement & systèmes

 

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

 

 

 

 

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

Traitement & systèmes

 

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

Traitement & systèmes

 

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

 

Affichages : 1056