Retour à la page d'accueilSNT · Seconde · Changer de matière
Commencer gratuitement
Seconde · SNT
Graphes, données structurées, localisation et programmation embarquée · Informatique embarquée

Capteurs, actionneurs et commandes

Le soir, l'éclairage d'un abribus s'allume tout seul, sans que personne n'appuie sur un bouton. Comment « sait-il » qu'il fait nuit, et comment passe-t-il à l'action ? C'est ce que font tous les systèmes embarqués : une petite carte programmable lit des mesures, décide, puis commande un appareil.

Capteur, carte de commande, actionneur

Un système embarqué est un petit système informatique intégré à un objet (une serre, un portail, une montre connectée). Il suit toujours la même chaîne.

Chaîne d'un système embarqué : le capteur envoie une mesure à la carte de commande, qui commande l'actionneur ; l'interface homme-machine est reliée à la carte. CapteurCarte decommandeActionneur mesureordreIHM : écran, boutons
  • Le capteur mesure une grandeur physique (température, lumière, humidité, angle) et la transforme en nombre.

  • La carte de commande (microcontrôleur) exécute le programme : elle compare la mesure à des valeurs et décide.

  • L'actionneur agit sur le monde réel (ventilateur, vanne, moteur, lampe).

  • L'IHM (interface homme-machine) permet à l'utilisateur de dialoguer avec la carte : afficheur, boutons, application sur téléphone.

Un actionneur « tout ou rien » (TOR) n'a que deux états : allumé ou éteint, ouvert ou fermé.

Entraîne-toi★☆☆Pas commencé
Dans un système embarqué (carte programmable), distinguer un capteur et un actionneur. Donner un exemple de chacun dans une serre automatisée.

Dans un système embarqué (carte programmable), distinguer un capteur et un actionneur. Donner un exemple de chacun dans une serre automatisée.

Résoudre

Lire une mesure et prendre une décision

Un capteur renvoie un nombre. La carte le compare à un seuil avec une instruction conditionnelle : « si… alors… sinon… ».

Un programme typique tourne en boucle :

while True:

    T = lire_temperature()

    if T > 28:

        ventilateur = True

    else:

        ventilateur = False

Attention à l'inégalité : « $T>28$ » est strict. Pour $T=28$, la condition est fausse.

Les capteurs fournissent souvent un entier de 0 à $2^{10}-1 = 1\,023$ (conversion sur 10 bits). Cela donne $1\,024$ valeurs différentes : de 0 à 1 023, on compte aussi le 0. Pour convertir en pourcentage, on utilise la proportionnalité :

$$\text{pourcentage} = \dfrac{\text{valeur}}{1\,023} \times 100$$
Entraîne-toi★☆☆Pas commencé
Un programme lit la température $T$ toutes les secondes et allume un ventilateur si $T>28$. a) Donner la décision prise pour $T=25$, $T=28$ et $T=30$. b) Écrire la…

Un programme lit la température $T$ toutes les secondes et allume un ventilateur si $T>28$.

  1. a) Donner la décision prise pour $T=25$, $T=28$ et $T=30$.
  1. b) Écrire la condition en langage naturel.
Résoudre
Entraîne-toi★☆☆Pas commencé
Un capteur de luminosité renvoie une valeur entière de 0 (obscurité) à 1 023 (lumière maximale). a) Combien de valeurs différentes peut-il renvoyer ? b) Calculer le…

Un capteur de luminosité renvoie une valeur entière de 0 (obscurité) à 1 023 (lumière maximale).

  1. a) Combien de valeurs différentes peut-il renvoyer ?
  1. b) Calculer le pourcentage de lumière pour une valeur de 512 (arrondir à l'unité).
Résoudre

Coder et décoder des commandes

Une carte reçoit des ordres sous forme de caractères. Il faut une table de correspondance entre chaque caractère et une action.

Caractère Ordre physique
O ouvrir
F fermer
S stopper

Tout autre caractère (par exemple « X ») est invalide : le programme doit l'ignorer ou signaler une erreur, et ne rien faire de dangereux.

Une commande peut aussi contenir un paramètre. Exemple : « A50 » = lettre d'ordre (A pour avancer) suivie d'un nombre sur deux chiffres (la vitesse en %). Pour « R30 », on recule à 30 %.

Pour une séquence « A50;R20;S00 », on sépare d'abord les commandes au point-virgule, puis on décode chacune. Si chaque commande dure $t$ secondes à la vitesse $v$ (en m/s), la distance algébrique vaut $v \times t$, positive en marche avant et négative en marche arrière.

Entraîne-toi★★☆Pas commencé
Un portail est commandé à distance par des caractères envoyés à la carte : « O » ouvre, « F » ferme, « S » stoppe. a) Construire la table de correspondance caractère ↔…

Un portail est commandé à distance par des caractères envoyés à la carte : « O » ouvre, « F » ferme, « S » stoppe.

  1. a) Construire la table de correspondance caractère ↔ ordre physique.
  1. b) Que doit faire le programme si le caractère reçu est « X » ?
Résoudre
Entraîne-toi★★☆Pas commencé
Une commande « A50 » signifie : Avancer à la vitesse 50 % ; « R30 » : Reculer à 30 % ; « S00 » : Stopper. La vitesse est toujours écrite avec deux chiffres (trois…

Une commande « A50 » signifie : Avancer à la vitesse 50 % ; « R30 » : Reculer à 30 % ; « S00 » : Stopper. La vitesse est toujours écrite avec deux chiffres (trois chiffres pour 100 %).

  1. a) Décoder « A75 », « R10 » et « S00 ».
  1. b) Écrire la commande pour avancer à 100 %.
  1. c) Un moteur à 100 % tourne à 3 000 tours/min. Calculer sa vitesse pour « A50 » en supposant la relation proportionnelle.
Résoudre
Entraîne-toi★★★Pas commencé
Un robot reçoit une chaîne de commandes de 3 caractères séparées par des points-virgules : « A50;R20;S00 ». Chaque commande dure 2 secondes ; la vitesse de 100 %…

Un robot reçoit une chaîne de commandes de 3 caractères séparées par des points-virgules : « A50;R20;S00 ». Chaque commande dure 2 secondes ; la vitesse de 100 % correspond à 0,5 m/s en marche avant (A) et en arrière (R).

  1. a) Décoder la séquence et calculer la distance algébrique parcourue (positif = avant).
  1. b) Le robot revient-il à son point de départ ? Justifier.
  1. c) Proposer une vérification que le programme doit effectuer pour rejeter une commande invalide telle que « A5X ».
Résoudre

Deux seuils pour éviter les à-coups

Imagine un chauffage qui s'allume à 19 °C et s'éteint à 19 °C. Si la température oscille autour de 19 °C, il s'allume et s'éteint sans cesse : c'est mauvais pour l'appareil. On utilise donc deux seuils : un pour allumer, un autre, plus haut, pour éteindre. Entre les deux, le système garde son état précédent.

Zone entre deux seuils : sous le seuil bas, la vanne s'ouvre ; au-dessus du seuil haut, elle se ferme ; entre les deux, elle garde son état. seuil bas (30) : on ouvre en dessousseuil haut (60) : on ferme au-dessuson garde l'état précédent

La même idée sert pour l'IHM d'un chauffage connecté : l'afficheur montre la température, les boutons « + » et « − » modifient la consigne dans ses limites (par exemple de 16 °C à 24 °C). Si l'utilisateur appuie sur « + » à 24 °C, le programme ignore l'appui, pour ne pas dépasser la limite. Voici l'algorithme en Python (les fonctions lire_temperature, bouton_plus, bouton_moins et afficher sont supposées définies) :

etat = False

consigne = 20

while True:

    T = lire_temperature()

    if bouton_plus() and consigne < 24:

        consigne = consigne + 1

    if bouton_moins() and consigne > 16:

        consigne = consigne - 1

    if T < consigne - 1:

        etat = True

    elif T > consigne + 1:

        etat = False

    afficher(T)
Entraîne-toi★★☆Pas commencé
Un arrosage automatique lit l'humidité $H$ du sol (en %) toutes les 10 minutes. Il ouvre la vanne si $H<30$ et la ferme si $H\ge 60$ ; entre les deux, il garde l'état…

Un arrosage automatique lit l'humidité $H$ du sol (en %) toutes les 10 minutes. Il ouvre la vanne si $H<30$ et la ferme si $H\ge 60$ ; entre les deux, il garde l'état précédent. Les mesures successives sont : 45 ; 28 ; 40 ; 62 ; 50. La vanne est fermée au départ.

  1. a) Donner l'état de la vanne après chaque mesure.
  1. b) Expliquer l'intérêt d'avoir deux seuils différents.
Résoudre
Entraîne-toi★★★Pas commencé
On veut réaliser une IHM (interface homme-machine) pour un chauffage connecté : un afficheur montre la température mesurée, deux boutons « + » et « − » règlent la…

On veut réaliser une IHM (interface homme-machine) pour un chauffage connecté : un afficheur montre la température mesurée, deux boutons « + » et « − » règlent la consigne de 16 °C à 24 °C par pas de 1 °C. Le chauffage s'allume si $T<\text{consigne}-1$ et s'éteint si $T>\text{consigne}+1$.

  1. a) Pour une consigne de 20 °C, donner l'état du chauffage pour $T=18$, $T=19,5$ et $T=21,5$ (les trois mesures se succèdent dans cet ordre, le chauffage étant initialement éteint).
  1. b) Que doit faire le programme si l'utilisateur appuie sur « + » alors que la consigne est de 24 °C ?
  1. c) Écrire l'algorithme complet en langage naturel (boucle, lecture, décision).
Résoudre

Convertir une mesure en grandeur physique

Quand un capteur d'angle renvoie $v$ proportionnellement à l'angle, on utilise un produit en croix. Pour $v$ entre 0 et 1 023 et un angle entre 0° et 270° :

$$\text{angle} = \dfrac{270}{1\,023}\times v$$

La résolution est la plus petite variation que le capteur peut distinguer. Ici, il y a $1\,023$ pas pour 270°, donc $\dfrac{270}{1\,023}$ degré par pas.

Entraîne-toi★★★Pas commencé
Un capteur d'angle renvoie $v$ entre 0 et 1 023 pour un angle de 0° à 270°, de manière proportionnelle. Un servomoteur doit se placer à cet angle. a) Établir la formule…

Un capteur d'angle renvoie $v$ entre 0 et 1 023 pour un angle de 0° à 270°, de manière proportionnelle. Un servomoteur doit se placer à cet angle.

  1. a) Établir la formule de l'angle en fonction de $v$.
  1. b) Calculer l'angle pour $v=341$ (arrondir au dixième).
  1. c) Donner le nombre de valeurs différentes et la résolution angulaire en degrés par pas (arrondir au centième).
Résoudre

L'essentiel

  • Un système embarqué : capteur → carte de commande → actionneur, avec une IHM pour l'utilisateur.

  • Une décision est une condition sur la mesure : attention aux inégalités strictes ou larges.

  • Un capteur sur 10 bits renvoie $1\,024$ valeurs (0 à 1 023) ; on convertit par proportionnalité.

  • Une commande se décode avec une table de correspondance ; on vérifie toujours sa validité.

  • Deux seuils (allumer, éteindre) évitent les à-coups : entre eux, on garde l'état précédent.

Retour au début : l'éclairage de l'abribus utilise un capteur de lumière, une carte qui compare la mesure à un seuil, et un actionneur TOR : la lampe.

Voir tous les exercices de cette partie