Robot Maqueen Micro:bit : Programmer un Suiveur de Ligne Autonome
Programmez un robot Maqueen Plus + micro:bit V2 en suiveur de ligne autonome : MakeCode, MicroPython, algorithme PID, obstacle avoidance. Pour écoles Tunisie.
Salle de classe d’une école primaire de Sfax, lundi matin 9h. Mme Selma, institutrice en CM2, sort de son armoire 6 boîtes bleues marquées « DFRobot Maqueen Plus ». Vingt-quatre élèves de 10 ans s’agitent. Sur la table : du ruban électrique noir collé en parcours sinueux. Le défi du jour ? Programmer leur petit robot pour qu’il suive la ligne tout seul, sans aucune télécommande. À 10h30, le premier robot termine le parcours sous les applaudissements. À 11h15, les 6 robots circulent en autonomie. Mme Selma sourit : « Ce que j’enseigne en 2 heures, j’aurais mis 6 mois à le faire à mon âge. » Voici comment, étape par étape, programmer ce petit bijou de pédagogie qui équipe de plus en plus d’écoles et de FabLabs en Tunisie.
📋 Table des matières
- Le Maqueen Plus et son écosystème
- BBC micro:bit V2 : le cerveau pédagogique
- MakeCode vs MicroPython : que choisir ?
- Algorithme 1 — Suivi on/off basique
- Algorithme 2 — Suivi PID 3 capteurs
- Algorithme 3 — Suivi avec mémoire et anticipation
- Évitement d’obstacles avec HC-SR04
- Communication radio entre 2 robots
- Pédagogie et compétences en Tunisie
- FAQ Robot Maqueen Micro:bit
Le Maqueen Plus : châssis pédagogique tout intégré
Le Maqueen Plus est conçu par DFRobot, fabricant chinois spécialisé dans l’éducation STEAM. C’est un châssis 2WD (2 roues motrices + 1 bille folle) de 9 cm de diamètre qui embarque déjà tous les capteurs et actionneurs dont a besoin un enseignant pour 6 mois de TP. Comparé à un robot Arduino DIY (où il faut souder, câbler, débugger les masses communes pendant des heures), le Maqueen démarre en 30 secondes.
Composants intégrés sur le PCB
- 2 moteurs DC à réducteurs commandés par un driver TB6612FNG (PWM bidirectionnel, vitesse 0-255)
- 4 capteurs IR de ligne en façade (les versions Plus en ont 4, les versions simples 2) → détecte noir/blanc sous le robot
- 1 capteur ultrason HC-SR04 intégré en avant pour détecter obstacles 2 cm-400 cm
- 4 LED RGB programmables (Neopixel WS2812) sous le châssis pour effets lumineux
- 1 buzzer piézo pour jouer mélodies et alertes
- 2 ports servo (PWM) pour ajouter un bras pivotant ou une pince
- Port d’extension Gravity (DFRobot) pour ajouter capteurs/modules supplémentaires
- Alimentation : 3× piles AA ou batterie LiPo 4.5V via JST
Différence avec un robot Arduino DIY
Un robot Arduino UNO + L298N + 2 moteurs + 2 capteurs IR + ultrason demande :
- Châssis plexi à découper
- Soudage des connecteurs des moteurs
- Câblage du pont H L298N (8 fils dont 2 d’alim)
- Régulation 5V séparée (sinon le motor noise reset l’UNO)
- Calibration manuelle des capteurs IR avec multimètre
Soit 3-4 heures de montage avant la première ligne de code. Le Maqueen, lui, fait gagner tout ce temps et permet à l’enseignant de se concentrer sur la programmation et l’algorithme, pas la mécanique.
BBC micro:bit V2 : le cerveau pédagogique
Le Maqueen Plus ne contient aucun microcontrôleur — c’est juste un châssis. Le cerveau vient sous forme d’une carte BBC micro:bit V2 qui se plante sur un connecteur edge 50 broches.
Caractéristiques micro:bit V2
- Nordic nRF52833 — ARM Cortex-M4 à 64 MHz, 128 Ko RAM, 512 Ko Flash
- Matrice 5×5 LED pour afficher icônes, texte défilant, valeurs numériques
- 2 boutons A et B + un capteur tactile capacitif sur le logo
- Accéléromètre 3 axes + magnétomètre + capteur température + capteur lumière ambiante + microphone MEMS + haut-parleur
- Bluetooth 5.0 + radio 2.4 GHz propriétaire Nordic (très utile pour la communication inter-robots)
- 25 broches GPIO/PWM/I2C/SPI sur connecteur edge
- Alimentation USB-C ou pile bouton CR2032
Lancé en 2016 par la BBC en partenariat avec Microsoft, ARM, Samsung et 25 autres organisations, le micro:bit a été distribué gratuitement à 1 million d’enfants britanniques de 11-12 ans. La V2 (2020) ajoute le micro, le haut-parleur et le tactile. Aujourd’hui en Tunisie, plusieurs écoles privées et publiques (avec le programme « 1 enfant = 1 micro:bit » porté par le Ministère de l’Éducation tunisien et plusieurs ONG STEM) l’adoptent comme outil de découverte du code.
MakeCode vs MicroPython : que choisir ?
Deux langages dominent l’écosystème micro:bit :
Microsoft MakeCode (drag-and-drop)
Interface web makecode.microbit.org. Programmation par blocs colorés type Scratch, avec vue JavaScript en temps réel. Idéal pour 8-14 ans et débutants absolus. Pour le Maqueen, il faut ajouter l’extension DFRobot via « Extensions > Rechercher : maqueen ». Téléchargement du programme : un fichier .hex qu’on copie sur le micro:bit comme une clé USB.
MicroPython (texte)
Python embarqué pour micro:bit, exécuté via l’éditeur python.microbit.org ou Mu Editor. Idéal pour collégiens/lycéens et étudiants qui veulent comprendre la logique séquentielle réelle. Plus puissant pour les algorithmes complexes (PID, machine à états).
Algorithme 1 — Suivi de ligne on/off basique (2 capteurs)
Principe : 2 capteurs IR (gauche et droit) regardent vers le sol. Si la ligne est noire et le sol blanc, les capteurs renvoient :
- Sol blanc → IR détecté → valeur 0 (low)
- Ligne noire → pas de réflexion → valeur 1 (high)
Logique : si le robot dévie, un capteur se retrouve sur la ligne → on tourne pour se recentrer.
Code MakeCode (pseudo-blocs en JavaScript)
// Boucle infinie de suivi de ligne basique
basic.forever(function () {
let gauche = maqueen.readPatrol(maqueen.Patrol.PatrolLeft)
let droit = maqueen.readPatrol(maqueen.Patrol.PatrolRight)
if (gauche == 0 && droit == 0) {
// Les 2 capteurs sur le blanc → tout droit
maqueen.motorRun(maqueen.Motors.AllMotors,
maqueen.Dir.CW, 80)
} else if (gauche == 1 && droit == 0) {
// Capteur gauche sur ligne noire → tourner gauche
maqueen.motorRun(maqueen.Motors.M1, maqueen.Dir.CCW, 60)
maqueen.motorRun(maqueen.Motors.M2, maqueen.Dir.CW, 80)
} else if (gauche == 0 && droit == 1) {
// Capteur droit sur ligne noire → tourner droite
maqueen.motorRun(maqueen.Motors.M1, maqueen.Dir.CW, 80)
maqueen.motorRun(maqueen.Motors.M2, maqueen.Dir.CCW, 60)
} else {
// Les 2 capteurs sur la ligne → intersection, ralentir
maqueen.motorRun(maqueen.Motors.AllMotors,
maqueen.Dir.CW, 40)
}
})
Code MicroPython équivalent
from microbit import *
import maqueenPlus as mq
while True:
# Lecture des deux capteurs IR de ligne
g = mq.read_patrol_left() # 0 = blanc, 1 = noir
d = mq.read_patrol_right()
if g == 0 and d == 0:
# Avance tout droit
mq.motor("all", "forward", 80)
elif g == 1 and d == 0:
# Corrige vers la gauche
mq.motor("M1", "backward", 60)
mq.motor("M2", "forward", 80)
elif g == 0 and d == 1:
# Corrige vers la droite
mq.motor("M1", "forward", 80)
mq.motor("M2", "backward", 60)
else:
# Les deux sur la ligne (intersection ou erreur)
mq.motor("all", "forward", 40)
sleep(20)
Limite de cet algo : le robot zigzague visiblement dans les courbes. Il accélère et freine brutalement. Sur une ligne droite, il oscille de gauche à droite comme un ivrogne. Pour faire mieux, on passe au PID.
Algorithme 2 — Suivi PID 3 capteurs (fluide et rapide)
Le PID (Proportionnel-Intégral-Dérivé) est l’algorithme roi de la régulation. Il transforme une erreur mesurée en correction proportionnelle, ce qui donne un mouvement fluide.
Principe du PID en suivi de ligne
- Erreur = position de la ligne par rapport au centre du robot. Si on a 3 capteurs (G, C, D) :
- Ligne sous G → erreur = -2
- Ligne entre G et C → erreur = -1
- Ligne sous C (parfait) → erreur = 0
- Ligne entre C et D → erreur = +1
- Ligne sous D → erreur = +2
- Terme P (proportionnel) = Kp × erreur — corrige immédiatement
- Terme I (intégral) = Ki × somme des erreurs passées — corrige les biais permanents (roue gauche un peu plus lente)
- Terme D (dérivé) = Kd × (erreur_actuelle – erreur_précédente) — anticipe et lisse les oscillations
Code MicroPython PID complet
from microbit import *
import maqueenPlus as mq
# Constantes PID — À AJUSTER selon votre robot et parcours
Kp = 35 # Proportionnel : réactivité
Ki = 0.05 # Intégral : élimine biais long terme (à utiliser avec parcimonie)
Kd = 18 # Dérivé : anti-oscillation
VITESSE_BASE = 90 # Vitesse moteurs en ligne droite (0-255)
erreur_precedente = 0
integrale = 0
def calcul_erreur(g, c, d):
"""Convertit les 3 capteurs en erreur centrée sur 0.
g, c, d : 0 (blanc) ou 1 (noir)"""
if g == 1 and c == 0 and d == 0: return -2
if g == 1 and c == 1 and d == 0: return -1
if g == 0 and c == 1 and d == 0: return 0
if g == 0 and c == 1 and d == 1: return 1
if g == 0 and c == 0 and d == 1: return 2
if g == 1 and c == 1 and d == 1: return 0 # intersection
return None # ligne perdue
while True:
g = mq.read_patrol(0)
c = mq.read_patrol(1)
d = mq.read_patrol(2)
erreur = calcul_erreur(g, c, d)
if erreur is None:
# Ligne perdue : on s'arrête (ou on tourne pour la retrouver)
mq.motor("all", "stop", 0)
continue
# Calcul PID
integrale = integrale + erreur
derivee = erreur - erreur_precedente
correction = Kp * erreur + Ki * integrale + Kd * derivee
# Application aux moteurs (-255 à +255)
vit_g = max(-255, min(255, VITESSE_BASE + correction))
vit_d = max(-255, min(255, VITESSE_BASE - correction))
mq.motor("M1", "forward" if vit_g > 0 else "backward", abs(int(vit_g)))
mq.motor("M2", "forward" if vit_d > 0 else "backward", abs(int(vit_d)))
erreur_precedente = erreur
sleep(10) # Fréquence boucle ≈ 100 Hz
Méthode Ziegler-Nichols pour ajuster Kp, Ki, Kd
- Mettre Ki = 0 et Kd = 0
- Augmenter Kp progressivement jusqu’à ce que le robot oscille de façon stable (ni amorti ni divergent) → on note cette valeur Ku
- Mesurer la période d’oscillation Tu (au chronomètre)
- Appliquer : Kp = 0.6×Ku, Ki = 1.2×Ku/Tu, Kd = 0.075×Ku×Tu
Algorithme 3 — Suivi avec mémoire (anticiper les virages serrés)
Sur des parcours difficiles (virages à 90°, intersections en croix), même le PID atteint ses limites. La solution : ajouter une machine à états qui mémorise la dernière direction de la ligne perdue.
# État du robot : 'tracking', 'lost_left', 'lost_right', 'intersection'
etat = "tracking"
derniere_direction = 0 # -1 = ligne perdue à gauche, +1 = à droite
while True:
g = mq.read_patrol(0)
c = mq.read_patrol(1)
d = mq.read_patrol(2)
if g + c + d == 0:
# Ligne complètement perdue → tourner du côté mémorisé
if derniere_direction == -1:
mq.motor("M1", "backward", 70)
mq.motor("M2", "forward", 70)
else:
mq.motor("M1", "forward", 70)
mq.motor("M2", "backward", 70)
elif g + c + d == 3:
# Intersection en croix → décision (continuer tout droit, par défaut)
display.show(Image.DIAMOND)
mq.motor("all", "forward", 60)
sleep(300) # Traverse l'intersection
else:
# PID classique
erreur = calcul_erreur(g, c, d)
if erreur is not None and erreur != 0:
derniere_direction = -1 if erreur < 0 else 1
# ... [code PID identique au précédent]
sleep(10)
Évitement d’obstacles avec HC-SR04 intégré
Le Maqueen Plus intègre un HC-SR04 en avant. On peut le combiner avec le suivi de ligne pour un robot vraiment intelligent.
while True:
distance_cm = mq.ultrasonic_cm() # 2 à 400 cm
if distance_cm < 15:
# Obstacle proche → arrêt et contournement
mq.motor("all", "stop", 0)
mq.buzzer_tone(440, 200) # Bip A4
sleep(300)
# Contourner par la droite
mq.motor("M1", "forward", 80)
mq.motor("M2", "backward", 80)
sleep(500) # Pivote 90°
mq.motor("all", "forward", 80)
sleep(800) # Avance pour dépasser l'obstacle
# Reprend la ligne
mq.motor("M1", "backward", 80)
mq.motor("M2", "forward", 80)
sleep(500) # Re-pivote
else:
# Continuer le suivi de ligne PID classique
suivi_pid()
sleep(20)
Communication radio entre 2 micro:bit (mode essaim)
Le micro:bit V2 a une radio 2.4 GHz Nordic propriétaire (différente du Bluetooth). C’est un protocole ultra-simple, parfait pour faire dialoguer 2-30 robots.
# Robot leader
from microbit import *
import radio
import maqueenPlus as mq
radio.config(group=42) # Tous les robots du même "groupe" se parlent
radio.on()
while True:
if button_a.was_pressed():
radio.send("STOP")
display.show(Image.NO)
elif button_b.was_pressed():
radio.send("GO")
display.show(Image.YES)
# ... reste du suivi de ligne
# Robot suiveur
import radio
import maqueenPlus as mq
radio.config(group=42)
radio.on()
actif = True
while True:
msg = radio.receive()
if msg == "STOP":
actif = False
mq.motor("all", "stop", 0)
elif msg == "GO":
actif = True
if actif:
suivi_pid()
Application pédagogique : faire un convoi de 3 robots qui suivent la même ligne mais s’arrêtent en chaîne quand le premier détecte un obstacle. Excellent exercice de pensée distribuée et de protocole.
Robot Maqueen Plus + micro:bit V2
Kit complet pour écoles, lycées et FabLabs. Châssis pré-monté, capteurs intégrés, prêt à programmer en MakeCode ou MicroPython. Stock disponible en Tunisie, livraison 24-48h Sfax.
Pédagogie et compétences développées en Tunisie
Le Maqueen + micro:bit forme un kit pédagogique utilisé du primaire au lycée. Voici les compétences travaillées selon les cycles :
Primaire (CM1-CM2, 9-11 ans)
- Compréhension d’une séquence d’instructions
- Concepts de boucle et de condition
- Découverte de l’algorithme sans formalisme
- Travail en équipe (1 robot pour 4 élèves)
Collège (6ème-3ème, 11-15 ans)
- Variables, types, opérateurs logiques
- Fonctions et paramètres
- Lecture/écriture de capteurs (interface analogique/numérique)
- Communication radio (notions de protocole)
Lycée (NSI, MPS)
- Algorithme PID (régulation, équations différentielles discrètes)
- Machine à états finis
- MicroPython et écosystème embarqué
- Documentation technique et travail sur datasheet
Enseignement supérieur (ISET, ENIT, INSAT, ISBS)
Le Maqueen sert souvent de plateforme rapide pour des PFE en automatique, IA embarquée (TensorFlow Lite Micro sur micro:bit V2), ou même intégration ROS via un Pi en pont. Le FabLab Sfax l’utilise pour ses workshops « Découverte robotique » destinés aux étudiants en première année d’ingénierie.
Programmes de formation enseignants
Plusieurs ONG STEAM tunisiennes (Code Week Tunisia, Mahdia FabLab, et le programme STEMC du Ministère de l’Éducation) ont formé plus de 1500 enseignants au Maqueen entre 2022 et 2025. Didactico Sfax fournit les kits et accompagne les écoles avec des plans de cours clés en main.
FAQ Robot Maqueen Micro:bit
Le Maqueen fonctionne-t-il sans micro:bit ?
Non. Le Maqueen Plus est un châssis « bête » qui a besoin d’un cerveau. Vous pouvez utiliser un micro:bit V1 ou V2, mais aussi (avec un peu de bidouille) un ESP32 ou Arduino Nano via les broches d’extension. La compatibilité native est avec le micro:bit.
Quelle différence entre Maqueen, Maqueen Plus et Maqueen Mechanic ?
Le Maqueen de base a 2 capteurs IR. Le Maqueen Plus en a 4 (mieux pour le PID 3 capteurs). Le Maqueen Mechanic est une version avec bras pince et chenilles, plus chère. Pour la majorité des écoles, le Maqueen Plus est le meilleur compromis.
Combien de temps tiennent les piles AA ?
Avec 3 piles alcalines AA standard, comptez 2-3 heures d’usage intensif. Pour des séances longues, investissez dans des accus NiMH 2500 mAh rechargeables (Eneloop Pro) ou une batterie LiPo 2S avec régulateur 5V.
Quel sol pour le suivi de ligne ?
Idéalement un sol blanc mat avec du ruban électrique noir mat de 1.5-2 cm de large. Évitez les sols brillants (reflets parasitent les IR) et le scotch transparent ou marron (mauvais contraste). Une simple feuille A1 blanche avec lignes au feutre noir épais marche aussi.
Peut-on programmer le Maqueen avec Scratch ?
Pas directement avec Scratch 3, mais MakeCode (utilisé pour le micro:bit) est très similaire à Scratch et peut être considéré comme son équivalent embarqué. Les élèves qui ont fait Scratch s’y mettent en 15 minutes.
Le micro:bit V2 est-il rétrocompatible avec les programmes V1 ?
Oui à 99%. Quelques rares programmes utilisant des fonctionnalités V1 spécifiques peuvent ne pas tourner, mais 99% des projets MakeCode et MicroPython sont compatibles. La V2 ajoute le micro, le haut-parleur et le tactile sur le logo.
Où trouver des parcours imprimables pour ligne ?
Beaucoup de templates gratuits sur le site DFRobot (catégorie Education) et sur les forums micro:bit. Vous pouvez aussi créer des parcours personnalisés au feutre noir indélébile sur des bâches PVC plastifiées, réutilisables des centaines de fois.
Conclusion
Le couple Robot Maqueen Plus + BBC micro:bit V2 incarne ce qu’il y a de mieux dans la pédagogie STEAM moderne : matériel robuste, écosystème mature, programmation accessible du primaire à l’ingénierie. En Tunisie, son adoption croissante dans les écoles primaires et lycées de Sfax, Tunis et Sousse en témoigne. Que vous soyez enseignant·e, animateur·trice de FabLab ou parent qui veut initier ses enfants au code, ce kit transforme 2 heures de TP en moment magique où le concept abstrait d’algorithme devient un robot qui bouge devant les yeux des enfants.
Pour aller plus loin, consultez notre guide Raspberry Pi + Arduino pour la surveillance IoT ou découvrez nos autres kits éducatifs sur didactico.tn avec livraison 24-48h partout en Tunisie depuis Sfax.
🛒 Matériel nécessaire pour ce guide
Tout le matériel de ce tutoriel est disponible chez Didactico — livraison 24-48h partout en Tunisie, paiement à la livraison.
Voir toute la catégorie « Kits éducatifs et Robotiques » →📘 Guides liés : Construire son Premier Robot Arduino : Guide Complet Châssis 2WD + Évitement d'Obstacles


