Capteurs et Actionneurs

Les capteurs sont les yeux et les oreilles de nos systemes embarques, tandis que les actionneurs sont leurs muscles ! Ensemble, ils permettent a la machine d'interagir avec le monde reel.

Difficulte:
40 min
+45 XP
Temperature
Lumiere
Distance
Son

Objectifs du cours

  • Distinguer capteur et actionneur
  • Comprendre la chaine capteur-traitement-actionneur
  • Connaitre les principaux types de capteurs et leur fonctionnement
  • Decouvrir les actionneurs courants (moteurs, LED, relais)
  • Programmer la lecture de capteurs et le controle d'actionneurs

Erreurs courantes a eviter

  • Confondre capteur (mesure) et actionneur (agit)
  • Oublier que les capteurs analogiques necessitent une conversion
  • Ne pas proteger les entrees avec des resistances pull-up/pull-down
  • Alimenter un actionneur directement depuis un GPIO (courant insuffisant)

**La boucle de perception-action**

Un systeme embarque interactif suit toujours ce schema :

``` ENVIRONNEMENT | v [CAPTEUR] -----> [TRAITEMENT] -----> [ACTIONNEUR] (mesure) (microcontroleur) (action) ^ | | v +-------------<------------------+ ```

**CAPTEUR (Sensor)**

* **Role** : Mesurer une grandeur physique * **Entree** : Phenomene physique (temperature, lumiere, mouvement...) * **Sortie** : Signal electrique (tension, courant, numerique)

Exemples : thermometre, photoresistance, accelerometre, microphone

**ACTIONNEUR (Actuator)**

* **Role** : Produire une action physique * **Entree** : Signal electrique de commande * **Sortie** : Mouvement, lumiere, son, chaleur...

Exemples : moteur, LED, haut-parleur, relais, electrovanne

**Analogie humaine**

| Humain | Systeme embarque | |--------|------------------| | Yeux | Capteur de lumiere, camera | | Oreilles | Microphone | | Peau | Capteur de temperature, pression | | Muscles | Moteurs | | Cordes vocales | Haut-parleur |

Python / MicroPython
# Simulation d'une boucle capteur-traitement-actionneur

class SystemeEmbarque:
    """
    Exemple : thermostat automatique
    - Capteur : sonde de temperature
    - Traitement : comparaison avec consigne
    - Actionneur : chauffage (relais)
    """

    def __init__(self):
        self.consigne = 20.0  # Temperature souhaitee
        self.hysteresis = 0.5  # Marge pour eviter oscillations
        self.chauffage_actif = False

    def lire_capteur(self, temperature_simulee):
        """CAPTEUR : mesure la temperature"""
        # Dans la realite : lecture ADC d'une thermistance
        print(f"[CAPTEUR] Temperature mesuree: {temperature_simulee}C")
        return temperature_simulee

    def traiter(self, temperature):
        """TRAITEMENT : decide de l'action"""
        if temperature < self.consigne - self.hysteresis:
            decision = "CHAUFFER"
        elif temperature > self.consigne + self.hysteresis:
            decision = "ARRETER"
        else:
            decision = "MAINTENIR"

        print(f"[TRAITEMENT] Consigne: {self.consigne}C -> Decision: {decision}")
        return decision

    def commander_actionneur(self, decision):
        """ACTIONNEUR : agit sur le chauffage"""
        if decision == "CHAUFFER":
            self.chauffage_actif = True
            print("[ACTIONNEUR] Chauffage ACTIVE")
        elif decision == "ARRETER":
            self.chauffage_actif = False
            print("[ACTIONNEUR] Chauffage DESACTIVE")
        else:
            etat = "actif" if self.chauffage_actif else "inactif"
            print(f"[ACTIONNEUR] Chauffage maintenu ({etat})")

    def cycle(self, temperature):
        """Execute un cycle complet"""
        print(f"\n{'='*50}")
        temp = self.lire_capteur(temperature)
        decision = self.traiter(temp)
        self.commander_actionneur(decision)
        return self.chauffage_actif

# Simulation
print("=== SIMULATION THERMOSTAT ===")
thermostat = SystemeEmbarque()

# Evolution de temperature
temperatures = [18.0, 19.0, 19.8, 20.5, 21.0, 20.5, 20.0, 19.5, 19.0, 19.5]

for temp in temperatures:
    thermostat.cycle(temp)

Quiz de validation

1. Quelle est la difference entre un capteur et un actionneur ?

2. Quel capteur utilise des ultrasons pour mesurer la distance ?

3. Pourquoi utilise-t-on un pont en H pour controler un moteur DC ?

4. Qu'est-ce que le debouncing d'un bouton ?

5. Comment controle-t-on la position d'un servomoteur ?

Pixel