Activité 1 Informatique Embarquée

On désigne sous le terme informatique embarquée les aspects logiciels se trouvant à l'intérieur des équipements n'ayant pas une vocation purement informatique (réf. Wikipédia). Pour faire simple, il s’agit de programmer les cartes électroniques situées dans quasiment tous les appareils électriques.

À faire vous-même 1 :

Nous allons poursuivre en travaillant autour d’une carte électronique pédagogique « micro:bit » développée par la BBC, la plus importante et la plus célèbre société de diffusion au monde :

Une carte virtuelle, simulant partiellement la carte réelle, sera aussi employée.

 

Le langage de programmation sera le « MicroPython » … le langage Python adapté au microcontrôleur composant programmable des cartes électroniques. 

À faire vous-même 2 :

  • Ouvrez l’environnement de développement (abréviation en Anglais « Idle ») « TigerJython » pour la carte « micro:bit » (Outil/Devices/ « micro:bit/Calliope »)

  • Ouvrez à partir de ce logiciel (l’Idle) le fichier « Carte virtuelle.py » qui contient le tout début de votre futur programme

En plus de ses deux Boutons Poussoirs (A et B) et de son petit écran constitué de 5 x 5 LED rouges, la carte « micro:bit » possède un certain nombre de broches numérotées servant à y connecter soit des capteurs (détecteur de présence par exemple) soit des actionneurs (moteur par exemple)

Commençons par programmer la carte virtuelle et nous utiliserons uniquement son petit écran, la broche 0, auquel on supposera qu’un détecteur de présence y sera connecté, et la broche 1 auquel on imaginera un moteur de connecté.

Au niveau des broches deux cas principaux peuvent se produire :

  • Premier cas: La broche est du type logique valant soit 0 (tension électrique plutôt faible entre la broche et la masse broche GND), soit 1 (tension électrique plutôt forte)
  • Deuxième cas: La broche est du type analogique valant une multitude de valeur assez souvent comprise entre 0 et 255 (la tension électrique fluctuant alors progressivement entre 0 Volt pour la valeur 0 et 3,3 Volt pour la valeur maximale)

À faire vous-même 3 :

  • Achevez le programme pour faire apparaitre à l’écran le dessin d’un cœur lorsque la broche 0 de la carte passe à 1 et un « Happy » dans le cas contraire

  • Lancez une simulation de votre programme en cliquant sur la flèche verte :

  • Testez votre programme en cliquant sur la broche 0 et si le résultat n’est pas bon… à vous de le corriger :

  • Testez votre programme en mode pas à pas

  • Complétez puis testez le programme pour que la broche 1 passe à 1 lorsque la broche 0 est à 1 et à 0 dans le cas contraire avec l’instruction « pin1.write_digital(x) » avec x valant 0 ou 1

La carte « micro:bit » possède un capteur de température et un accéléromètre et même une boussole !

Avec la carte virtuelle, il n’est pas possible de tout simuler mais l’accéléromètre oui :

À faire vous-même 4 :

  • Complétez puis testez le programme pour qu’une accélération de la carte suivant x > à 10 provoque aussi l’affichage du joli cœur en utilisant les instructions suivantes :

    - « valeur_accX = accelerometer.get_x() » pour que la variable lecture prenne la valeur  de l’accélération en x

    -  « if 'test1' or 'test2' : » pour un double test avec l’opérateur logique « ou »

  • Testez votre programme sur la carte réelle en connectant la carte « micro:bit » à votre ordinateur par son câble USB puis en ayant choisi le type de carte connectée de la manière suivante afin de télécharger et exécuter le programme :

Passons à la carte « micro:bit » réelle en écrivant un programme faisant appel à un capteur de luminosité et une diode électroluminescente (en Anglais LED ou en Français DEL).

À faire vous-même 5 :

  • Ouvrez à partir de l’Idle « TigerJython » le fichier « Carte reelle.py » qui contient le tout début de votre futur programme qui ne peut fonctionner que sur la carte réelle (pas de simulation possible !)

  • Achevez puis testez le programme sur la carte réelle connectée à votre ordinateur par un câble USB afin que la DEL rouge câblée à la carte à la broche 1 s’allume en fonction de la luminosité reçue par le capteur de luminosité câblé à la broche 0 (Plus la lumière reçue sera forte -> plus la LED devra s’allumer fortement) en utilisant les instructions suivantes :

    - « luminosite = pin0.read_analog() » pour faire l’acquisition du niveau de luminosité

    - « print("Niveau de luminosité : ", luminosite) » pour afficher sur la console la valeur reflétant le niveau de luminosité

    - « pin1.write_analog(luminosite) » pour allumer la diode électroluminescente plus ou moins fortement en fonction de la valeur de la variable « luminosite » (luminosite = 0 -> DEL éteinte / luminosite = 1023 -> DEL allumée le plus fortement possible)

  • Complétez le programme pour que le message « faible » défile si la luminosité est faible et « FORT » dans le cas contraire avec l’instruction « display.scroll('message à faire défiler') »

  • Testez votre programme sur la carte réelle