Aller au contenu

Programmation et pilotage des systèmes

Première · Sciences de l'ingénieur · Expérimenter et mesurer

Expérimenter et mesurer

Chaîne d'information et bases de la programmation

Un système pluritechnique n'est pas qu'une mécanique : c'est un objet qui perçoit son environnement, décide et agit. Cette intelligence embarquée, c'est la chaîne d'information, et c'est un programme qui l'anime. En SI, tu dois savoir lire un programme, en prévoir le comportement, et le modifier pour piloter un actionneur.

Type de capteurNature du signalExemples
Tout ou rien (TOR)Deux états seulement : 0 ou 1Interrupteur de fin de course, détecteur de présence, bouton
AnalogiqueTension continue variable, à numériserCapteur de température LM35, photorésistance, potentiomètre
NumériqueInformation codée, lue par un busCapteur I2C d'humidité, accéléromètre, module GPS

Variables et types
Une variable est une case mémoire nommée qui contient une valeur. En Python, le type est déduit automatiquement de la valeur : seuil = 25 crée un entier (int), tension = 3.3 un flottant (float), nom = "capteur1" une chaîne (str) et alarme = True un booléen (bool). Le booléen est le type roi en SI : c'est lui qui porte les résultats des tests.

Les trois structures de contrôle

  • La SÉQUENCE : les instructions s'exécutent l'une après l'autre, de haut en bas.
  • Le TEST (if / elif / else) : le programme choisit un chemin selon qu'une condition est vraie ou fausse.
  • La BOUCLE : for pour un nombre de tours connu à l'avance, while pour répéter tant qu'une condition reste vraie.

Expérimenter et mesurer

Piloter un système réel : numérisation, PWM et boucle de régulation

Entre le capteur analogique et le programme, il y a un traducteur : le convertisseur analogique-numérique. Et entre le programme et le moteur, il y a un doseur : le signal PWM. Comprendre ces deux interfaces, c'est comprendre comment un microcontrôleur agit sur le monde physique.

RésolutionNombre de niveauxQuantum sur 0-5 V
8 bits256environ 19,5 mV
10 bits1 024environ 4,9 mV
12 bits4 096environ 1,2 mV

Le CAN prélève des échantillons à intervalles réguliers : c'est l'échantillonnage. La période d'échantillonnage Te et la fréquence fe sont liées par fe = 1 / Te. Une période de 20 ms (0,02 s) correspond ainsi à une fréquence de 50 Hz. Plus on échantillonne vite, plus le signal reconstitué est fidèle — mais plus le microcontrôleur travaille.

Commande en boucle ouverte, commande en boucle fermée
En boucle ouverte, le système applique une commande sans jamais vérifier le résultat : simple, mais sensible aux perturbations (un moteur commandé à 50 % ralentit dès que la charge augmente). En boucle fermée (asservissement), un capteur mesure la grandeur de sortie, un comparateur calcule l'écart = consigne − mesure, et un correcteur ajuste la commande jusqu'à annuler cet écart.

CritèreBoucle ouverteBoucle fermée
Capteur de sortieAbsentIndispensable
Réaction aux perturbationsAucuneCorrection automatique
PrécisionDépend du réglage initialÉlevée, l'écart est réduit en continu
Complexité et coûtFaiblesPlus élevés (capteur + correcteur)
ExempleGrille-pain à minuterieRégulateur de vitesse d'une voiture

Exercices corrigés

  1. Quelles sont, dans l'ordre, les trois fonctions de la chaîne d'information ?

    • A.Alimenter, Distribuer, Convertir
    • B.Acquérir, Traiter, CommuniquerBonne réponse
    • C.Mesurer, Afficher, Stocker
    • D.Traiter, Acquérir, Transmettre

    Réponse : B — Acquérir, Traiter, Communiquer

    La chaîne d'information ACQUIERT l'information via les capteurs, la TRAITE dans le microcontrôleur, puis la COMMUNIQUE (affichage, envoi vers un autre système) et envoie les ordres à la chaîne d'énergie. Alimenter / Distribuer / Convertir, ce sont les fonctions de la chaîne d'ÉNERGIE. Et on ne peut évidemment pas traiter avant d'avoir acquis.

  2. Quelle structure utilise-t-on pour répéter des instructions TANT QU'une condition reste vraie, sans connaître à l'avance le nombre de tours ?

    • A.La boucle for
    • B.L'instruction if
    • C.La boucle whileBonne réponse
    • D.La fonction return

    Réponse : C — La boucle while

    La boucle while répète tant que sa condition est vraie : c'est l'outil idéal quand le nombre de tours dépend d'un événement extérieur (attendre qu'un capteur se déclenche, par exemple). La boucle for sert quand le nombre de tours est connu à l'avance. Le if teste UNE fois sans répéter, et return renvoie le résultat d'une fonction.

  3. Un microcontrôleur échantillonne un capteur toutes les 20 ms. Quelle est la fréquence d'échantillonnage ?

    • A.50 HzBonne réponse
    • B.20 Hz
    • C.0,02 Hz
    • D.2 000 Hz

    Réponse : A — 50 Hz

    fe = 1 / Te, avec Te en secondes : 20 ms = 0,02 s, donc fe = 1 / 0,02 = 50 Hz. Le système prélève donc 50 mesures par seconde. Répondre 20 Hz, c'est reprendre le nombre de l'énoncé sans conversion ; répondre 0,02 Hz, c'est avoir donné la période au lieu de la fréquence.

  4. Un moteur est alimenté en PWM sous 12 V avec un rapport cyclique de 25 %. Quelle tension moyenne voit-il ?

    • A.12 V
    • B.48 V
    • C.3 VBonne réponse
    • D.9 V

    Réponse : C — 3 V

    En PWM, la tension moyenne vaut alpha × tension d'alimentation = 0,25 × 12 = 3 V. Le moteur tourne donc lentement. Répondre 9 V, c'est avoir pris le complément (75 %), c'est-à-dire la part du temps à l'état bas. Répondre 12 V, c'est oublier que le signal n'est haut qu'un quart du temps, et 48 V dépasse la tension d'alimentation : impossible.

  5. Un capteur à ultrasons reçoit son écho 2 ms après l'émission. La vitesse du son vaut 340 m/s. À quelle distance se trouve l'obstacle ?

    • A.0,68 m
    • B.0,34 mBonne réponse
    • C.1,7 m
    • D.680 m

    Réponse : B — 0,34 m

    L'onde parcourt d = v × t = 340 × 0,002 = 0,68 m. Mais cette distance est un ALLER-RETOUR : l'obstacle est donc à 0,68 / 2 = 0,34 m, soit 34 cm. Répondre 0,68 m, c'est oublier de diviser par 2, l'erreur classique de ce montage. Répondre 680 m, c'est avoir gardé les millisecondes sans les convertir en secondes.

  6. Dans une commande en boucle fermée, comment se calcule l'écart traité par le correcteur ?

    • A.écart = mesure − perturbation
    • B.écart = consigne × mesure
    • C.écart = consigne + mesure
    • D.écart = consigne − mesureBonne réponse

    Réponse : D — écart = consigne − mesure

    Le comparateur soustrait la mesure renvoyée par le capteur à la consigne demandée : écart = consigne − mesure. Le correcteur agit ensuite pour ramener cet écart vers zéro. C'est le principe même de l'asservissement : sans cette soustraction, le système ne saurait pas s'il est en avance ou en retard sur sa consigne. Une somme ou un produit n'aurait aucun sens physique ici.

  7. Un moteur piloté en PWM sous 12 V tourne à 800 tr/min avec un rapport cyclique de 40 %. Sa vitesse est proportionnelle à la tension moyenne appliquée. Quelle vitesse atteindra-t-il à 60 % ?

    • A.1 200 tr/minBonne réponse
    • B.820 tr/min
    • C.960 tr/min
    • D.1 600 tr/min

    Réponse : A — 1 200 tr/min

    Deux façons d'y arriver. Par les tensions : à 40 %, la tension moyenne vaut 0,40 × 12 = 4,8 V pour 800 tr/min, soit un rapport de 800 / 4,8 = 166,7 tr/min par volt ; à 60 %, la tension vaut 0,60 × 12 = 7,2 V, donc 166,7 × 7,2 = 1 200 tr/min. Par proportionnalité directe : 800 × (60 / 40) = 800 × 1,5 = 1 200 tr/min. Répondre 820 tr/min, c'est avoir ajouté les 20 points de pourcentage comme s'ils étaient des tours ; répondre 1 600, c'est avoir doublé la vitesse alors que le rapport cyclique n'a été multiplié que par 1,5.

  8. Quel est le rôle d'un capteur dans un système ?

    • A.Transformer une grandeur physique en un signal exploitableBonne réponse
    • B.Convertir l'énergie électrique en mouvement
    • C.Doser l'énergie envoyée au moteur
    • D.Afficher une information pour l'utilisateur

    Réponse : A — Transformer une grandeur physique en un signal exploitable

    Le capteur est l'entrée de la chaîne d'information : il traduit une grandeur physique (température, position, présence) en un signal électrique lisible par le microcontrôleur. Convertir l'énergie en mouvement, c'est le rôle de l'ACTIONNEUR (moteur, vérin) ; doser l'énergie, celui du PRÉACTIONNEUR (variateur, relais) ; afficher, celui de la fonction Communiquer.

  9. En Python, quel est le type de la variable créée par l'instruction tension = 3.3 ?

    • A.str (chaîne de caractères)
    • B.bool (booléen)
    • C.int (entier)
    • D.float (nombre à virgule flottante)Bonne réponse

    Réponse : D — float (nombre à virgule flottante)

    La valeur 3.3 comporte un point décimal : Python en fait un float. Un int aurait été obtenu avec 3 (sans décimale), un str avec des guillemets autour de la valeur, et un bool avec True ou False. Ce détail compte en SI : une division de deux entiers avec l'opérateur / renvoie toujours un float, même quand le résultat tombe juste.

  10. Combien de fois s'exécute le corps de la boucle « for i in range(5) : » ?

    • A.4 fois
    • B.6 fois
    • C.5 foisBonne réponse
    • D.Une infinité de fois

    Réponse : C — 5 fois

    range(5) produit les valeurs 0, 1, 2, 3, 4 : cinq valeurs, donc cinq tours de boucle. Le piège tient à ce que la numérotation commence à 0 et que la valeur 5 est EXCLUE. Répondre 6, c'est compter à la fois 0 et 5 ; répondre 4, c'est oublier le tour où i vaut 0.

  11. Qu'est-ce qui distingue un capteur tout ou rien (TOR) d'un capteur analogique ?

    • A.Le capteur TOR est plus précis que l'analogique
    • B.Le capteur TOR ne délivre que deux états, alors que l'analogique délivre une grandeur continueBonne réponse
    • C.Le capteur analogique ne nécessite aucune conversion pour être lu par un microcontrôleur
    • D.Le capteur TOR mesure une température, l'analogique une position

    Réponse : B — Le capteur TOR ne délivre que deux états, alors que l'analogique délivre une grandeur continue

    Un capteur TOR (interrupteur de fin de course, détecteur de présence) ne renvoie que 0 ou 1 : présent ou absent. Un capteur analogique délivre une tension qui varie continûment avec la grandeur mesurée, et qui doit donc passer par un convertisseur analogique-numérique pour être exploitée. Le TOR n'est pas plus précis, il est simplement plus simple, et la nature de la grandeur mesurée n'a rien à voir avec la distinction.

  12. Que vaut s après l'exécution de : s = 0 puis « for i in range(1, 5) : s = s + i » ?

    • A.10Bonne réponse
    • B.15
    • C.6
    • D.5

    Réponse : A — 10

    range(1, 5) produit 1, 2, 3, 4 (la borne 5 est exclue). La somme vaut donc 1 + 2 + 3 + 4 = 10. Trace d'exécution : s vaut 1, puis 3, puis 6, puis 10. Répondre 15, c'est avoir inclus le 5 par erreur ; répondre 6, c'est s'être arrêté à i = 3.

S'entraîner sur ce chapitre

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

Commencer les exercices