Organigramme + pseudocode d'un programme IoT
1. Qu'est-ce qu'un algorithme ?
Un algorithme est une suite d'instructions précises, finies et non ambiguës permettant de résoudre un problème. Trois propriétés fondamentales :
- Précision : chaque instruction doit être comprise sans interprétation possible. Exemple : "ajouter 1 à la variable compteur" est précis ; "augmenter un peu le compteur" est ambigu.
- Finitude : l'algorithme doit se terminer après un nombre fini d'étapes. Une boucle infinie accidentelle viole cette propriété.
- Non-ambiguïté : le résultat est le même quel que soit l'exécutant (humain ou machine).
2. Structures algorithmiques fondamentales
Tout algorithme peut s'écrire avec trois structures de base :
- Séquence : les instructions s'exécutent les unes après les autres, dans l'ordre.
- Condition (sélection) : si une condition est vraie, exécuter le bloc A, sinon exécuter le bloc B.
- Boucle (itération) : répéter un bloc d'instructions tant qu'une condition est vraie (while) ou pour un nombre déterminé de répétitions (for).
3. Organigramme et pseudocode
L'organigramme (ordinogramme) est une représentation graphique normalisée (norme ISO 5807) utilisée en documentation technique industrielle.
| Symbole | Signification | Exemple |
|---|---|---|
| Ovale | Début / Fin | Début programme |
| Parallélogramme | Entrée / Sortie | Lire température, Afficher valeur |
| Rectangle | Opération / Traitement | Calculer moyenne |
| Losange | Décision / Condition | temp > 30°C ? |
Le pseudocode est un langage descriptif proche du français structuré, sans syntaxe stricte, qui sert de pont entre l'algorithme et l'implémentation réelle.
4. Exemple IoT : lecture d'un capteur DHT22
Problème : Lire la température toutes les 5 secondes. Si la température dépasse 30°C, allumer une LED rouge. Sinon, allumer une LED verte.
DEBUT
Initialiser le capteur DHT22 sur pin 4
Initialiser LED_rouge sur pin 7 en sortie
Initialiser LED_verte sur pin 8 en sortie
REPETER INDEFINIMENT
Lire température depuis DHT22
SI température > 30 ALORS
Allumer LED_rouge
Éteindre LED_verte
SINON
Allumer LED_verte
Éteindre LED_rouge
FIN SI
Attendre 5 secondes
FIN REPETER
FIN
5. Organigramme associé
Le même algorithme représenté en organigramme montrerait : Début → Rectangle "Initialiser capteur et LEDs" → Losange "temp > 30°C ?" (branche OUI → Allumer rouge/Éteindre verte ; branche NON → Allumer verte/Éteindre rouge) → Rectangle "Attendre 5s" → boucle retour vers la lecture.
a) Conception d'algorithme : Écrivez en pseudocode un algorithme qui lit la valeur d'un potentiomètre, la convertit en angle (0-180°) pour un servo-moteur, et attend 100 ms.
b) Trace d'exécution : Simulez l'algorithme avec les valeurs d'entrée 0V, 2.5V et 5V. Notez les sorties obtenues.
c) Organigramme : Dessinez l'organigramme correspondant à l'algorithme de la question a) sur papier ou avec draw.io.
d) BONUS — Implémentez l'algorithme en Arduino : Réalisez le programme complet de lecture potentiomètre et contrôle de servo.