Introduction aux Systemes Embarques

Les systemes embarques sont partout autour de nous ! De ta montre connectee au pilote automatique des avions, decouvre ce monde fascinant ou l'informatique rencontre l'electronique.

Difficulte:
25 min
+30 XP
Automobile
Mobile
Medical
Aeronautique

Objectifs du cours

  • Definir ce qu'est un systeme embarque
  • Identifier les systemes embarques dans notre quotidien
  • Comprendre la difference entre systeme embarque et ordinateur classique
  • Connaitre les domaines d'application des systemes embarques
  • Apprehender les contraintes specifiques de l'embarque

Erreurs courantes a eviter

  • Penser qu'un systeme embarque est toujours petit ou simple
  • Confondre systeme embarque et objet connecte (IoT)
  • Croire qu'un systeme embarque n'a pas de logiciel
  • Ignorer les contraintes temps reel et energetiques

**Definition**

Un **systeme embarque** (embedded system en anglais) est un systeme informatique specialise, concu pour realiser une ou plusieurs taches specifiques au sein d'un systeme plus large.

**Caracteristiques principales**

* **Dedie** : concu pour une fonction precise (contrairement a un PC polyvalent) * **Integre** : fait partie d'un systeme plus grand (voiture, appareil medical...) * **Autonome** : fonctionne sans intervention humaine permanente * **Contraint** : ressources limitees (memoire, energie, puissance)

**L'equation de l'embarque**

``` Systeme embarque = Materiel + Logiciel + Fonction specifique ```

**Exemples concrets**

| Appareil | Systeme embarque | Fonction | |----------|------------------|----------| | Voiture | ECU (Engine Control Unit) | Gestion moteur | | Machine a laver | Microcontroleur | Programme lavage | | Smartphone | Processeur ARM | Systeme complet | | Thermometre medical | Capteur + MCU | Mesure temperature | | Drone | Controleur de vol | Stabilisation |

**Ce qui n'est PAS un systeme embarque**

* Un ordinateur de bureau * Un serveur web * Un laptop (bien qu'il contienne des systemes embarques !)

Python
# Simulation d'un systeme embarque simple
# Exemple : thermostat intelligent

class ThermostatEmbarque:
    """
    Simulation d'un thermostat embarque
    - Ressources limitees (simule par des contraintes)
    - Fonction dediee : regulation temperature
    - Fonctionnement autonome
    """

    def __init__(self):
        # Memoire limitee (simule)
        self.memoire_max = 2048  # 2 Ko de RAM
        self.memoire_utilisee = 0

        # Parametres du systeme
        self.temperature_cible = 20.0
        self.hysteresis = 0.5
        self.chauffage_actif = False

        # Historique limite (contrainte memoire)
        self.historique = []
        self.historique_max = 10

    def lire_temperature(self, temp_simulee):
        """Simule la lecture d'un capteur"""
        # Dans un vrai systeme : lecture ADC
        return round(temp_simulee, 1)

    def decider_action(self, temperature):
        """Logique de regulation (simple mais efficace)"""
        if temperature < self.temperature_cible - self.hysteresis:
            self.chauffage_actif = True
            return "CHAUFFER"
        elif temperature > self.temperature_cible + self.hysteresis:
            self.chauffage_actif = False
            return "ARRETER"
        else:
            return "MAINTENIR"

    def enregistrer_mesure(self, temp, action):
        """Stockage avec contrainte memoire"""
        if len(self.historique) >= self.historique_max:
            self.historique.pop(0)  # Supprime le plus ancien
        self.historique.append((temp, action))

    def cycle_principal(self, temperature_actuelle):
        """Boucle principale du systeme embarque"""
        temp = self.lire_temperature(temperature_actuelle)
        action = self.decider_action(temp)
        self.enregistrer_mesure(temp, action)
        return f"Temp: {temp}C | Action: {action} | Chauffage: {'ON' if self.chauffage_actif else 'OFF'}"

# Simulation
print("=== SIMULATION THERMOSTAT EMBARQUE ===\n")
thermostat = ThermostatEmbarque()
thermostat.temperature_cible = 21.0

# Simule des variations de temperature
temperatures = [18.0, 19.0, 20.0, 21.0, 22.0, 21.5, 21.0, 20.5, 20.0, 19.5]

for i, temp in enumerate(temperatures):
    resultat = thermostat.cycle_principal(temp)
    print(f"Cycle {i+1}: {resultat}")

print(f"\nHistorique (limite a {thermostat.historique_max} entrees):")
for mesure in thermostat.historique:
    print(f"  {mesure[0]}C -> {mesure[1]}")

Quiz de validation

1. Quelle est la caracteristique principale d'un systeme embarque ?

2. Combien d'ECU (calculateurs embarques) peut contenir une voiture moderne ?

3. Quelle contrainte N'EST PAS typique des systemes embarques ?

4. Quel appareil contient le plus de systemes embarques ?

5. Que signifie TinyML ?

Pixel