Blog

Robot Maqueen Micro:bit : Suivi de Ligne Autonome

0

🤖 Robot Micro:bit 2WD : Suivi de Ligne Autonome avec Capteurs Infrarouges

Programmez un robot suiveur de ligne autonome avec le kit robot micro:bit 2WD ! Grâce aux capteurs infrarouges intégrés et à la programmation en MakeCode/JavaScript, votre robot suivra un parcours tracé au sol de manière autonome. Ce tutoriel de didactico.tn est parfait pour initier les jeunes tunisiens à la robotique et à la programmation.

🧰 Matériel Nécessaire

Kit Robot Micro:bit 2WD

Châssis robot avec moteurs, capteurs IR de ligne, LEDs RGB, buzzer et support micro:bit

Voir sur didactico.tn →

Kit Senior Micro:bit Renardo

Carte micro:bit V2 avec accessoires et projets pour débuter la programmation

Voir sur didactico.tn →

Pour le parcours

  • Ruban adhésif noir (2-3 cm de large)
  • Surface blanche (carton ou papier blanc)
  • 3 piles AAA (pour le robot)
  • Câble USB Micro-B (pour programmer)

📖 Principe du Suivi de Ligne par Capteurs IR

Le robot utilise 2 capteurs infrarouges (IR) placés sous le châssis, de part et d’autre de la ligne noire. Chaque capteur émet de la lumière IR et mesure la quantité réfléchie. Une surface blanche réfléchit beaucoup (valeur 0 = blanc), une surface noire absorbe la lumière (valeur 1 = noir).

📐 ALGORITHME DE SUIVI DE LIGNE
  CAS 1 : Les deux capteurs sur blanc → AVANCER TOUT DROIT
  ┌─────────────────────────────────────────────┐
  │         ○ ← capteur gauche (blanc = 0)      │
  │    ═══════════ (ligne noire)                 │
  │         ○ ← capteur droit  (blanc = 0)      │
  │                                             │
  │    Moteur G: ████  Moteur D: ████           │
  │    (avancer)       (avancer)                │
  └─────────────────────────────────────────────┘

  CAS 2 : Capteur gauche sur noir → TOURNER À GAUCHE
  ┌─────────────────────────────────────────────┐
  │    ● ← capteur gauche (noir = 1)            │
  │    ═══════════                               │
  │              ○ ← capteur droit (blanc = 0)  │
  │                                             │
  │    Moteur G: ░░░░  Moteur D: ████           │
  │    (stop)          (avancer) → tourne gauche│
  └─────────────────────────────────────────────┘

  CAS 3 : Capteur droit sur noir → TOURNER À DROITE
  ┌─────────────────────────────────────────────┐
  │              ○ ← capteur gauche (blanc = 0) │
  │              ═══════════                     │
  │    ● ← capteur droit (noir = 1)             │
  │                                             │
  │    Moteur G: ████  Moteur D: ░░░░           │
  │    (avancer)       (stop) → tourne droite   │
  └─────────────────────────────────────────────┘

  CAS 4 : Les deux sur noir → STOP ou DEMI-TOUR
  ┌─────────────────────────────────────────────┐
  │    ● ← capteur gauche (noir = 1)            │
  │    ══════════════════════                    │
  │    ● ← capteur droit  (noir = 1)            │
  │                                             │
  │    Moteur G: ░░░░  Moteur D: ░░░░           │
  │    (stop)          (stop) → arrêt           │
  └─────────────────────────────────────────────┘

🔌 Schéma du Robot

📐 VUE DU DESSUS — KIT ROBOT MICRO:BIT 2WD
             AVANT (capteurs IR)
       ┌─────────────────────────┐
       │   ◉ IR-G     ◉ IR-D    │  ← Capteurs de ligne
       │                         │
       │  ┌──────────────────┐   │
       │  │   micro:bit V2   │   │  ← Carte micro:bit
       │  │   ┌──────────┐   │   │     (insérée dans le connecteur)
       │  │   │  5×5 LED  │   │   │
       │  │   └──────────┘   │   │
       │  │  [A]        [B]  │   │  ← Boutons A et B
       │  └──────────────────┘   │
       │                         │
  ┌────┤  🔴 LED-G   LED-D 🔴   ├────┐
  │ MG │                         │ MD │  ← Moteurs G et D
  │    │  🔋 Piles AAA ×3       │    │
  └────┤                         ├────┘
       │   ◎ Roue folle (bille) │
       └─────────────────────────┘
             ARRIÈRE

  Broches utilisées par le robot :
  - P0  : Buzzer
  - P1  : Capteur IR gauche (0=blanc, 1=noir)
  - P2  : Capteur IR droit  (0=blanc, 1=noir)
  - P8  : LED RGB (NeoPixel)
  - P12 : Moteur gauche direction
  - P13 : Moteur gauche vitesse (PWM)
  - P14 : Moteur droit direction
  - P15 : Moteur droit vitesse (PWM)

💻 Code MakeCode JavaScript — Suivi de Ligne

Ouvrir makecode.microbit.org, cliquer sur “Nouveau projet”, puis basculer en mode JavaScript et coller ce code. Ajouter l’extension maqueen via “Extensions” si vous utilisez le robot DFRobot Maqueen.

📄 Code JavaScript MakeCode — Suivi de Ligne Autonome
// =============================================
// Robot Micro:bit 2WD — Suivi de Ligne
// Programmation en JavaScript (MakeCode)
// Tutoriel didactico.tn
// =============================================

// --- Configuration de la vitesse ---
let vitesseBase = 120      // Vitesse normale (0-255)
let vitesseTournage = 80  // Vitesse en virage
let robotActif = false     // État du robot

// --- Fonctions moteur (adaptées au kit 2WD) ---
function avancer(vitesse: number) {
    // Les deux moteurs en avant
    pins.analogWritePin(AnalogPin.P13, vitesse)
    pins.digitalWritePin(DigitalPin.P12, 0)
    pins.analogWritePin(AnalogPin.P15, vitesse)
    pins.digitalWritePin(DigitalPin.P14, 0)

function tournerGauche(vitesse: number) {
    // Moteur gauche stop, moteur droit avance
    pins.analogWritePin(AnalogPin.P13, 0)
    pins.digitalWritePin(DigitalPin.P12, 0)
    pins.analogWritePin(AnalogPin.P15, vitesse)
    pins.digitalWritePin(DigitalPin.P14, 0)

function tournerDroite(vitesse: number) {
    // Moteur gauche avance, moteur droit stop
    pins.analogWritePin(AnalogPin.P13, vitesse)
    pins.digitalWritePin(DigitalPin.P12, 0)
    pins.analogWritePin(AnalogPin.P15, 0)
    pins.digitalWritePin(DigitalPin.P14, 0)

function arreter() {
    // Tout arrêter
    pins.analogWritePin(AnalogPin.P13, 0)
    pins.analogWritePin(AnalogPin.P15, 0)

// --- Lire les capteurs IR de ligne ---
function lireCapteurGauche(): number {
    // P1 : 0 = surface blanche, 1 = ligne noire
    return pins.digitalReadPin(DigitalPin.P1)

function lireCapteurDroit(): number {
    // P2 : 0 = surface blanche, 1 = ligne noire
    return pins.digitalReadPin(DigitalPin.P2)

// --- Bouton A : Démarrer le robot ---
input.onButtonPressed(Button.A, function () {
    robotActif = true
    basic.showIcon(IconNames.Happy)   // Smiley content
    music.playTone(523, music.beat(BeatFraction.Half))
    basic.pause(1000)
    basic.showArrow(ArrowNames.North)  // Flèche vers l'avant
})

// --- Bouton B : Arrêter le robot ---
input.onButtonPressed(Button.B, function () {
    robotActif = false
    arreter()
    basic.showIcon(IconNames.Sad)     // Smiley triste
    music.playTone(262, music.beat(BeatFraction.Half))
})

// --- Démarrage ---
basic.showString("DID")   // Afficher "DID" pour Didactico
basic.showIcon(IconNames.Heart)
basic.pause(500)
basic.showString("A=GO")   // Instructions

// --- Boucle principale ---
basic.forever(function () {
    if (robotActif) {
        let gauche = lireCapteurGauche()
        let droite = lireCapteurDroit()

        if (gauche == 0 && droite == 0) {
            // Deux capteurs sur blanc → avancer tout droit
            avancer(vitesseBase)
            basic.showArrow(ArrowNames.North)

        else if (gauche == 1 && droite == 0) {
            // Capteur gauche sur noir → tourner à gauche
            tournerGauche(vitesseTournage)
            basic.showArrow(ArrowNames.West)

        else if (gauche == 0 && droite == 1) {
            // Capteur droit sur noir → tourner à droite
            tournerDroite(vitesseTournage)
            basic.showArrow(ArrowNames.East)

        else {
            // Deux capteurs sur noir → arrêt (fin de ligne ou croisement)
            arreter()
            basic.showIcon(IconNames.Square)
            basic.pause(200)

basic.pause(10)  // Petite pause pour stabilité
})

📲 Comment Programmer le Micro:bit

  1. Aller sur makecode.microbit.org
  2. Créer un Nouveau Projet
  3. Basculer en mode JavaScript (en haut)
  4. Coller le code ci-dessus
  5. Cliquer sur Télécharger
  6. Copier le fichier .hex sur le micro:bit (lecteur USB)
  7. Insérer le micro:bit dans le robot
  8. Appuyer sur Bouton A pour démarrer !

🛤️ Créer le Parcours

📐 EXEMPLE DE PARCOURS (RUBAN NOIR SUR FOND BLANC)
  ┌────────────────────────────────────────────┐
  │                                            │
  │    DÉPART                                  │
  │    ↓                                       │
  │    ║                                       │
  │    ║══════════╗                            │
  │               ║                            │
  │               ║                            │
  │    ╔══════════╝                            │
  │    ║                                       │
  │    ║                                       │
  │    ╚══════════════════════╗                │
  │                           ║                │
  │                           ║                │
  │    ╔══════════════════════╝                │
  │    ║                                       │
  │    ↓                                       │
  │    ARRIVÉE                                 │
  │                                            │
  │  Conseils :                                │
  │  • Ruban noir : 2-3 cm de large            │
  │  • Fond : papier blanc ou carton blanc     │
  │  • Virages : rayon ≥ 10 cm                 │
  │  • Éviter les croisements au début         │
  │  • Surface plane et bien éclairée          │
  └────────────────────────────────────────────┘

📋 Résultat Attendu

📺 AFFICHAGE MICRO:BIT (Matrice LED 5×5)
  1. Au démarrage :
     ┌─────────┐
     │ D I D   │  → Affiche "DID" puis cœur
     └─────────┘

  2. Appui bouton A :
     ┌─────────┐
     │  ☺ →  ↑ │  → Smiley puis flèche (robot démarre)
     └─────────┘

  3. En mouvement :
     ↑ = avance tout droit
     ← = tourne à gauche (capteur G sur noir)
     → = tourne à droite (capteur D sur noir)
     ■ = arrêté (deux capteurs sur noir)

  4. Appui bouton B :
     ┌─────────┐
     │    ☹    │  → Robot s'arrête, smiley triste
     └─────────┘

🔧 Dépannage

Problème Cause probable Solution
Robot ne bouge pas Piles faibles ou interrupteur éteint Vérifier les piles AAA (3×1.5V = 4.5V). Activer l’interrupteur ON du robot. Appuyer sur bouton A
Robot quitte la ligne Vitesse trop élevée ou virages trop serrés Réduire vitesseBase à 80-100. Augmenter le rayon des virages. Utiliser un ruban plus large (3 cm)
Capteurs ne détectent pas la ligne Hauteur capteurs trop grande ou surface brillante Les capteurs IR doivent être à 5-10mm du sol. Utiliser du ruban adhésif noir mat (pas brillant)
Robot tourne dans le mauvais sens Moteurs inversés ou capteurs inversés Inverser les fonctions tournerGauche et tournerDroite dans le code, ou inverser P1/P2 pour les capteurs
Oscillations permanentes Réaction trop rapide ou vitesse de tournage trop haute Réduire vitesseTournage à 60. Ajouter un petit basic.pause(20) dans la boucle. Élargir l’écart entre capteurs

🚀 Pour Aller Plus Loin

1. Robot Éviteur d’Obstacles

Ajoutez un capteur ultrason HC-SR04 pour que le robot évite les obstacles sur son chemin.

Kit Robot 2WD →

2. Robot Télécommandé Bluetooth

Contrôlez le robot depuis votre téléphone via Bluetooth avec l’app micro:bit.

Kit Senior Renardo →

3. Compétition de Robots

Organisez une course de suivi de ligne entre plusieurs robots ! Optimisez la vitesse et les algorithmes PID.

Kit Robot 2WD →

❓ Questions Fréquentes

Où acheter un kit robot micro:bit en Tunisie ?

Le kit robot micro:bit 2WD et le kit senior Renardo sont disponibles sur didactico.tn avec livraison dans toute la Tunisie. Ces kits incluent le châssis, les moteurs, les capteurs IR et le support micro:bit.

Le micro:bit est-il adapté pour enseigner la robotique aux enfants en Tunisie ?

Absolument ! Le micro:bit est spécialement conçu pour l’éducation. Avec MakeCode, les enfants peuvent programmer en blocs visuels (comme Scratch) avant de passer au JavaScript. De nombreuses écoles et clubs de robotique en Tunisie utilisent déjà le micro:bit pour initier les jeunes dès 8 ans.

Quel robot suiveur de ligne choisir pour une compétition robotique en Tunisie ?

Pour les compétitions de robotique tunisiennes (comme les olympiades de robotique), le kit robot micro:bit 2WD de didactico.tn est un excellent choix. Il est facile à programmer, les capteurs IR sont précis et vous pouvez implémenter un algorithme PID pour des performances optimales en compétition.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *