Aller au contenu principal
AccueilSIInformatique embarquee

Informatique embarquee

Arduino, Python, algorithmes, systemes embarques

Retour Sciences de l'Ingenieur

Notions cles a retenir

Variable

Espace memoire nomme qui stocke une valeur

x = 42 (Python)

Boucle for

Repeter un bloc un nombre defini de fois

for i in range(n):

PWM

Modulation de largeur d'impulsion

Vmoy = alpha x Vmax

CAN

Convertisseur analogique-numerique

N = Ve x 2^n / Vref

GRAFCET

Description sequentielle d'un automatisme

Etape → Transition → Etape

I2C

Bus de communication 2 fils multi-peripheriques

SDA (donnees) + SCL (horloge)

Chapitres du programme

Algorithmique de base

1ere

Structures fondamentales de la programmation

L'algorithmique est le socle de la programmation en SI. Un algorithme est une suite finie d'instructions permettant de resoudre un probleme. Les variables stockent des donnees (entier, flottant, chaine, booleen). Les structures conditionnelles (if/elif/else) permettent de prendre des decisions. Les boucles (for pour un nombre connu d'iterations, while pour une condition) repetent des instructions. Les fonctions structurent le code en blocs reutilisables.

Variables et types de donneesStructures conditionnelles (if/else)Boucles (for, while)Fonctions et parametres

Programmation Python

1ere-Term

Langage utilise en SI pour le traitement de donnees et la simulation

Python est le langage de reference en SI pour le traitement de donnees experimentales. On l'utilise pour lire des fichiers CSV issus de mesures (capteurs, essais mecaniques), tracer des courbes avec matplotlib, et effectuer des calculs scientifiques avec numpy. Les listes permettent de stocker des series de mesures, et les dictionnaires associent des cles a des valeurs. La maitrise de Python est evaluee a l'ecrit et au projet.

Syntaxe PythonListes et dictionnairesFichiers CSV et traitement de donneesBibliotheques : matplotlib, numpy

Microcontroleurs et Arduino

1ere-Term

Programmer un systeme embarque pour commander des actionneurs

Un microcontroleur (Arduino, STM32) est un petit ordinateur integre dans un circuit. Il possede des entrees (connectees aux capteurs) et des sorties (connectees aux actionneurs). Les entrees analogiques utilisent un CAN integre. Les sorties PWM permettent de moduler la puissance envoyee a un actionneur (variation de vitesse d'un moteur par exemple). Le programme est ecrit en C/C++ (Arduino) ou en MicroPython, televerse dans le microcontroleur et s'execute en boucle.

Architecture d'un microcontroleurEntrees/sorties numeriques et analogiquesPWM (Pulse Width Modulation)Communication serie (UART, I2C, SPI)

Systemes logiques et automates

1ere-Term

Programmation sequentielle et GRAFCET

Le GRAFCET (GRAphe Fonctionnel de Commande par Etapes et Transitions) decrit le comportement sequentiel d'un systeme automatise. Chaque etape est associee a des actions, et les transitions sont franchies quand une condition logique (receptivite) est vraie. On distingue les divergences en ET (parallelisme) et en OU (choix). Le GRAFCET se traduit directement en programme pour un automate ou un microcontroleur avec une machine a etats.

GRAFCET : etapes, transitions, actionsVariables d'entree et de sortieDivergence et convergenceImplementation sur microcontroleur

Reseaux et communication

Term

Protocoles de communication entre systemes

Les systemes embarques communiquent entre eux et avec l'exterieur via des protocoles normalises. L'UART est le protocole serie le plus simple (2 fils : TX et RX). Le SPI est rapide mais necessite plus de fils. L'I2C permet de connecter plusieurs peripheriques sur 2 fils avec un systeme d'adressage. Le Bluetooth et le WiFi permettent la communication sans fil. L'IoT (Internet des objets) connecte les systemes embarques a Internet pour le suivi et le controle a distance.

Protocoles serie (UART, SPI, I2C)Communication sans fil (Bluetooth, WiFi)Protocole TCP/IPInternet des objets (IoT)

Simulation et modelisation numerique

Term

Simuler le comportement d'un systeme par ordinateur

La simulation numerique permet de predire le comportement d'un systeme avant de le fabriquer. On cree un modele numerique (CAO 3D, schema electronique, programme) et on le simule pour verifier qu'il repond aux exigences du cahier des charges. L'ecart entre le modele et le reel est analyse pour ameliorer le modele. En SI, on utilise des logiciels comme SolidWorks (mecanique), Proteus (electronique) ou Python (traitement de donnees).

Modele numerique vs modele reelSimulation multi-physiqueValidation du modele par l'experimentationEcart modele/reel et optimisation

Exemples de code

Lecture capteur (Arduino)

int capteur = A0;
int valeur;

void setup() {
  Serial.begin(9600);
}

void loop() {
  valeur = analogRead(capteur);
  float tension = valeur * 5.0 / 1023;
  Serial.println(tension);
  delay(100);
}

Traitement de donnees (Python)

import matplotlib.pyplot as plt
import csv

temps, tension = [], []
with open('mesures.csv') as f:
    reader = csv.reader(f, delimiter=';')
    next(reader)  # en-tete
    for ligne in reader:
        temps.append(float(ligne[0]))
        tension.append(float(ligne[1]))

plt.plot(temps, tension)
plt.xlabel('Temps (s)')
plt.ylabel('Tension (V)')
plt.title('Mesure capteur')
plt.grid()
plt.show()

Ecosysteme de l'informatique embarquee

Langages

  • Python (traitement de donnees)
  • C/C++ (Arduino, STM32)
  • MicroPython (Raspberry Pi Pico)

Cartes

  • Arduino Uno / Mega
  • STM32 Nucleo
  • Raspberry Pi Pico

Protocoles

  • UART (serie)
  • I2C (multi-peripheriques)
  • SPI (rapide, 4 fils)

Informatique au Bac SI

Les questions d'informatique portent sur la lecture/completion d'algorithmes, l'interpretation de GRAFCET, et le traitement de donnees en Python.

Astuces pour le bac

Lire un algorithme pas a pas

Executer l'algorithme a la main avec des valeurs d'exemple en faisant un tableau de suivi des variables a chaque etape.

GRAFCET : suivre les transitions

Pour determiner l'evolution d'un GRAFCET, verifier a chaque etape si la receptivite de la transition suivante est vraie.

EdTech AI Assistant