6. Informatique embarquée et objets connectés

Par DENIS NOWAKOWSKI, publié le jeudi 11 février 2021 16:55 - Mis à jour le vendredi 2 juin 2023 08:23

1. Pour commencer

2. Les systèmes embarqués

 

Exemple : Les voitures autonomes

3. Les robots.

4. Les interfaces homme-machine.

 

5. TP

 

1. TP Partie I- Micro-controleur et programmation

Dans ce TP, nous allons balayer l'ensemble des fonctionnalités de la carte microbit sous MicroPython en les illustrant par des exemples très simple.

Activite-Microbit_1.pdf

2. TP Partie II- Interface Homme Machine

Notre IHM consistera en une fenêtre permettant l'acquisition de données provenant de la carte micro:bit et permettant également de transmettre des informations à la carte.

Activite-Microbit_2.pdf

3. Autre projet IHM. Réaliser un compteur de personnes

L'objectif de ce projet est de réaliser un compteur de personne à l'entrée d'une salle de spectacle. Cette salle contient au maximum 120 personnes. Pour des raisons de sécurité, on doit s'assurer de ne pas laisser entrer plus de personnes que le nombre autorisé.

Nous allons donc réaliser un compteur de personnes à l'aide de la carte micro:bit. Ce projet en apparence banale est en réalité bien plus riche qu'il n'y paraît comme vous allez le constater !

Mise en oeuvre matérielle

Dans ce projet, nous utiliserons

un capteur : les boutons de la carte micro:bit

un actionneur : l'écran de 25 LED

Première version

diagramme fonctionnel

Voici la manière dont le projet va être implémenté

 

L'algorithme est donc le suivant :

Sa traduction en langage Python est immédiate :

Au travail !

  1. Flashez ce programme sur la carte et vérifiez son bon fonctionnement.
  2. A présent, modifiez ce programme afin qu'un appui sur le *bouton B remette le compteur à 0.
  3. Pour terminer modifiez le programme de manière à ce qu'il détecte lorsque le nombre maximum de 120 personnes est atteint. Il affichera alors à l'écran un smiley triste.

Seconde version connectée !

Nous allons maintenant entrer dans l'univers des objets connectés. En effet, notre salle de spectacle possède plusieurs entrées. Il faut donc que les personnes enregistrées à chaque entrée soient totalisées sur un dispositif unique afin de vérifier que la jauge totale n'est pas dépassée.

Pour cela, nous allons envisager

  • Plusieurs cartes émetteur pour compter les personnes : une pour chaque entrée.
  • Une carte maître centralise le nombre total d'entrées.
  • Les cartes vont communiquer entre-elles via liaison radio. Elles seront donc connectées.

Définir un protocole de communication

Nous devons imaginer des règles communes de communication entre la ou les cartes émettrices et la carte maître. Commençons par quelque chose de très simple : Le module radio permet d'envoyer un texte (chaine de caractères) d'une carte à l'autre. Décidons donc d'un protocole très basique : l'envoi du texte "A" par une carte émettrice provoque sur la carte maitre l'incrémentation du nombre de spectateur. On peut le schématiser ainsi :

 

Algorithmes

Nous allons commencer par décrire les algorithmes sur les deux cartes. Ceux-ci sont très simples puisque nous avons choisi un protocole de communication rudimentaire.

Programmes en Python

Voici les programmes python correspondants : C'est la traduction basique des algorithmes. Pour la saisie des programmes vous devrez procéder par groupes de 4 : deux élèves prendront en charge la carte émettrice, deux élèves prendront en charge la carte maître. Nous utiliserons donc 10 cartes pour 20 élèves.

Explications

Les programmes sont assez simples et vous possédez les bases pour les comprendre dans l'ensemble.

Nous allons toutefois décrire le fonctionnement du module radio :

  • Il faut commencer par importer le module radio, celui-ci ne faisant pas partie de Python standard.
  • On configure celui-ci en paramétrant un groupe (ici 1). Toutes les cartes dans un même groupes peuvent communiquer. Si chaque groupe d'élèves choisissent le groupe 1, les compteurs interagiront d'un groupe à l'autre. Changez le numéro du groupe pour vous isoler des autres élèves. Les numéros de groupe vont de 0 à 255.
  • La radio consomme de l'énergie, elle est donc éteinte par défaut. Pour l'utiliser, il faut donc invoquer la méthode radio.on().
  • Pour savoir si un message a été reçu, on appelle radio.receive(). Cet appel renverra
    • " " (une chaîne vide) si aucun message n'a été reçu. Une chaîne vide est évaluée à False dans la structure conditionnelle If
    • une chaîne contenant un message (ici "A") si un émetteur à transmis un message. Une chaîne non vide est évaluée à True dans la structure conditionnelle If
  • Pour émettre un message, on invoque simplement radio.send(message) où la chaîne message contient le texte à envoyer.

A vous de jouer

  1. Par groupes de 4 (2×2), programmez une carte émettrice et une carte maître
  2. Tester le fonctionnement du dispositif. Remarquez que vos cartes maîtres sont actionnées par les cartes émettrices des autres groupes
  3. Imaginer une extension du protocole de communication afin que la carte maître puisse signaler aux cartes des personnes aux entrées de la salle lorsque la jauge de 120 personnes a été atteinte.
  4. Modifiez les programmes de manière à que que les cartes des personnes aux entrées affichent un smiley triste lorsque 120 personnes sont entrées.
Pièces jointes

À télécharger

 / 1