DidaPy

Python · MicroPython · ESP32

Apprendre à coder, puis faire clignoter le monde réel.

DidaPy réunit des cours progressifs, un éditeur avec coloration syntaxique et repérage des erreurs, un simulateur ESP32 où l'on glisse-dépose des composants, et une bibliothèque de tests unitaires à envoyer directement sur votre carte via WebSerial.

Démarrage rapide

  1. Apprenez les bases dans l'onglet Cours — le bouton « Essayer » ouvre l'exemple dans l'atelier.
  2. Simulez dans l'Atelier : ajoutez des composants, appuyez sur Ctrl+Entrée pour exécuter.
  3. Testez en vrai : flashez MicroPython sur l'ESP32 (voir Aide), connectez-le, puis « Exécuter sur la carte ».
Prêt.Ln 1, Col 1
Console

        
Glissez ou cliquez un composant. Fils : noir = GND, rouge = 3V3, orange = 5V, couleur = signal.
Oscilloscope
Ln 1, Col 1
Console du robot

          
Journal

    Règles du jeu et câblage du robot

    Chaque joueur écrit un script MicroPython pour son robot : il doit ramasser des objets dans l'arène et les rapporter à sa base, en surveillant sa batterie. Le robot se recharge seul lorsqu'il est à l'arrêt sur sa base.

    Score

      Le robot (vrais composants)

      ComposantBroche ESP32Rôle
      L298N IN1 / IN2GPIO 25 / 26moteur gauche (PWM = vitesse)
      L298N IN3 / IN4GPIO 27 / 14moteur droit
      HC-SR04 TRIG / ECHOGPIO 5 / 18distance de l'obstacle devant
      TCRT5000 (sol)GPIO 341 sur une base (zone noire)
      Batterie 2S (pont ÷3)GPIO 35 (ADC)8,4 V pleine, 6,4 V vide
      LED d'étatGPIO 2visible sur le robot

      Vitesse maximale : 30 cm/s · rotation sur place : 180 °/s · autonomie : environ 75 s à pleine vitesse. Arène : 400 × 300 cm. La bibliothèque robot.py fournit avancer(), tourner(), aller_a(x, y), retour_base(), distance(), batterie(), recharger()… et fonctionne telle quelle sur un vrai robot câblé pareil.

      Repère

      Les coordonnées sont en cm, avec pour origine le centre de votre base : x vers l'arène (flèche rouge), y vers la gauche (flèche verte). Survolez l'arène pour les lire, cliquez pour les copier. robot.py estime la position par odométrie (à partir des ordres donnés aux moteurs) : les petites erreurs s'accumulent, comme sur un vrai robot !

      Modes

      Entraînement : pas de pénalités ni de chrono. Compétition : manche chronométrée, jusqu'à 4 joueurs sur le même écran (onglets) ou en ligne sur plusieurs ordinateurs avec python server.py.

      robot.py — bibliothèque du robot

      Ce fichier est chargé automatiquement dans le simulateur. Sur un vrai robot, copiez-le sur l'ESP32 à côté de votre script.

      Jouer en ligne

      Un ordinateur lance le serveur : python server.py dans le dossier DidaPy. Les autres joueurs ouvrent http://adresse-du-pc:8770 et rejoignent la même salle (4 joueurs maximum).

        En ligne, n'importe quel joueur de la salle peut démarrer la manche (compte à rebours de 3 s). Chaque objet ne peut être ramassé qu'une fois.

        🏆 Fin de la manche

        ⚠ Sortie de la fenêtre détectée

        Cet incident a été enregistré et signalé à l'enseignant. Restez sur cette fenêtre jusqu'à la fin du TP.

        Bibliothèque de composants

        Chaque fiche donne le câblage sur un ESP32 et un code de test unitaire : lancez-le dans le simulateur, ou directement sur votre carte pour vérifier qu'un capteur fonctionne.

        Carte réelle — WebSerial

        Connectez un ESP32 (ou toute carte MicroPython) en USB. Nécessite Chrome, Edge ou Opera sur ordinateur.

        Cliquez dans le terminal et tapez : c'est le REPL MicroPython (>>>). Essayez help() ou 1 + 1.

        Aide

        Installer MicroPython sur un ESP32

        1. Téléchargez le firmware « ESP32 / WROOM » sur micropython.org (fichier .bin).
        2. Ouvrez ESP Tool (web) dans Chrome/Edge, connectez la carte, effacez la mémoire (Erase Flash) puis programmez le fichier à l'adresse 0x1000.
        3. Revenez dans l'onglet Carte réelle, cliquez « Connecter » : l'invite >>> doit apparaître.

        Si la carte n'apparaît pas, installez le pilote USB (CP210x ou CH340 selon le modèle) et essayez un autre câble (certains ne font que charger).

        Raccourcis de l'éditeur

        Ctrl+EntréeExécuter dans le simulateur
        Ctrl+Maj+EntréeExécuter sur la carte
        ÉchapArrêter le programme
        Ctrl+/Commenter / décommenter
        Tab / Maj+TabIndenter / désindenter (4 espaces)
        Ctrl+STélécharger le fichier .py

        Le simulateur

        Le simulateur exécute votre code Python dans le navigateur (moteur Skulpt) et imite les modules MicroPython de l'ESP32 : machine (Pin, ADC, PWM, I2C, Timer, time_pulse_us), time/utime, dht, neopixel et ssd1306.

        • Chaque composant a une ou plusieurs broches : cliquez-le pour choisir le GPIO dans l'inspecteur.
        • Les boutons, potentiomètres, capteurs se manipulent directement avec la souris pendant l'exécution.
        • Les interruptions (Pin.irq) et les Timer sont traités pendant les sleep().
        • Limites : pas de Wi-Fi, pas de fichiers, timing approximatif. Le simulateur sert à apprendre la logique ; la carte réelle reste la référence.

        Lire une erreur

        Quand une erreur survient, la ligne fautive est surlignée en rouge dans l'éditeur, avec le type d'erreur et une explication en français. Les erreurs de syntaxe sont détectées pendant la frappe. Sur la carte réelle, DidaPy lit le Traceback renvoyé par MicroPython (File "<stdin>", line 12) et surligne la même ligne.

        Autres cartes

        Les exemples utilisent la numérotation GPIO de l'ESP32. Sur Raspberry Pi Pico, utilisez par exemple Pin(25) ou Pin("LED") pour la LED intégrée et ADC(26) pour l'entrée analogique : le reste du code est identique.

        Connexion

        Mon compte