Troisième · Technologie · Chapitre 2
Programmer un objet connecté : capteurs, actionneurs et algorithmes
- algorithme et programme
- variable, séquence, condition, boucle
- conditionnement d'un capteur
- commande d'un actionneur
- dialogue entre objets
- réseaux et données
- sécurité
Ce que tu sauras faire
- Écrire un algorithme en français, puis le traduire en programme, et distinguer l'algorithme de sa traduction.
- Employer une variable : la nommer, lui donner une valeur, la faire évoluer, et distinguer l'affectation de la comparaison.
- Reconnaître et écrire les trois structures de base : la séquence, la condition, la boucle bornée et la boucle non bornée.
- Expliquer le conditionnement d'un capteur : de la grandeur physique au signal, puis du signal au nombre entier fourni par le convertisseur.
- Commander un actionneur depuis une carte programmable, en tout ou rien comme en vitesse variable, et justifier la présence d'une interface de puissance.
- Décrire le dialogue entre deux objets : émetteur, récepteur, protocole, trame, adresse, passerelle et serveur, et choisir une technologie de liaison adaptée.
- Évaluer le volume de données produit par un objet connecté, et énoncer les règles élémentaires de sécurité et de protection des données personnelles.
Au programme du chapitre
- De l'algorithme au programme
- La variable : ranger une information pour s'en servir
- Trois structures suffisent : séquence, condition, boucle
- Acquérir : le capteur et son conditionnement
- Agir : commander un actionneur
- Le dialogue entre objets
- Les données : mesurer, transmettre, stocker
- La sécurité élémentaire d'un objet connecté
- Analyse guidée d'un objet connecté complet
Exercices corrigés
Exercice 1
Un camarade te dit : « Mon programme d'arrosage a fonctionné pendant le cours, donc mon algorithme est juste. » Que lui réponds-tu ?
Un coup de pouce
Demande-toi quelles situations le programme n'a pas rencontrées pendant l'essai.
Voir la correction pas à pas
Un essai réussi ne prouve rien d'autre que la réussite de cet essai-là. Pendant le cours, le sol était sec et le tuyau branché : le programme a rencontré le cas normal, celui pour lequel il a été écrit, et il s'en est tiré.
Ce qui reste à vérifier, ce sont les cas limites. Que se passe-t-il si l'humidité vaut exactement la valeur de consigne ? Si le tuyau est débranché et que l'humidité ne monte jamais ? Si le capteur renvoie toujours la même valeur parce qu'il est en panne ? Un algorithme n'est validé que lorsqu'il a été essayé dans ces situations-là.
Retiens la formule : un essai réussi ne démontre pas qu'un programme est juste, il démontre seulement qu'il n'est pas faux sur ce cas.
Ce qui reste à vérifier, ce sont les cas limites. Que se passe-t-il si l'humidité vaut exactement la valeur de consigne ? Si le tuyau est débranché et que l'humidité ne monte jamais ? Si le capteur renvoie toujours la même valeur parce qu'il est en panne ? Un algorithme n'est validé que lorsqu'il a été essayé dans ces situations-là.
Retiens la formule : un essai réussi ne démontre pas qu'un programme est juste, il démontre seulement qu'il n'est pas faux sur ce cas.
Exercice 2
Dans un programme, quelle est la différence entre la ligne « seuil = 800 » et la ligne « mesure == 800 » ? Que se passe-t-il si l'on écrit un seul signe égal dans une condition ?
Un coup de pouce
L'une des deux lignes range une valeur, l'autre pose une question. Laquelle une condition attend-elle ?
Voir la correction pas à pas
La première ligne est une affectation : elle range la valeur 800 dans la variable seuil. C'est une action, et elle ne répond à aucune question.
La seconde est une comparaison : elle demande si la mesure vaut exactement 800, et répond vrai ou faux. C'est cette réponse qu'une condition attend.
Si l'on écrit un seul signe égal dans une condition, on donne un ordre là où l'on attendait une question. Selon le langage, ou bien le programme refuse de s'exécuter, ou bien — cas beaucoup plus dangereux — il s'exécute en écrasant la variable, et la condition devient toujours vraie. Le programme tourne, il n'affiche aucune erreur, et il fait autre chose que ce que tu voulais. C'est pour cela que cette faute coûte si cher : elle est invisible.
La seconde est une comparaison : elle demande si la mesure vaut exactement 800, et répond vrai ou faux. C'est cette réponse qu'une condition attend.
Si l'on écrit un seul signe égal dans une condition, on donne un ordre là où l'on attendait une question. Selon le langage, ou bien le programme refuse de s'exécuter, ou bien — cas beaucoup plus dangereux — il s'exécute en écrasant la variable, et la condition devient toujours vraie. Le programme tourne, il n'affiche aucune erreur, et il fait autre chose que ce que tu voulais. C'est pour cela que cette faute coûte si cher : elle est invisible.
Les pièges à éviter
- Comparer une valeur brute de convertisseur à un seuil exprimé en degrés, en pourcentage ou en ppm.
- Écrire un seul signe égal dans une condition : « si mesure = 800 ».
- Écrire une boucle « tant que » sans aucune seconde condition d'arrêt.
- Confondre l'algorithme et le programme, et répondre en Python quand on demande un algorithme.
Pour aller plus loin
Le même thème dans d’autres classes
- Programmer un objet technique : comprendre et modifier un programme — Technologie, cinquième
Technologie dans les autres classes
Réviser autrement
- Technologie : toutes les révisions — de la cinquième à la troisième
- Toutes les matières de la troisième
- Réviser le brevet — les chapitres classés par épreuve
- Préparer un devoir ou un DS — tous les chapitres, toutes les classes