Cours NSI-SNT

Système embarqué et objet connecté

Impacts sur les pratiques humaines

L’impact de l’informatisation des objets devient considérable, surtout depuis que leurs interfaces s’unifient. Le but est de fabriquer des machines d’utilisation facile permettant des fonctionnalités améliorées, voire complètement nouvelles comme la voiture autonome. Celle-ci utilise à la fois des techniques de systèmes embarqués pour son fonctionnement et sa navigation et de l’intelligence artificielle pour l’analyse en temps-réel de l’environnement à l’aide de capteurs variés (caméras, radars, lidars, etc.).

Comme l’informatique embarquée interagit avec le monde physique en exposant quelquefois des vies humaines ou des équipements critiques (réseaux électriques par exemple), elle est soumise à de fortes contraintes de sûreté (absence d’erreurs) et de sécurité (résistance aux attaques). En avionique, ferroviaire ou autres applications critiques, des processus lourds de certification externe sont utilisés. Cependant, dans beaucoup de systèmes embarqués moins critiques, la sécurité reste souvent un point faible, et les objets connectés sont de plus en plus utilisés comme robots pour lancer des attaques sur internet.

Définitions

Définition — Systèmes informatiques embarqués
Un système informatique embarqué est un système autonome intégré dans un objet pour contrôler son comportement, sans écran ou clavier classiques. Il comprend un microprocesseur, de la mémoire, des capteurs (ex : accéléromètre, température) et des actionneurs (ex : moteur, LED).


Exemples : Ces systèmes sont utilisés dans les voitures (aides à la conduite), les appareils ménagers (machine à laver), les robots (Thymio) ou les objets connectés.

Définition — Objets connectés
Un objet connecté est un système embarqué relié à un réseau (WiFi, Bluetooth, 5G). Il peut échanger des données avec d'autres objets ou un serveur distant, souvent via une application mobile ou une page web.


Exemples : Comme la montre connectée, l’enceinte intelligente, le thermostat intelligent…

Activité

Pour l’activité, nous allons utiliser 2 choses :

Attention, vous n’utiliserez pas le navigateur Firefox pour la totalité des activité !

Première utilisation

Avant de vous lancer dans le code, quelques étapes sont nécessaires :

-> Si le travail est fait correctement, vous devrez voir apparaître sur votre carte microbit l’image d’un coeur et le message “Hello” successivement.

Jouer avec l’affichage

Pour chacun des prochains exercices, écrire le code une fois validé par votre professeur sur votre feuille.

Afficher du texte
L'affichage du texte se fait à l'aide de la fonction display.show() du module microbit.


Travail à faire : Afficher votre prénom sur la carte

Afficher un nombre
L'affichage d'un nombre se fait également à l'aide de la fonction display.show() du module microbit.


Travail à faire : Afficher votre âge sur la carte.

Afficher une image prédéfinie
Le module microbit propose une vingtaine d'images prédéfinies ( ex : Image.HEART, Image.ARROW_E, Image.CLOCK6, Image.YES, ... ).
L'affichage d'une image prédéfinie se fait à l'aide de la fonction display.show() du module microbit.


Exemple : Voici quelques noms d’images (à écrire en majuscules) : ANGRY, HOUSE, SAD, ASLEEP…

Travail à faire : Afficher une image prédéfinie sur la carte.

Choisir les leds que l’on allume

Éteindre toutes les leds
display.clear()


Allumer une led
Le controle de l'allumage de l'une des leds se fait à l'aide de la fonction display.set_pixel(x, y, val) où x est la colonne (de 0 à 4), y la ligne (de 0 à 4) et val l'intensité (de 0 à 9).


Travail à faire : Afficher une image de votre création sur la carte.

Jouer avec le temps

Faire faire une pause au programme
Pour faire faire une pause au programme, il faut utiliser la fonction sleep en indiquant la durée de la pause souhaitée en millisecondes. sleep(nombre_millisecondes)


Travail à faire : Afficher votre nom, puis faite une pause d’une seconde, afficher votre prénom, une nouvelle pause d’une seconde, et enfin afficher une image de votre choix.

Jouer avec les boutons

La carte microbit dispose de deux boutons notés A et B. Voici comment les programmer.

Tester si l'un des boutons est appuyé
Pour tester si l'un des boutons est appuyé, il faut utiliser la méthode is_pressed() du bouton. Cette méthode renvoie True (vrai) ou False (faux), on peut donc l'utiliser dans une instruction conditionnelle.
Exemple avec le bouton A :

while True:
    if button_a.is_pressed():
        # block des instructions qui s'exécuteront si le bouton est appuyé
    else:
        # block des instructions qui s'exécuteront si le bouton n'est pas appuyé 


Travail à faire : Faire en sorte que l’image HAPPY soit affichée quand le bouton est appuyé et que l’image SAD le soit quand le bouton n’est pas appuyé.