Activité 1 Informatique Embarquée
Quelques débouchés professionnels : Ingénieur en informatique embarquée / Ingénieur systèmes embarqués / Roboticien(ne) / Chief IOT officer
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 :
-
Reconstituez la Frise historique de l’Informatique Embarquée
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 :
Le langage de programmation sera le « MicroPython » … le langage Python adapté au microcontrôleur. Le microcontrôleur est le composant programmable des cartes électroniques.
Nous allons utiliser le site Web « Vittascience » pour programmer cette carte mais aussi la simuler.
À faire vous-même 2 :
-
Ouvrez l’environnement de développement en ligne « Vittascience » sur https://fr.vittascience.com/microbit/
-
Sur le site, ouvrez le fichier « Entrées Sorties logiques.py » qui contient le début de votre premier programme :
-
Après observation du programme, testez le d’abord en simulation :
-
Testez le programme ensuite en mode débogage (pas à pas) en cherchant à comprendre chaque ligne de code :
-
Téléversez le programme sur la carte « micro:bit » si vous en possédez une connectée sur un des ports USB de votre ordinateur :
La carte « micro:bit » possède en plus de ses deux Boutons Poussoirs (A et B) et de son petit écran constitué de 5 x 5 LED rouges, un certain nombre de broches numérotées servant à y connecter soit des capteurs (détecteur de présence par exemple) soit des actionneurs (voyant ou moteur par exemple) :
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)
Un bouton poussoir externe supplémentaire sera connecté à la broche P0 et une LED (voyant) à la broche P1.
À faire vous-même 3 :
-
Complétez le programme de manière à pouvoir afficher un cœur soit par appui sur le bouton A, soit par appui sur le bouton externe connecté la broche 0, en :
- Créant une variable « valeur_broche_0 » pour lire l'état de la broche 0 avec l’instruction « valeur_broche_0 = pin0.read_digital() ».
- Affichant cette valeur avec un « print ».
- Complétant le test « if » avec l'opérateur « or » pour prendre en compte ces deux sources de commande.
-
Complétez puis testez votre programme pour qu’une accélération de la carte suivant x > à 10 m/s² provoque aussi l’affichage du cœur en utilisant l’instruction « valeur_acc_x = accelerometer.get_x() » pour que la variable lecture prenne la valeur de l’accélération en x
-
Améliorez puis testez votre programme pour que le cœur reste affiché pendant 5 secondes en ajoutant dès la premier ligne l’instruction « import time » (importation de la librairie temps) puis dans votre code l’instruction « time.sleep(5) » pour une pause de 5 secondes
-
Sauvegardez votre travail :
- Copiez votre code
- Ouvrez le fichier « Entrées Sorties logiques.py » avec l’éditeur de code Thonny
- Remplacez le code initial par le vôtre
- Enregistrez puis fermez Thonny
Nous avons actuellement un bouton poussoir externe connecté à broche P0 ; il s’agit d’une entrée logique appelée digital en Anglais d’où l’instruction « pin0.read_digital() ».
Nous allons connecter à broche P2 un capteur de luminosité qui renvoie une tension variable en fonction de la luminosité reçue par cette dernière ; il s’agit cette fois-ci d’une entrée analogique.
Le voyant (LED) sera toujours connecté à la broche P1 mais son intensité lumineuse devra varier en fonction de la luminosité reçue par le capteur de luminosité.
À faire vous-même 4 :
-
Ouvrez le fichier « Entrées Sorties logiques analogiques.py » en procédant de la même façon d’au début de l’activité
-
Achevez puis testez le programme la LED s’allume en fonction de la luminosité reçue par le capteur de luminosité (Plus la lumière reçue sera forte ® plus la LED devra s’allumer fortement) en utilisant les instructions suivantes :
- « luminosite = pin2.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 LED 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)
-
Sauvegardez votre travail :
- Copiez votre code
- Ouvrez le fichier « Entrées Sorties analogiques.py » avec l’éditeur de code Thonny
- Remplacez le code initial par le vôtre
- Enregistrez puis fermez Thonny
Créez votre propre site internet avec Webador