Vous êtes sur la page 1sur 18

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR

ET DE LA RECHERCHE SCIENTIFIQUE
Institut Supérieur Polytechnique Privé
*******

Compte rendu TP
Linux Embarqué

Elaboré par :

Mohamed KAHBOU
Samer Bacha
Skander Maalaoui
Houssem Naghmouchi

Encadré par

Khaled HAOUET

Année universitaire
2022 - 2023

1
Table des matières

I Introduction 4

II Description de l’ordinateur embarqué 4


1. Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Les connecteurs d’extension . . . . . . . . . . . . . . . . . . . . . . . 5
3. Raspbian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

IIICompilation sur cible 6

IV Prise en main à distance 8


1. Protocole SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2. commande SCP...................................................................................................10

V Cross-compilation 11

VI Utilisation des GPIO 11

VII Utilisation du bus I2C 13

VIII Node Red et MQTT 16

2
Table des figures
1 Raspberry Pi 2 Model B . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 GPIO et connecteurs de la Raspberry Pi 2 Model B . . . . . . . . . 5
3 Le système d’exploitation Raspbian . . . . . . . . . . . . . . . . . . . 6
4 Création du fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5 Écriture du code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6 Exécution du code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
7 Le fichier exécutable . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
8 Compilation du fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
9 Activation du protocole SSH . . . . . . . . . . . . . . . . . . . . . . .
9
10 Adresse IP de la carte Raspberry Pi..................................................................10
11 Établir la connexion sur l’autre ordinateur via la commande ssh . 10
12 Commande SCP
10
13 Cross-compilation...............................................................................................11
14 Etapes à suivre pour manipuler les broches GPIO.......................................12
15 Led GPIO2 allumé....................................................................................................12
16 Led GPIO2 éteinte...................................................................................................13
17 Activation du bus I2C.............................................................................................14
18 Affichage d’un message LCD via le bus I2C..................................................15
19 Interface Graphique réalisé sur Node-Red.....................................................16
20 Dashboard affichant la valeur de température...........................................17
21 Interface Graphique réalisé sur Node-Red.....................................................17
22 Dashboard qui permet de lire les 3 valeurs...................................................18
23 Code permettant de lire les 3 valeurs..............................................................18

3
I. Introduction
Les ordinateurs embarqués sous le système d’exploitation Linux sont massive-
ment 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 permet-
tant 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’effec-
tuer un tour d’horizon des pratiques de mise en œuvre et de développement.
Les connaissances acquises devront permettre la mise en œuvre d’un objet
connecté simplifié.

1. Présentation
II. Description de l’ordinateur embarqué
Raspberry Pi est un petit ordinateur sous le système d’exploitation Linux sur
carte SD destiné à des applications d’informatique embarquée. Le cœur de
l’ordinateur est un FPGA (Broadcom 2836) intégrant un processeur quad-core
ARM Cortex A7 cadencé à 900MHz, 1Go de RAM et de nombreux périphé-
riques. Raspberry Pi peut être directement connecté à une IHM classique,
souris/clavier/ecran HDMI ou vidéo composite, cependant comme tout or-
dinateur Linux, Raspberry Pi peut intégrer ses propres outils de
développement et une IHM reposant sur SSH contrôlable depuis un autre
ordinateur par Ether- net ou WIFI. Le connecteur d’extension supporte les
entrées/sorties parallèles ainsi que la plupart des bus de communication.
C’est un support particulière- ment économique et puissant qui peut être
facilement mis en œuvre dans
de petits systèmes nécessitant un accès au monde physique par des cap-
teurs/actionneurs disposants d’interfaces numériques.

F IGURE 1 – Raspberry Pi 2 Model B

4
2. Les connecteurs d’extension
Le connecteur d’extension de la carte Raspberry PI est utilisé pour raccor-
der des périphériques de communication (UART, I2C, SPI, ...) ou TOR (Tout Ou
Rien). Les broches peuvent avoir des fonctions différentes suivant qu’elles
sont activées en tant que GPIO (Global Purpose Input Output), périphérique
de communication ou sorties PWM (Pulse Width Modulation).

F IGURE 2 – GPIO et connecteurs de la Raspberry Pi 2 Model B

5
3. Raspbian
Raspbian est un système d’exploitation libre basé sur la distribution
GNU/Linux Debian, et optimisé pour le plus petit ordinateur du monde, la
Raspberry Pi.
Raspbian ne fournit pas simplement un système d’exploitation basique, il est
aussi livré avec plus de 35 000 paquets, c’est-à-dire des logiciels pré-
compilés livrés dans un format optimisé, pour une installation facile sur votre
Raspberry Pi via les gestionnaires de paquets. La Raspberry Pi est une
framboise mer- veilleuse, mais elle reste néanmoins dotée d’une puissance
inférieure à celle d’un ordinateur moderne. Par conséquent, il est préférable
d’installer un sys- tème optimisé pour la Raspberry. Raspbian a été créé
dans cette optique, et il est donc tout particulièrement adapté à la
Raspberry. Par ailleurs, en tant que distribution dérivée de Debian, il répond
à la majeure partie de la très vaste documentation de Debian.

F IGURE 3 – Le système d’exploitation Raspbian

On souhaite créer un ficher d’extension .cpp dans une répertoire personnelle


III. leCompilation
comme montre la figuresur cibleun code en C++ comme le montre la fi-
4, écrire
gure puis l’exécuter dans l’environnement Linux de Raspberry Pi comme le
montre la figure 6.

6
F IGURE 4 – Création du fichier

F IGURE 5 – Écriture du code

F IGURE 6 – Exécution du code

Après l’exécution du fichier, un fichier exécutable est crée automatiquement


comme le montre la figure 7 et on exécute le code comme le montre la fi-
gure 8

7
F IGURE 7 – Le fichier exécutable

F IGURE 8 – Compilation du fichier

1. Protocole SSH
IV. Prise en main à distance
Pour pouvoir utiliser le protocole SSH, il faut l’activer comme le montre la
figure 9.

8
F IGURE 9 – Activation du protocole SSH

SSH vous permet de se connecter à un Raspberry Pi à partir d’une fenêtre de


terminal sur un autre ordinateur. Pour cela, il faut déterminer l’adresse IP de
la Raspberry Pi comme le montre la figure 10 puis se connecter sur l’autre
ordi- nateur via la commande ssh comme le montre la figure 11.

9
F IGURE 10 – Adresse IP de la carte Raspberry
Pi

F IGURE 11 – Établir la connexion sur l’autre ordinateur via la commande


ssh

2. commande SCP
La commande scp permet de copier un fichier ou un répertoire (-r) d’un client
vers un serveur ou d’un serveur vers un client. Depuis votre hôte linux, on fait
une copie du le fichier 1.text présent sur la Raspberry PI dans le dossier
person- nel comme le montre la figure 12

F IGURE 12 – Commande SCP


10
V. Cross-compilation
Un compilateur croisé est un compilateur capable de créer du code exécu-
table pour une plate-forme autre que celle sur laquelle le compilateur s’exé-
cute. Aprés l’instlation des tools nécessaires pour effectuer la compilation croisé,
on crée un fichier sous linux qui permet d’afficher bonjour, puis on l’exécute
sous Raspberry Pi comme le montre la figure 13.

F IGURE 13 – Cross-compilation

Pour accéder au pins GPIO, on manipule des fichiers.


VI.suivre
Il faut Utilisation
les étapesdes GPIOpour pouvoir lire et écrire à partir d’une
suivantes
pine GPIO :
1. Accéder à /sys/class/gpio
2. On définit la pine avec laquelle on va travailler à travers la commande
echo 2 > export, dans cet exemple, on utilisera la pine 2
3. Accéder ainisi à /sys/class/gpio/gpio2
4. La broche doit être configurée en sortie pour écrire, pour cela on utilise
la commande echo out > direction
5. Pour écrire 1, exemple allumer une led, on utilise la commande echo 1
> value
6. Pour écrire 0, exemple éteindre une led, on utilise la commande echo 0
> value
7. dans le cas ou on souhaite lire, on défint la broche en entrée avec la
commande echo in > direction

11
8. Pour lire la valeur d’entrée, on utilise la commande cat value
Tous ses étapes sont résumes dans la figure 14 Comme exemple, on a
allumé et éteindre une led branché dans la pine 2, figure 15 et 16.

F IGURE 14 – Etapes à suivre pour manipuler les broches GPIO

F IGURE 15 – Led GPIO2 allumé

12
F IGURE 16 – Led GPIO2 éteinte

Pour activer le bus I2C :


VII. Utilisation du bus I2C
1. On utilise la commande sudo raspi-config
2. Elle permet d’activer le bus I2C comme le montre la figure 17
On souhaite maintenant afficher un message sur un écran LCD qui est bran-
ché sur la carte Raspberry Pi via le bus I2C, le résultat est affiché dans la
figure 18.

13
F IGURE 17 – Activation du bus I2C

14
F IGURE 18 – Affichage d’un message LCD via le bus I2C

15
VIII. Node Red et MQTT
Node-Red est un outil puissant pour construire des applications de l’Internet
des Objets (IoT) en mettant l’accent sur la simplification de la programmation
qui se fait grâce à des blocs de code prédéfinis, appelés «nodes» pour effec-
tuer des tâches. Il utilise une approche de programmation visuelle qui permet
aux développeurs de connecter les blocs de code ensemble.
MQTT est un protocole de connectivité Machine-to-Machine (M2M) de l’In-
ternet des Objets. Il a été conçu pour le transport de messages par publica-
tion/souscription et est extrêmement léger.

On souhaite lire et afficher une valeur de températeur via le brocker MQTT,


pour cela :
1. On installe un client MQTT. On utilisera Mosquitto, un broker MQTT open
source. On éxécute la commande suivante :
sudo apt-get install mosquitto mosquitto-clients
2. On réalise un interface graphique comme le montre la figure 19

F IGURE 19 – Interface Graphique réalisé sur Node-Red

On trouve ainsi le résultat suivant affiché sur le Dashboard comme le montre


la figure 20

16
F IGURE 20 – Dashboard affichant la valeur de température

On souhaite dans un deuxième temps lire et afficher les valeurs d’un capteur
qui fournit à la fois la valeur de température, d’humidité et pression. Pour ce
fait, on crée une interface graphique donné par la figure 21, on implémente
le code qui permet de lire les 3 valeurs sur le même topic comme le montre la
figure 23 et on l’affiche sur le dashboard comme le montre la figure 22.

F IGURE 21 – Interface Graphique réalisé sur Node-Red

17
F IGURE 22 – Dashboard qui permet de lire les 3 valeurs

F IGURE 23 – Code permettant de lire les 3 valeurs

18

Vous aimerez peut-être aussi