Aller au contenu

Programmer et piloter un système automatisé

Quatrième · Technologie · Informatique et programmation

Informatique et programmation

Comprendre un système automatisé

Un portail qui s'ouvre tout seul, un distributeur de boissons, un feu tricolore, un robot aspirateur : tous ces objets fonctionnent sans intervention humaine permanente. Ce sont des systèmes automatisés. Avant de les programmer, il faut comprendre comment ils sont organisés : que perçoivent-ils, que décident-ils, et qu'actionnent-ils ?

Capteurs et actionneurs : les deux familles à ne pas confondre

Un système automatisé ne peut décider que s'il perçoit son environnement. Ce rôle revient aux capteurs. Une fois la décision prise, il faut agir : c'est le rôle des actionneurs. Retiens le sens du trajet : le capteur fait entrer l'information dans le système, l'actionneur fait sortir l'action.

CapteurActionneur
RôleTransformer une grandeur physique en information électriqueTransformer l'énergie reçue en action (mouvement, lumière, son, chaleur)
Place dans le systèmeEn entrée de la partie commandeEn sortie de la partie commande
ExemplesBouton poussoir, capteur de température, capteur de luminosité, détecteur de présence, capteur à ultrasonsMoteur, vérin, lampe ou LED, buzzer, résistance chauffante
Question à se poserEst-ce que l'objet RENSEIGNE le système ?Est-ce que l'objet FAIT quelque chose de visible ?

Deux chaînes qui travaillent ensemble

Tout système automatisé se décrit avec deux chaînes parallèles.
La chaîne d'information : ACQUÉRIR (le capteur relève une grandeur) → TRAITER (la carte programmable compare à une consigne et décide) → COMMUNIQUER (l'ordre est transmis, un afficheur informe l'utilisateur).
La chaîne d'énergie : ALIMENTER (secteur, pile, batterie) → DISTRIBUER (interrupteur, relais) → CONVERTIR (le moteur transforme l'électricité en mouvement) → TRANSMETTRE (engrenages, courroie) jusqu'à l'action finale.
La chaîne d'information commande la chaîne d'énergie : c'est le traitement qui décide si l'énergie est distribuée ou non.

Informatique et programmation

Écrire, tester et corriger un programme

Programmer, ce n'est pas empiler des blocs au hasard : c'est d'abord écrire un algorithme, c'est-à-dire décrire en français, dans l'ordre, ce que la machine doit faire. Le programme n'est que la traduction de cet algorithme dans un langage compris par la carte (blocs type Scratch, mBlock, Arduino…).

Les quatre structures de base

  • La SÉQUENCE : les instructions s'exécutent l'une après l'autre, de haut en bas. L'ordre change tout.
  • La CONDITION (si … alors … sinon) : le programme choisit entre deux chemins selon qu'un test est vrai ou faux.
  • La BOUCLE : on répète des instructions, soit un nombre connu de fois (répéter 10 fois), soit tant qu'une condition reste vraie (tant que le capteur détecte un obstacle), soit indéfiniment (répéter indéfiniment).
  • La VARIABLE : une case mémoire nommée qui stocke une valeur (un compteur, une température lue, un score) et que le programme peut modifier pendant l'exécution.
Besoin exprimé dans le cahier des chargesStructure à utiliser
« Le robot avance puis tourne à droite »Séquence
« Si la température descend sous 19 °C, le chauffage s'allume »Condition
« Le feu répète son cycle sans jamais s'arrêter »Boucle infinie (répéter indéfiniment)
« Le portail se ferme tant que le capteur ne détecte rien »Boucle conditionnelle (tant que)
« Le système compte le nombre de véhicules entrés »Variable (compteur)

Tester, c'est faire fonctionner le système. Un programme qui se lance sans message d'erreur n'est pas forcément un programme correct : il peut faire autre chose que ce qui est demandé. Pour valider, on compare le comportement observé au cahier des charges, test par test. Une technique efficace est la trace d'exécution : on note dans un tableau la valeur de chaque variable après chaque instruction, pour repérer exactement où le programme dérape.

Exercices corrigés

  1. Quel est l'ordre correct des trois fonctions de la chaîne d'information ?

    • A.Traiter → acquérir → communiquer
    • B.Communiquer → traiter → acquérir
    • C.Acquérir → traiter → communiquerBonne réponse
    • D.Acquérir → communiquer → traiter

    Réponse : C — Acquérir → traiter → communiquer

    L'information suit toujours le même trajet : on l'ACQUIERT d'abord grâce aux capteurs, on la TRAITE ensuite dans la partie commande (comparaison avec la consigne, décision), et enfin on la COMMUNIQUE, soit à l'utilisateur via un afficheur, soit à la chaîne d'énergie sous forme d'ordre. Impossible de traiter une information qu'on n'a pas encore acquise !

  2. Comment appelle-t-on la structure de programmation « si … alors … sinon … » ?

    • A.Une boucle (structure qui répète des instructions)
    • B.Une variable (case mémoire qui stocke une valeur)
    • C.Une séquence (enchaînement des instructions dans l'ordre)
    • D.Une condition (ou instruction conditionnelle)Bonne réponse

    Réponse : D — Une condition (ou instruction conditionnelle)

    « Si … alors … sinon … » est une condition : le programme teste si quelque chose est vrai, puis choisit un chemin ou l'autre. La boucle sert à répéter, la séquence désigne simplement l'enchaînement des instructions de haut en bas, et la variable est une case mémoire qui stocke une valeur. Astuce : dans un cahier des charges, les mots « si » et « quand » annoncent presque toujours une condition.

  3. Quel est l'ordre correct des fonctions de la chaîne d'énergie ?

    • A.Convertir → alimenter → distribuer → transmettre
    • B.Distribuer → alimenter → transmettre → convertir
    • C.Alimenter → distribuer → convertir → transmettreBonne réponse
    • D.Transmettre → convertir → distribuer → alimenter

    Réponse : C — Alimenter → distribuer → convertir → transmettre

    L'énergie entre dans le système (ALIMENTER : secteur, pile, batterie), puis elle est orientée ou autorisée par un relais ou un interrupteur (DISTRIBUER), ensuite un moteur ou une résistance la change de forme (CONVERTIR), et enfin des engrenages ou une courroie l'acheminent jusqu'à l'endroit utile (TRANSMETTRE). C'est bien la chaîne d'information qui commande l'étape « distribuer ».

  4. Un thermostat exécute : « répéter indéfiniment [si température < 19 alors allumer le chauffage, sinon éteindre le chauffage] ». La pièce est à 21 °C. Que se passe-t-il ?

    • A.Le chauffage s'allume car 21 est supérieur à 19
    • B.Le chauffage reste éteint tant que la température ne descend pas sous 19 °CBonne réponse
    • C.Le chauffage clignote en s'allumant et s'éteignant à chaque tour de boucle
    • D.Le programme s'arrête car la condition est fausse

    Réponse : B — Le chauffage reste éteint tant que la température ne descend pas sous 19 °C

    Le test « température < 19 » est faux quand la pièce est à 21 °C : c'est donc la branche « sinon » qui s'exécute et le chauffage reste éteint. La boucle continue de tourner et de retester en permanence : dès que la température passera sous 19 °C, la condition deviendra vraie et le chauffage s'allumera. Attention : une condition fausse n'arrête jamais un programme, elle oriente simplement vers l'autre branche.

  5. Un élève programme un feu tricolore, mais la carte n'exécute le cycle qu'une seule fois puis s'arrête. Quelle est la cause la plus probable ?

    • A.Le capteur de luminosité est mal branché, ce qui empêche le programme de démarrer
    • B.Les instructions du cycle ne sont pas placées dans une boucle « répéter indéfiniment »Bonne réponse
    • C.Les LED sont grillées et ne peuvent plus s'allumer du tout, quel que soit le programme
    • D.La carte n'est pas alimentée correctement pendant toute l'exécution du programme

    Réponse : B — Les instructions du cycle ne sont pas placées dans une boucle « répéter indéfiniment »

    Le cycle s'est exécuté correctement une fois : donc l'alimentation fonctionne et les LED s'allument bien. Le problème est donc logique, pas matériel. Sans boucle infinie, le programme parcourt la séquence de haut en bas puis se termine : c'est exactement le comportement observé. Il suffit d'englober la séquence rouge-vert-orange dans un bloc « répéter indéfiniment ». Un feu tricolore n'a d'ailleurs besoin d'aucun capteur de luminosité.

  6. Soit : « mettre niveau à 10 ; répéter 3 fois [si niveau > 4 alors soustraire 3 à niveau, sinon ajouter 1 à niveau] ». Quelle est la valeur finale de niveau ?

    • A.1
    • B.4
    • C.5Bonne réponse
    • D.7

    Réponse : C — 5

    Il faut dérouler la trace tour par tour, car le test est réévalué à chaque passage. Tour 1 : niveau = 10, or 10 > 4 est vrai, donc niveau devient 10 − 3 = 7. Tour 2 : 7 > 4 est vrai, donc niveau devient 7 − 3 = 4. Tour 3 : 4 > 4 est FAUX (l'inégalité est stricte), on passe donc dans le « sinon » et niveau devient 4 + 1 = 5. Valeur finale : 5. Répondre 1, c'est avoir soustrait 3 les trois fois sans retester ; répondre 4, c'est s'être arrêté au deuxième tour.

  7. Dans un système automatisé, quel est le rôle d'un capteur ?

    • A.Transformer l'énergie électrique en mouvement
    • B.Transformer une grandeur physique en information utilisable par la partie commandeBonne réponse
    • C.Alimenter le système en énergie
    • D.Stocker le programme du système

    Réponse : B — Transformer une grandeur physique en information utilisable par la partie commande

    Le capteur est l'organe d'entrée du système : il « prend la mesure » du monde (température, présence, lumière, appui sur un bouton) et la transforme en un signal électrique que la carte programmable peut traiter. Transformer l'électricité en mouvement, c'est le rôle d'un actionneur (le moteur). Alimenter, c'est la fonction de la pile ou du secteur. Et le programme est stocké dans la mémoire du microcontrôleur.

  8. Parmi ces composants, lequel est un actionneur ?

    • A.Le moteur électrique du portailBonne réponse
    • B.Le bouton poussoir de l'interphone
    • C.Le capteur à ultrasons
    • D.La photorésistance

    Réponse : A — Le moteur électrique du portail

    Un actionneur produit une action visible en convertissant l'énergie reçue : le moteur transforme l'énergie électrique en mouvement de rotation. Les trois autres propositions sont des capteurs : le bouton poussoir renseigne le système sur un appui, le capteur à ultrasons mesure une distance, la photorésistance mesure la luminosité. Aucun des trois ne fait bouger quoi que ce soit.

  9. Qu'est-ce qu'un algorithme ?

    • A.Une suite finie d'instructions écrites dans un ordre précis pour résoudre un problèmeBonne réponse
    • B.Un composant électronique programmable
    • C.Un logiciel installé sur l'ordinateur du collège
    • D.Le langage de programmation utilisé par la carte

    Réponse : A — Une suite finie d'instructions écrites dans un ordre précis pour résoudre un problème

    L'algorithme, c'est la logique : la description ordonnée des étapes, écrite en français, avant toute traduction en blocs. Le composant programmable, c'est le microcontrôleur (le matériel). Le langage de programmation, c'est l'outil qui sert à écrire le programme. Un même algorithme peut donc être programmé dans plusieurs langages différents : la logique reste la même.

  10. Dans un programme, quelle structure utilise-t-on pour faire clignoter une LED dix fois de suite ?

    • A.Une condition « si … alors »
    • B.Une variable
    • C.Une boucle « répéter 10 fois »Bonne réponse
    • D.Une séquence de dix instructions différentes

    Réponse : C — Une boucle « répéter 10 fois »

    Dès qu'une action doit se répéter un nombre connu de fois, on utilise une boucle bornée : « répéter 10 fois [allumer, attendre, éteindre, attendre] ». Écrire dix fois la même séquence fonctionnerait aussi, mais c'est long, illisible et impossible à modifier facilement : ce n'est pas la bonne pratique. La condition sert à choisir, pas à répéter.

  11. Un radiateur électrique piloté par un thermostat : quel élément joue le rôle d'actionneur ?

    • A.Le capteur de température
    • B.La résistance chauffanteBonne réponse
    • C.Le microcontrôleur du thermostat
    • D.La consigne de 19 °C affichée à l'écran

    Réponse : B — La résistance chauffante

    L'actionneur est l'élément qui agit sur l'environnement : ici, la résistance chauffante convertit l'énergie électrique en chaleur. Le capteur de température est une entrée d'information. Le microcontrôleur assure le traitement : il compare la température mesurée à la consigne. Quant à la consigne de 19 °C, ce n'est pas un composant du tout, c'est une valeur de référence enregistrée dans le programme.

  12. À quoi sert une variable dans un programme ?

    • A.À répéter une action plusieurs fois
    • B.À relier physiquement le capteur à la carte programmable
    • C.À traduire le programme en langage machine
    • D.À mémoriser une valeur qui peut changer pendant l'exécutionBonne réponse

    Réponse : D — À mémoriser une valeur qui peut changer pendant l'exécution

    Une variable est une case mémoire portant un nom (compteur, temperature, score) dans laquelle le programme range une valeur qu'il pourra lire et modifier à tout moment. Répéter, c'est le rôle de la boucle. Le lien physique entre capteur et carte, ce sont les fils et les broches d'entrée. Et la traduction en langage machine est assurée par le logiciel de programmation au moment du téléversement.

S'entraîner sur ce chapitre

Ce chapitre compte 38 exercices corrigés dans l'application, avec le suivi de ta progression.

Commencer les exercices