Pilotage par micro-contrôleur (Arduino)
Introduction
Le pilotage par micro-contrôleur est une compétence essentielle dans le domaine des sciences de l'ingénieur. Grâce à des plateformes comme Arduino, il est possible de concevoir des systèmes automatisés qui interagissent avec le monde physique. Ce cours vous permettra de découvrir les principes de base du micro-contrôle, son fonctionnement, et des applications concrètes qui illustrent son potentiel. La maîtrise de cette technologie est non seulement un atout pour les études en sciences de l'ingénieur, mais également pour des projets personnels et professionnels dans divers domaines.
Qu'est-ce qu'un micro-contrôleur ?
Un micro-contrôleur est un circuit intégré qui fonctionne comme un petit ordinateur. Il est capable de lire des entrées (capteurs) et de contrôler des sorties (actionneurs). En d'autres termes, il peut recevoir des informations de l'environnement, les traiter et agir en conséquence.
Caractéristiques principales
- Processeur : C'est le cœur du micro-contrôleur, il exécute les instructions. Par exemple, l'Arduino Uno utilise un processeur ATmega328P qui fonctionne à une fréquence de 16 MHz. Ce processeur est capable d'exécuter des millions d'instructions par seconde, ce qui permet de réaliser des tâches complexes en temps réel.
- Mémoire : Elle stocke les programmes et les données. On distingue généralement la mémoire vive (RAM) et la mémoire morte (ROM). L'Arduino Uno dispose de 2 Ko de RAM pour les variables temporaires et de 32 Ko de mémoire flash pour stocker les programmes. Cette mémoire flash permet de conserver le programme même lorsque l'appareil est éteint.
- Entrées/Sorties (I/O) : Elles permettent de connecter des capteurs et des actionneurs. L'Arduino Uno a 14 broches d'entrée/sortie numériques, dont 6 peuvent être utilisées pour la modulation de largeur d'impulsion (PWM). Cela signifie que vous pouvez contrôler des dispositifs tels que des moteurs ou des LED avec une intensité variable.
Exemple concret : Un Arduino Uno, l'un des modèles les plus populaires, possède un processeur ATmega328P, 2 Ko de RAM et 32 Ko de mémoire flash pour le stockage des programmes. En pratique, cela signifie que vous pouvez écrire des programmes relativement simples qui interagissent avec le monde physique via des capteurs et des actionneurs. Par exemple, en utilisant un capteur de température, vous pouvez créer un système de régulation de la température dans une pièce.
Mini-exercice : Identification des composants
Objectif : Identifier les principales caractéristiques d'un micro-contrôleur.
Instructions : Recherchez un autre modèle de micro-contrôleur que l'Arduino Uno et notez ses caractéristiques principales (processeur, RAM, mémoire flash, I/O).
Correction : Par exemple, l'Arduino Mega a un processeur ATmega2560, 8 Ko de RAM, 256 Ko de mémoire flash, et 54 broches d'entrée/sortie, ce qui le rend adapté pour des projets plus complexes.
Programmation d'un micro-contrôleur
La programmation d'un micro-contrôleur se fait généralement en utilisant un langage de haut niveau comme le C/C++. Arduino propose un environnement de développement intégré (IDE) qui facilite cette tâche. Cet IDE inclut un éditeur de texte, un compilateur et un téléchargeur, ce qui simplifie le processus de développement.
Structure d'un programme Arduino
1.
Setup : Cette fonction est exécutée une fois au démarrage, elle est utilisée pour initialiser les variables et les configurations. Par exemple, vous pouvez configurer les broches d'entrée/sortie dans cette section. Cela permet de préparer le micro-contrôleur à interagir avec les composants connectés.
2.
Loop : Cette fonction est exécutée en boucle, elle contient le code qui sera exécuté en continu. C'est ici que vous placez la logique principale de votre programme. Cela permet de réagir aux changements dans l'environnement en temps réel.
Exemple concret : Voici un programme simple qui fait clignoter une LED :
```cpp
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
```
Ce code allume et éteint une LED toutes les secondes. Pour approfondir, vous pourriez modifier le `delay()` pour faire clignoter la LED plus rapidement ou plus lentement. Par exemple, en changeant le délai à 200 ms, la LED clignoterait 5 fois par seconde.