nsi – informatique embarquée et objets connectés
TRANSCRIPT
NSI – Informatique embarquée et objets connectésRéférentiel :
• Architectures matérielles et systèmes d’exploitation
Contenu Capacités attendus Commentaires
Périphériques d’entrée et de sortie Identifier le rôle des capteurs et actionneurs. Les activités peuvent être développées sur des objets connectés, des systèmes embarqués ou robots.
• Langages et programmation
Contenu Capacités attendus Commentaires
Diversité et unité des langages de programmation
Interface Homme-Machine (IHM)
Repérer, dans un nouveau langage de programmation les traits communs et les traits particuliers à ce langage.
Réaliser par programmation uneIHM répondant à un cahier descharges donné.
Les manières dont un même programme simple s’écrit dans différents langages sont comparées.
Utilisation de bibliothèques Utiliser la documentation d’une bibliothèque. Aucune connaissance exhaustive d’une bibliothèque particulière n’est exigible.
Table des matières1 Présentation de quelques objets..........................................................................................................................22 Les systèmes informatiques embarqués..............................................................................................................2
2.1 Présentation..................................................................................................................................................22.2 Représentation fonctionnelle d'un objet......................................................................................................32.3 La carte programmable.................................................................................................................................42.4 Les capteurs..................................................................................................................................................42.5 Les actionneurs.............................................................................................................................................62.6 La communication.........................................................................................................................................6
3 Programmation des systèmes embarquée...........................................................................................................73.1 Les langages de programmation...................................................................................................................73.2 Les étapes du développement......................................................................................................................73.3 Programmation par diagramme d'états-transitions.....................................................................................7
4 IHM.....................................................................................................................................................................115 Les objets connectés..........................................................................................................................................11
5.1 Présentation................................................................................................................................................115.2 Complexité : l'empilement technologique.................................................................................................125.3 Protocole MQTT..........................................................................................................................................12
Cours_info_embarquee.odt Page 1/12
1 Présentation de quelques objets
2 Les systèmes informatiques embarqués
2.1 Présentation
Un système informatique embarqué est un ensemble de composants (cartes programmables, capteurs, actionneurs et moyens de communication) intégrés à un objet (maison, voiture, vélo, robot, drone, enceinte, montre …). C'est le système informatique embarqué qui permet de piloter les objets à distance ou de manière autonome.
Cours_info_embarquee.odt Page 2/12
2.2 Représentation fonctionnelle d'un objet
Lorsque les objets sont complexes onreprésente le système à l'aide d'un schémafonctionnel.Le schéma peut comporter des niveauxhiérarchiques.
Les flèches représentent :
• de la matière ;• de l'énergie ;• des contraintes ;• des informations (booléen, valeur,
fichier …).
Une fonction peut être :• matérielle (mécanique ou
électronique) ;• logicielle.
On peut donc distinguer deux parties au sein des systèmes :• l'une agissant sur les flux de données appelées chaîne d'information ;• l'autre agissant sur le flux de matière et d'énergie appelée chaîne d'énergie.
Cours_info_embarquee.odt Page 3/12
2.3 La carte programmable
Une carte programmable intègre :- un microcontrôleur (microprocesseur + mémoire + périphériques E/S) ;- des liaisons vers les capteurs (bouton poussoir, température, localisation …) ;- des liaisons vers les actionneurs (moteur, lumière, afficheur, chauffage …) ;- des liaisons pour la communication vers l'extérieur (Wifi, Bluetooth, usb, série, Zigbee, Z-Wave …) ;- des liaisons pour l'alimentation.
Exemples de cartes :
Carte Arduino Carte Raspberry (micro-ordinateur avec un OS)
Carte ESP32 Carte Raspberry Zéro (micro-ordinateur avec un OS)
2.4 Les capteurs
Les capteurs sont des composants qui convertissent une gradeur physique en une information numérique exploitable par un programme : bouton poussoir , mesure de distance, température, localisation, lumière , pression atmosphérique, accélération, mouvement …Les capteurs sont reliés aux entrées de la carte programmable.
Cours_info_embarquee.odt Page 4/12
Remarque :
Lorsqu'on appuie ou relâche un bouton, il se produit des micro-coupures que l'on appelle rebonds.
Les diagrammes ci-dessous montrent que du point de vue électrique c'est comme si on appuyait plusieurs fois assez rapidement entre 10 ms et 20 ms.
Dans certains programmes il faudra ajouter l'instruction delay(20) ou wait(20) pour attendre la stabilisation du signal et éviter la prise en compte des rebonds. C'est le cas par exemple si l'on doit compter le nombre de foisque l'on appuie sur un bouton poussoir.
Cours_info_embarquee.odt Page 5/12
2.5 Les actionneurs
Les actionneurs font le contraire des capteurs. Leur rôle est de transformer une information dans le programme en une grandeur physique avec suffisamment d'énergie : LED, buzzer, haut parleur, moteur, afficheur, chauffage ...Les actionneurs sont reliés aux sorties de la carte programmable.
LED rouge Servomoteur Buzzer
2.6 La communication
On distingue deux types de communications :• entre le système embarqué et l'extérieur (smartphone, ordinateur, internet ...) ;• entre les composants du systèmes embarqué.
Protocoles pour la communication vers l'extérieur :• Bluetooth ;• WIFI ;• Ethernet ;• Bus série.
Protocoles de communication entre les composants :• I2C (entre circuits électroniques) ;• Bus série (rs232, ISP …, entre cartes électroniques)• Zigbee, Z-Wave (en domotique, liaisons sans fil entre objets) ;• CAN dans les voitures ;• ...
Cours_info_embarquee.odt Page 6/12
3 Programmation des systèmes embarquée
3.1 Les langages de programmation
Le langage de programmation dépend de la carte utilisé et des contraintes physiques.• Le langage C/C++ est privilégié pour les systèmes avec une forte contrainte de temps de réaction
(contrôle, asservissement …) ;• Java et python sont très utilisés avec les objets connectés.
3.2 Les étapes du développement
Exemple de liaison entre le PC et la carte :
Liaison PC – Carte Arduino Liaison PC – Carte ESP32
3.3 Programmation par diagramme d'états-transitions
Pour avoir une vue globale du fonctionnement on utilise une représentation schématique. Il existe différentes représentations que l'on choisit en fonction du domaine d'application et du type de programmation.
Nous allons aborder une représentation simple : le diagramme d'états-transitions.
Exemple 1 :
Allumer éteindre une LED avec deux boutons (effet mémoire).
Cours_info_embarquee.odt Page 7/12
Écriture et mise point
à partir d'un logiciel (IDE)
Téléversementdu programme
dans la mémoire de la carte
Connexion à la carte (par fils ou par ondes)
Observation et test de l'objet
Programmation : classique Programmation : diagramme d'états-transitions
Description avec un algorithme :
Si bouton1 = 1 alors allumer ledRougeSi bouton2 = 1 alors éteindre ledRouge
Description avec un diagramme d'états-transitions :
Programme Arduinoint bouton1 = 2;int bouton2 = 3;int ledRouge = 13;
void setup(){ pinMode(bouton1, INPUT); pinMode(bouton2, INPUT); pinMode(ledRouge, OUTPUT);}
void loop(){ if (digitalRead(bouton1) == HIGH) { // Allumer digitalWrite(ledRouge, HIGH); } if (digitalRead(bouton2) == HIGH) { // Éteindre digitalWrite(ledRouge, LOW); }}
Programme Arduinoint bouton1 = 2;int bouton2 = 3;int ledRouge = 13;int etat = 0;
void setup(){ pinMode(bouton1, INPUT); pinMode(bouton2, INPUT); pinMode(ledRouge, OUTPUT); Serial.begin(9600); // Moniteur à 9600 bauds}
void loop(){ // Gestion des transitions if ((etat == 0) && (digitalRead(bouton1) == HIGH)) { etat = 1; } if (etat == 1) && (digitalRead(bouton2) == HIGH)) { etat = 0; } // Gestion des états if (etat == 0) { // Eteindre digitalWrite(ledRouge, LOW); } if (etat == 1) { // Allumer digitalWrite(ledRouge, HIGH); } Serial.println(etat);}
Cours_info_embarquee.odt Page 8/12
Exemple 2
Nous allons réaliser un chenillard avec trois LED.
Câblage de la carte
Diagramme d'états-transitions
Cours_info_embarquee.odt Page 9/12
État 0----
LED1 = 0LED2 = 0LED3 = 0
Init
État 1----
LED1 = 1LED3 = 0
BP1
BP2
État 2----
LED2 = 1LED1 = 0
État 3----
LED3 = 1LED2 = 0
BP2
BP2
BP2
BP2
BP2
Programme Arduino avec un switch/case
int BP1 = 2;int BP2 = 3;int LED1 = 11;int LED2 = 12;int LED3 = 13;int etat = 0;
void setup(){ pinMode(BP1, INPUT); pinMode(BP2, INPUT); pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); Serial.begin(9600); // Moniteur à 9600 bauds}
void loop(){ switch (etat) { case 0: // Action digitalWrite(LED1, LOW); digitalWrite(LED2, LOW); digitalWrite(LED3, LOW); // Transition if (digitalRead(BP1) == HIGH) {etat = 1;} break; case 1: // Action digitalWrite(LED3, LOW); digitalWrite(LED1, HIGH); delay(1000); // Transition if (digitalRead(BP2) == HIGH) {etat = 0;} else {etat = 2;} break; case 2: // Action digitalWrite(LED1, LOW); digitalWrite(LED2, HIGH); delay(1000); // Transition if (digitalRead(BP2) == HIGH) {etat = 0;} else {etat = 3;} break; case 3: // Action digitalWrite(LED2, LOW); digitalWrite(LED3, HIGH); delay(1000);
Cours_info_embarquee.odt Page 10/12
// Transition if (digitalRead(BP2) == HIGH) {etat = 0;} else {etat = 1;} break; default: etat = 0; break;} Serial.println(etat);}
4 IHM
Les interfaces homme-machine ou IHM (interface personne-machine ou IPM, human-machine interfaces ou HMI) sont les moyens et outils mis en œuvre afin qu'un humain puisse contrôler et communiquer avec une machine.
Exemples : Écran, manette, commande vocale, casque de réalité virtuelle ...
5 Les objets connectés
5.1 Présentation
Lorsque les objets communiquent à travers un réseau entre eux ou avec des ordinateurs, des tablettes ou encore des téléphones on parle d'objets connectés. Les communications peuvent se faire sans fil (Wifi et Bluetooth mais aussi Zigbee, Z-Wave ...) et par câble avec le réseau internet.
L'Internet des objets ou IoT (Internet of Things) est l'interconnexion des objets à travers le réseau internet.
Cours_info_embarquee.odt Page 11/12
5.2 Complexité : l'empilement technologique
5.3 Protocole MQTT
MQTT (Message Queuing Telemetry Transport) est un protocole de messagerie publication- souscription (publish-subscribe) basé sur le protocole TCP/IP. Depuis novembre 2014, MQTT est devenue un standard international pour la communication entre machines (M2M, machine to machine) et les objets (IoT, Internet Of things).
De nombreuses bibliothèques existent :• sur ordinateur (Linux, Windows et Mac) ;• sur tablette et smartphone ;• pour les cartes (Arduino, ESP32, Raspberry …) ;• pour les objets (capteurs de température …).
MQTT et plus adapté aux objets que HTTP :• consomme 11 fois moins pour envoyer un message ;• consomme 170 fois moins pour recevoir un message ;• est 93 fois plus rapide que le protocole HTTP.
Le principe :• un client (capteur) a pour rôle la publication
(publish), il envoie des données ;• un client (actionneur ou écran de visualisation) a
pour rôle la souscription (subscribe), il reçoitdes données ;
• un serveur appelé Broker, gère lacommunication et le stockage des données.
On peut spécifier une qualité de service QoS (Quality of Service, qualité de service) :• QoS0 : Le message envoyé n’est pas stocké par le Broker. Il n’y a pas d’accusé de réception. Le message
sera perdu en cas d’arrêt du serveur ou du client. C’est le mode par défaut ;• QoS1. Le message sera livré au moins une fois. Le client renvoie le message jusqu’à ce que le broker
envoi en retour un accusé de réception.• QoS2. Le broker sauvegarde le message et le transmettra jusqu’à ce qu’il soit reçu par tous les
souscripteurs connectés.Mosquitto est une des implémentations open source du broker MQTT.
Cours_info_embarquee.odt Page 12/12