Tout a commencé avec un kit DIYables ESP32 Starter Kit, un breadboard, et zéro expérience en électronique. L'objectif à long terme : construire un robot joueur de soccer. Mais d'abord, il fallait apprendre les bases — allumer une LED.
Le "Hello World" de l'électronique embarquée.
Un circuit simple : GPIO 23 → résistance → LED → GND.
Ce que j'ai appris :
pinMode() pour configurer un pin en OUTPUTdigitalWrite(HIGH/LOW) pour allumer/éteindre
const int LED_PIN = 23;
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH); // Allumer
delay(1000);
digitalWrite(LED_PIN, LOW); // Éteindre
delay(1000);
}
Avant d'aller plus loin, j'ai appris à communiquer avec l'ESP32 via le port série.
Le Serial Monitor est l'outil de debug indispensable — c'est comme un
console.log pour microcontrôleur.
Ce que j'ai appris :
Serial.begin(115200) pour initialiser la communicationSerial.println() pour envoyer du texte vers l'ordinateurTrois patterns progressifs pour maîtriser le timing :
. . . — — — . . .Ce que j'ai appris :
delay() bloque TOUT le programme (important pour plus tard)digitalWrite + delayLe premier composant qui fait du bruit ! Le buzzer utilise le PWM (Pulse Width Modulation) pour produire des fréquences sonores.
Ce que j'ai appris :
ledcAttach(pin, freq, resolution) pour configurer un canal PWMledcWrite(pin, duty) pour contrôler le volume
Le piège ESP32 : Sur ESP32, on n'utilise pas tone()
comme sur Arduino classique. Il faut utiliser l'API LEDC
(ledcAttach/ledcWrite). C'est plus complexe mais plus puissant.
Le boss de fin de la phase 1 ! Un système d'alarme complet avec 4 états :
Chaque état a son propre comportement (LED, buzzer, timing) et les transitions sont automatiques basées sur des temporisations.
Ce que j'ai appris :
enum pour définir des états lisibles (pas des chiffres magiques)switch/case pour exécuter le bon code selon l'étatmillis() pour les transitions automatiquesPourquoi c'est important pour le robot soccer : Un robot de soccer EST une machine à états : chercher la balle → approcher → tirer → défendre. Ce concept revient dans chaque phase.
| Concept | Exercice | Application robot soccer |
|---|---|---|
digitalWrite |
1.1 | Contrôler des actionneurs on/off |
| Serial Monitor | 1.2 | Debug et télémétrie |
Timing / delay |
1.3 | Séquences d'actions |
| PWM / LEDC | 1.4 | Contrôle de vitesse moteurs |
| Machine à états | 1.5 | Logique de comportement du robot |
Temps total : ~2 heures
Difficulté : Facile (parfait pour un débutant total)
digitalWrite Serial delay PWM machine à états enum