Ressources · 2ⁿᵈᵉ · Sciences numériques et technologie (SNT)
Objets connectés
Systèmes embarqués, capteurs et actionneurs, interfaces homme-machine, programmation d'un objet, enjeux (SNT de 2nde)
À propos de cette page
Exercices corrigés, classés du plus simple au plus complexe. Cherche d'abord seul au brouillon, puis déplie la correction détaillée pour vérifier ta méthode et tes raisonnements.
Exercice 1 — Capteur ou actionneur ?
FacileOn considère six composants : thermistance, servomoteur, microphone, buzzer, accéléromètre, électrovanne.
- a) Classer chaque composant comme capteur ou actionneur, en précisant la grandeur mesurée ou l'action produite.
- b) Une trottinette électrique connectée affiche sa vitesse et allume un feu arrière quand on freine. Citer un capteur et deux actionneurs de cette trottinette.
- c) Un élève affirme : « Un bouton-poussoir n'est pas un capteur, car il ne mesure rien. » Expliquer son erreur.
a) Un capteur transforme une grandeur physique en signal électrique ; un actionneur transforme un ordre électrique en action physique.
| Composant | Type | Grandeur ou action |
|---|---|---|
| thermistance | capteur | température (sa résistance varie avec elle) |
| servomoteur | actionneur | rotation d'un angle précis |
| microphone | capteur | son |
| buzzer | actionneur | émission d'un son |
| accéléromètre | capteur | accélération, inclinaison, chocs |
| électrovanne | actionneur | ouverture ou fermeture d'un passage de fluide |
b) Pour afficher la vitesse, la trottinette doit la mesurer : un capteur de rotation de la roue (ou un contact sur le levier de frein, qui détecte le freinage). Actionneurs : le moteur électrique de la roue et le feu arrière (LED) ; l'afficheur de vitesse en est un troisième.
c) L'appui sur le bouton est une action physique ; le bouton la transforme en signal électrique (0 ou 1) lu par le programme. C'est donc bien un capteur, de type tout-ou-rien : un capteur ne mesure pas forcément une grandeur continue, il peut détecter un état.
Exercice 2 — Système embarqué ou objet connecté ?
Facile- a) Donner la définition d'un système embarqué, puis celle d'un objet connecté.
- b) Pour chaque objet, dire s'il contient un système embarqué et s'il est un objet connecté : un four à micro-ondes à minuterie électronique ; une montre de sport qui synchronise ses courses avec une application ; un lave-linge à programmes sans connexion ; une sonnette vidéo reliée au Wi-Fi.
- c) Expliquer pourquoi un smartphone est à la fois un objet connecté et un ensemble de systèmes embarqués.
a) Un système embarqué est un ensemble électronique et informatique intégré à un objet et dédié à une tâche précise. Un objet connecté est un système embarqué qui peut en plus échanger des données avec d'autres appareils ou avec Internet.
b)
| Objet | Système embarqué ? | Objet connecté ? |
|---|---|---|
| micro-ondes à minuterie | oui (gère la durée et la puissance) | non |
| montre de sport | oui | oui (Bluetooth vers l'application) |
| lave-linge sans connexion | oui (enchaîne les étapes du programme) | non |
| sonnette vidéo | oui | oui (Wi-Fi) |
Les quatre objets contiennent un système embarqué ; seuls la montre et la sonnette sont connectés.
c) Un smartphone communique (réseau mobile, Wi-Fi, Bluetooth) : c'est un objet connecté. Il contient aussi plusieurs sous-systèmes dédiés à une tâche, chacun avec son électronique : gestion de la batterie, appareil photo, GPS, capteur d'empreinte. Il regroupe donc plusieurs systèmes embarqués dans un objet connecté.
Exercice 3 — Lire un premier programme
FacileOn considère le programme suivant, exécuté sur une carte micro:bit.
from microbit import *
while True:
if button_a.is_pressed():
display.show(Image.HEART)
else:
display.clear()
sleep(50)
- a) Quel est le capteur utilisé ? Quel est l'actionneur ?
- b) Décrire ce que voit l'utilisateur quand il appuie sur A, puis quand il relâche.
- c) Quel est le rôle de la ligne
while True:? - d) Combien de fois par seconde, environ, l'état du bouton est-il testé ?
a) Le capteur est le bouton A (lu par button_a.is_pressed()). L'actionneur est la matrice de LED (commandée par display).
b) Tant que A est enfoncé, la condition est vraie : un cœur s'affiche. Dès que A est relâché, c'est le else qui s'exécute et l'écran s'efface. Le cœur est visible uniquement pendant l'appui.
c) while True: crée une boucle infinie : les instructions indentées sont répétées sans fin, ce qui permet de surveiller le bouton en permanence. Sans elle, le bouton ne serait testé qu'une seule fois, au démarrage.
d) Chaque tour de boucle dure environ 50 ms (le test et l'affichage sont quasi instantanés). En une seconde, soit 1 000 ms : 1 000 / 50 = 20. Le bouton est testé environ 20 fois par seconde.
Exercice 4 — Du capteur au nombre
MoyenUn capteur de luminosité analogique est branché sur la broche 1 d'une carte micro:bit. Il fournit une tension comprise entre 0 V et 3,3 V, et pin1.read_analog() renvoie un entier de 0 à 1 023.
- a) Expliquer pourquoi la valeur maximale lue est 1 023 alors que le convertisseur est dit « 10 bits ».
- b) Montrer que la valeur lue 310 correspond à une tension de 1,0 V.
- c) Quelle valeur le programme lit-il quand le capteur fournit 2,5 V ?
- d) Calculer la plus petite variation de tension que ce convertisseur peut distinguer, en millivolts, arrondie au dixième.
a) Avec 10 bits, on peut écrire 210 = 1 024 nombres différents. Comme on commence à 0, ces nombres vont de 0 à 1 024 − 1 = 1 023.
b) La tension est proportionnelle à la valeur lue : 1 023 correspond à 3,3 V, donc U = N × 3,3 / 1 023. Pour N = 310 : U = 310 × 3,3 / 1 023 = 1 023 / 1 023 = 1,0 V. C'est bien la tension annoncée.
c) Conversion inverse : N = U × 1 023 / 3,3. Or 1 023 / 3,3 = 310, donc N = 2,5 × 310 = 775.
d) Passer d'une valeur à la suivante correspond à un écart de 3,3 / 1 023 ≈ 0,003 226 V, soit environ 3,2 mV. Deux tensions qui diffèrent de moins de 3,2 mV peuvent donner la même valeur lue.
Exercice 5 — Ventilation d'une serre
MoyenDans une serre, une carte micro:bit mesure la température avec temperature() (en °C, nombre entier). Un ventilateur est commandé par la broche 0 : 1 pour marche, 0 pour arrêt. Le ventilateur doit tourner quand la température est strictement supérieure à 27 °C.
- a) Écrire l'algorithme de contrôle en langage naturel.
- b) Écrire le programme Python complet, avec une mesure toutes les 2 secondes.
- c) Les mesures successives sont 25, 28, 27, 30 et 26 °C. Donner l'état du ventilateur après chaque mesure.
- d) Justifier que le ventilateur est arrêté à 27 °C, puis modifier la condition pour qu'il tourne aussi à cette température.
a) Répéter indéfiniment : lire la température T ; si T > 27, mettre le ventilateur en marche, sinon l'arrêter ; attendre 2 secondes.
b) 2 s = 2 000 ms.
from microbit import *
while True:
if temperature() > 27:
pin0.write_digital(1)
else:
pin0.write_digital(0)
sleep(2000)c) On teste T > 27 à chaque mesure.
| T (°C) | 25 | 28 | 27 | 30 | 26 |
|---|---|---|---|---|---|
| T > 27 ? | non | oui | non | oui | non |
| Ventilateur | arrêt | marche | arrêt | marche | arrêt |
d) 27 > 27 est faux, car une inégalité stricte exclut l'égalité : le programme exécute le else. Pour inclure 27 °C, on écrit if temperature() >= 27:.
Exercice 6 — IHM d'un minuteur de cuisine
MoyenOn programme un minuteur sur une carte micro:bit.
from microbit import *
minutes = 0
while True:
if button_a.was_pressed():
minutes = minutes + 1
display.show(minutes)
if button_b.was_pressed():
while minutes > 0:
display.show(minutes)
sleep(60000)
minutes = minutes - 1
display.scroll('FIN')
- a) Identifier les entrées et les sorties de cette IHM.
- b) L'utilisateur appuie trois fois sur A, puis une fois sur B. Décrire la suite des affichages et la durée totale du décompte.
- c) Quel est le rôle de l'instruction
sleep(60000)? - d) Expliquer pourquoi l'utilisateur ne peut pas interrompre un décompte lancé, et proposer une amélioration.
a) Entrées : bouton A (ajouter une minute) et bouton B (lancer le décompte). Sortie : la matrice de LED, qui affiche le nombre de minutes puis « FIN ».
b) Après trois appuis sur A, minutes vaut 3 et l'écran affiche successivement 1, 2 puis 3. L'appui sur B lance la boucle : affichage de 3 pendant une minute, puis 2, puis 1 ; quand minutes vaut 0, la boucle s'arrête et « FIN » défile. Le décompte dure 3 × 60 000 ms = 180 000 ms, soit 3 minutes.
c) sleep(60000) met le programme en pause pendant 60 000 ms, c'est-à-dire une minute : chaque tour de la boucle interne correspond à une minute écoulée.
d) Pendant le décompte, le programme est enfermé dans la boucle while minutes > 0 et presque tout le temps en pause : aucun bouton n'y est testé, donc rien ne peut l'arrêter. De plus, was_pressed() mémorise les appuis : un appui sur A pendant le décompte sera compté après « FIN », ce qui surprend l'utilisateur. Amélioration : découper chaque minute en 600 pauses de 100 ms et tester button_b.was_pressed() à chaque pause ; si B est pressé, remettre minutes à 0 et sortir de la boucle.
Exercice 7 — Traceur GPS de vélo
MoyenUn traceur GPS fixé sur un vélo enregistre un point toutes les 5 secondes. Chaque point contient la latitude (4 octets), la longitude (4 octets) et l'horodatage (4 octets). En fin de sortie, les points sont envoyés à une application en ligne. On prend 1 ko = 1 000 octets.
- a) Combien de points sont enregistrés pendant une sortie de 3 heures ?
- b) Calculer le volume de données correspondant, en octets puis en ko.
- c) Montrer que ces données sont des données personnelles et donner deux informations qu'un tiers pourrait en déduire.
- d) Proposer deux mesures qui protègent l'utilisateur.
a) 3 h = 3 × 3 600 = 10 800 s. Un point toutes les 5 s : 10 800 / 5 = 2 160 points.
b) Chaque point occupe 4 + 4 + 4 = 12 octets. Volume : 2 160 × 12 = 25 920 octets, soit environ 25,9 ko.
c) Les points sont rattachés au compte d'une personne identifiable et décrivent ses déplacements avec la date et l'heure : ce sont des données personnelles au sens du RGPD. Un tiers pourrait en déduire l'adresse du domicile (point de départ et d'arrivée récurrent) et les habitudes horaires (heures où la personne est absente de chez elle).
d) Par exemple : activer une zone de confidentialité qui masque les points proches du domicile ; régler le partage des sorties en privé ; protéger le compte par un mot de passe robuste ; exiger que les données soient chiffrées lors de l'envoi. Deux de ces mesures suffisent.
Exercice 8 — Un robot qui évite les obstacles
DifficileDocument 1 — Principe du capteur à ultrasons. Le capteur émet une brève salve d'ultrasons, qui se réfléchit sur l'obstacle et revient. Il mesure la durée t de l'aller-retour. Vitesse du son dans l'air : 340 m/s.
Document 2 — Mesures successives.
| Mesure | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| t (ms) | 11,2 | 6,4 | 2,6 | 1,5 |
Document 3 — Règles de pilotage. Si d ≥ 0,50 m : avancer. Si 0,30 m ≤ d < 0,50 m : ralentir. Si d < 0,30 m : s'arrêter.
- 1. Identifier le capteur et les actionneurs de ce robot.
- 2. Montrer que la distance d (en m) à l'obstacle vaut d = 170 × t, avec t en secondes.
- 3. Calculer la distance pour chaque mesure du document 2 et indiquer la décision prise.
- 4. Écrire une fonction Python
decision(d)qui renvoie 'avancer', 'ralentir' ou 'arret'. - 5. Le robot roule à 0,4 m/s et mesure la distance toutes les 200 ms. Calculer la distance parcourue entre deux mesures, puis expliquer pourquoi la période de mesure est un choix de sécurité.
1. Capteur : le capteur à ultrasons (il transforme l'écho reçu en durée mesurée). Actionneurs : les moteurs des roues, qui avancent, ralentissent ou s'arrêtent selon l'ordre du programme.
2. Pendant la durée t, le son fait l'aller et le retour : il parcourt 2d. Avec d = v × t pour un trajet simple, on a ici 2d = 340 × t, donc d = 340 × t / 2 = 170 × t.
3. On convertit t en secondes (1 ms = 0,001 s), puis on applique d = 170 × t.
| t (s) | d (m) | Décision |
|---|---|---|
| 0,0112 | 1,904 ≈ 1,90 | avancer |
| 0,0064 | 1,088 ≈ 1,09 | avancer |
| 0,0026 | 0,442 ≈ 0,44 | ralentir (0,30 ≤ d < 0,50) |
| 0,0015 | 0,255 ≈ 0,26 | s'arrêter (d < 0,30) |
4. On teste d'abord le cas le plus urgent ; le elif n'est examiné que si d ≥ 0,30.
def decision(d):
if d < 0.30:
return 'arret'
elif d < 0.50:
return 'ralentir'
else:
return 'avancer'5. 200 ms = 0,2 s. Distance parcourue entre deux mesures : 0,4 × 0,2 = 0,08 m, soit 8 cm. Le robot ne « voit » l'obstacle qu'au moment des mesures : entre deux mesures, il avance à l'aveugle. Avec 8 cm, il ne peut pas sauter la zone de ralentissement, large de 20 cm. Si l'on mesurait seulement toutes les secondes, il parcourrait 40 cm à l'aveugle et pourrait passer de 0,55 m à 0,15 m sans avoir ralenti. Plus le robot est rapide, plus la période de mesure doit être courte.
Exercice 9 — Thermostat : seuil unique ou hystérésis ?
DifficileUn thermostat relève la température d'une pièce toutes les 10 minutes, au dixième de degré, et commande le chauffage par un relais.
Document 1 — Régulation à seuil unique : chauffage allumé si T < 20 °C, éteint sinon.
| t (min) | 0 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 |
|---|---|---|---|---|---|---|---|---|---|---|
| T (°C) | 19,6 | 20,1 | 19,9 | 20,2 | 19,8 | 20,3 | 19,7 | 20,0 | 19,8 | 20,2 |
Document 2 — Régulation avec hystérésis (chauffage éteint au départ) : allumer si T < 19,5 °C, éteindre si T > 20,5 °C, sinon garder l'état.
| t (min) | 0 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 |
|---|---|---|---|---|---|---|---|---|---|---|
| T (°C) | 20,6 | 20,1 | 19,6 | 19,3 | 19,8 | 20,3 | 20,7 | 20,2 | 19,7 | 19,4 |
- 1. D'après le document 1, donner l'état du chauffage après chaque relevé et compter les commutations (changements d'état).
- 2. Justifier que le chauffage est éteint à t = 70 min.
- 3. Donner deux inconvénients de commutations aussi fréquentes.
- 4. Écrire en Python la boucle de régulation avec hystérésis. On dispose d'une fonction
lire_temperature()et le relais est sur la broche 0 ; on utilisera une variableetat. - 5. Appliquer la règle du document 2 à ses relevés, compter les commutations et conclure.
- 6. Montrer que, si la température varie d'au plus 0,5 °C entre deux relevés, deux commutations successives avec hystérésis sont séparées d'au moins 30 minutes.
1. Règle : allumé (A) si T < 20, éteint (E) sinon.
| t (min) | 0 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 |
|---|---|---|---|---|---|---|---|---|---|---|
| État | A | E | A | E | A | E | A | E | A | E |
L'état change à chaque relevé à partir de t = 10 min : 9 commutations en 90 minutes.
2. À t = 70 min, T = 20,0 °C. La condition « T < 20 » est stricte : 20,0 < 20 est faux, donc le chauffage est éteint.
3. Le relais s'use à chaque commutation (durée de vie réduite, bruit de claquement) ; la température oscille sans cesse autour de la consigne, ce qui nuit au confort ; les démarrages répétés peuvent augmenter la consommation de certains appareils.
4.
etat = 0
while True:
T = lire_temperature()
if T < 19.5:
etat = 1
elif T > 20.5:
etat = 0
pin0.write_digital(etat)
sleep(600000)Entre 19,5 et 20,5 °C, aucune branche ne s'exécute : etat garde sa valeur précédente, ce qui est exactement le principe de l'hystérésis. La pause de 600 000 ms correspond à 10 minutes.
5.
| T (°C) | 20,6 | 20,1 | 19,6 | 19,3 | 19,8 | 20,3 | 20,7 | 20,2 | 19,7 | 19,4 |
|---|---|---|---|---|---|---|---|---|---|---|
| État | E | E | E | A | A | A | E | E | E | A |
Commutations à 30, 60 et 90 min : 3 commutations contre 9 avec le seuil unique, pour une température qui reste proche de 20 °C (entre 19,3 et 20,7 °C). L'hystérésis réduit fortement l'usure du relais au prix d'une oscillation un peu plus large.
6. Supposons que le chauffage s'allume au relevé k (commutation), donc Tk < 19,5, et s'éteigne pour la première fois ensuite au relevé m, donc Tm > 20,5. Alors Tm − Tk > 20,5 − 19,5 = 1 °C. En m − k intervalles, la température augmente d'au plus 0,5 × (m − k). Il faut donc 0,5 × (m − k) > 1, soit m − k > 2, donc m − k ≥ 3. Le raisonnement est le même pour passer d'éteint à allumé. Deux commutations successives sont donc séparées d'au moins 3 intervalles, soit au moins 30 minutes, ce que confirme le document 2.
Exercice 10 — Autonomie d'une station météo connectée
DifficileDocument 1 — Fiche technique.
| Batterie | 2 400 mAh |
|---|---|
| Taille d'un message | 14 octets |
| Émission d'un message | 1,5 s à 40 mA |
| Veille (le reste du temps) | 0,02 mA |
Document 2 — Réglage d'usine. Un message radio toutes les 15 minutes. On rappelle qu'une charge en mAh est le produit d'une intensité (mA) par une durée (h).
- 1. Calculer le nombre de messages envoyés par jour et le volume de données transmis par jour.
- 2. Montrer que les émissions consomment 1,6 mAh par jour.
- 3. Calculer la charge consommée en veille par jour, arrondie au centième.
- 4. En déduire l'autonomie de la station, en jours puis en années.
- 5. Depuis l'application, un utilisateur règle un envoi toutes les minutes. Calculer la nouvelle autonomie en jours et commenter.
- 6. Expliquer pourquoi les objets connectés sur batterie émettent rarement et citer un enjeu environnemental lié à ce choix.
1. Un jour = 24 × 60 = 1 440 min, donc 1 440 / 15 = 96 messages par jour. Volume : 96 × 14 = 1 344 octets par jour.
2. Durée d'émission par jour : 96 × 1,5 = 144 s = 144 / 3 600 h = 0,04 h. Charge : 40 × 0,04 = 1,6 mAh.
3. Un jour dure 86 400 s ; la station est en veille 86 400 − 144 = 86 256 s, soit 86 256 / 3 600 = 23,96 h. Charge : 0,02 × 23,96 = 0,4792 ≈ 0,48 mAh.
4. Consommation par jour : 1,6 + 0,4792 = 2,0792 mAh. Autonomie : 2 400 / 2,0792 ≈ 1 154 jours, soit 1 154 / 365 ≈ 3,2 ans.
5. Messages par jour : 1 440. Émission : 1 440 × 1,5 = 2 160 s = 0,6 h, d'où 40 × 0,6 = 24 mAh. Veille : 86 400 − 2 160 = 84 240 s = 23,4 h, d'où 0,02 × 23,4 = 0,468 mAh. Total : 24,468 mAh par jour. Autonomie : 2 400 / 24,468 ≈ 98 jours. En émettant 15 fois plus souvent, la station tient environ 12 fois moins longtemps (un peu plus de 3 mois au lieu de 3 ans) : la consommation est alors presque entièrement due à la radio.
6. Le calcul montre que l'émission radio consomme 2 000 fois plus que la veille (40 mA contre 0,02 mA) : c'est elle qui fixe l'autonomie. Les concepteurs espacent donc les envois et gardent l'objet en veille le reste du temps. Enjeu environnemental : une batterie vidée plus vite doit être rechargée ou remplacée plus souvent, ce qui multiplie les déchets et l'extraction de métaux (lithium, cobalt) ; émettre moins, c'est aussi polluer moins.
Moi c'est Ben, j'ai créé ce site pour aider le plus d'élèves possible, partout en France. Je peux aussi reprendre avec toi ce qui coince en cours particulier : en visio, ou à domicile si tu es à Marseille.
Soutien scolaire à Marseille · Cours particuliers au lycée · Aide aux devoirs