2SNT.F. Informatique embarquée et objets connectés

Les élèves doivent savoir
  • Identifier des algorithmes de contrôle des comportements physiques à travers les données des capteurs, l’IHM et les actions des actionneurs dans des systèmes courants.
  • Réaliser une IHM simple d’un objet connecté.
  • Écrire des programmes simples d’acquisition de données ou de commande d’un actionneur.

Systèmes informatiques embarqués

Depuis l’invention de l’informatique, les ingénieurs n’ont cessé d’améliorer ces systèmes électroniques pour les rendre plus rapides, mais aussi plus petits et plus efficaces en gestion de l’énergie. Grâce à ces efforts, des systèmes électroniques intégrés de plus en plus petits s’installent dans notre quotidien pour remplacer des systèmes de transmission mécanique ou pour donner de nouvelles capacités aux objets qui nous entourent.

Aujourd’hui, les fabricants de circuits électroniques (aussi appelées « puce »), créent des systèmes intégrés qui intègrent un microprocesseur, de la mémoire et des capteurs (pression, compas, GPS…). On retrouve ces puces dans les smartphones, mais également dans les voitures, les avions, les brosses à dents ou les machines à laver.

Dans les avions et les voitures, ces systèmes miniaturisés et embarqués permettent de supprimer des pièces mécaniques devenues inutiles. Pour commander le moteur qui actionne les volets des ailes, il fallait auparavant des câbles mécaniques, des vérins et d’autres systèmes lourds et fragiles. Désormais, une simple liaison sans fil permet de donner l’ordre au moteur à distance. Cela constitue un gain de masse appréciable qui permet d’embarquer plus de passagers ou de réduire les coûts et carburants.

Dans les voitures, ces systèmes embarqués, couplés à des ordinateurs de bords de plus en plus puissants, permettent de proposer des aides à la conduite : maintien dans la ligne, alerte de franchissement de ligne, maintien des distances de sécurité, lecture des limitations de vitesse… Et bientôt de créer des voitures totalement autonomes capables de se déplacer seules en toutes circonstances.

Pour programmer ces systèmes embarqués, il faut des logiciels efficaces, qui réagissent très vite (idéalement en temps réel) et pour lesquels il faut mettre au point des algorithmes. Un « algorithme » est une modélisation de ce que devra faire un programme en prenant en compte les différentes étapes de celui-ci.

Voici un algorithme très simple pour afficher une température sur un écran après l’avoir lue depuis un capteur :

On y retrouve la suite d’instruction qu’il faudra ensuite traduire en code adapté au système embarqué.

Ce code peut-être écrit dans différents langages de programmation, comme le python (vu en début d’année) ou des langages de blocs comme Scratch ou Snap!

Voici ce que donne un code en Snap! Pour un microcontrôleur « Microbit » qui doit afficher la température et l’humidité sur son écran interne après avoir lu ces valeurs depuis des capteurs :

On remarque dans les blocs de codes ci-dessus que l’affichage est déporté et qu’on y accède en wifi. Ces capacités de communications sans fil sont de plus en plus présentent dans les systèmes embarqués et on nomme l’ensemble de ces systèmes « l’Internet des Objets » (Internet of Things : IoT).

La multiplication de ces objets capables d’interagir avec leur environnement pour ouvrir une porte, préparer un café, fermer un volet en fonction de la luminosité ou déverrouiller la voiture quand on s’en approche, explique le passage nécessaire à ipv6 dont nous parlions dans les premiers chapitres de ce cours.

Interface Homme-Machine

Il ne suffit pas d’avoir des microcontrôleurs, des capteurs et une alimentation pour faire un système embarqué efficace. Il faut aussi que le contrôle de ce système par l’utilisateur soit aisé et intuitif.

Pour cela il est fondamental de disposer d’une bonne interface entre l’homme et la machine (IHM). Celle-ci doit être lisible, claire, non surchargée d’option, tout en donnant accès à tout ce qui est nécessaire pour piloter le système.

La création de ces interfaces, qui s’apparente à celle de la création de la fenêtre d’un logiciel, est une science à part entière qui mêle créativité, réflexion et suivi des modes. En effet, plusieurs modes graphiques se sont succédé depuis les développements massifs de ces concepts avec l’avènement des téléphones intelligents : skeuomorphisme (apparence du réel), flat design, material design…


Exemple de skeuomorphisme dans l’interface d’un amplificateur guitare dans Logic : tout est fait pour qu’on ait l’impression de manipuler les boutons d’un vrai amplificateur de guitare.


Material Design en thème sombre de l’horloge d’un smartphone sous Android 10.

Pour concevoir une interface homme-machine sur smartphone, on peut utiliser le logiciel gratuit « App Inventor » qui se compose d’un module permettant de créer l’interface à partir de différents éléments standards du système : boutons, boîtes de sélections, sélecteurs à glissière… A chacun de ces éléments, on pourra ensuite affecter des blocs de codes afin que le logiciel réalise certaines choses. Enfin un émulateur permet de tester l’application finale avant de l’envoyer au smartphone.

Avec « App Inventor » il est ainsi possible de piloter à distance un microcontrôleur embarqué qui possède une liaison Bluetooth ou wifi, afin de lire les valeurs de ses capteurs et de lui donner des ordres.

Sur Mac, on peut utiliser le logiciel gratuit XCode pour créer des logiciels complets qui pourront s’exécuter sur téléphone mobile, tablette ou ordinateur. On dispose alors également d’un module permettant de créer l’ensemble de l’interface, comme on le voit dans la capture d’écran ci-dessous :

Actionneur

Les microcontrôleurs, comme Arduino ou Microbit, permettent de brancher des éléments qui vont servir à entrer des informations, que l’on nomme capteurs, et d’autres éléments qui vont actionner des systèmes (moteurs, LED…), que l’on nomme actionneurs.


Arduino branché sur un affichage digital

Avec un peu d’imagination, des capteurs et des moteurs, il est ainsi possible de créer ey de programmer des robots ludiques ou des systèmes utilitaires : arrosage de serre, contrôle d’un parasol, ouverture et fermeture de portes…

Chapitre précédent

Chapitre suivant