« Battle robotique Alstom » : différence entre les versions

De Wiki Clubelek
Clementin.granier1 (discussion | contributions)
Aucun résumé des modifications
Avril.javelot (discussion | contributions)
 
(3 versions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
== Introduction ==
== Introduction ==
Chaque année depuis 2024, Alstom organise une Battle Robotique avec plusieurs écoles Lyonnaises. Elle a lieu vers mai dans leurs locaux (vers vaulx-en-velin, compter une bonne demi-heure en vélo pour y aller).
Chaque année depuis 2024, Alstom organise une Battle Robotique avec plusieurs écoles Lyonnaises. Elle a lieu vers mai dans leurs locaux (vers vaulx-en-velin, compter une bonne demi-heure en vélo pour y aller, ou alors T1/T4 jusqu'à Charpennes puis métro A).


Cette page a pour vocation de recenser les conseils pour faire le meilleur score !
Cette page a pour vocation de recenser les conseils pour faire le meilleur score !


== Détails de la compétition ==
== Détails de la compétition ==
En 2024 et 2025, le jour J se présentait comme trois manches avec un terrain qui s'agrandit entre chaque manche. Vous avez environ 5 minutes par manche, et 45 minutes entre deux manches (+ 5 minute par autre équipe qui passe). L'objectif est de marquer le plus de points (en s'arrêtant aux bonnes gares) en en perdant le moins (pas de sortie de voie, pas d'accident).
En 2024, 2025 et 2026, le jour J se présentait comme trois manches avec un terrain qui s'agrandit entre chacune d'entre elles. Vous avez environ 3 minutes par manche, et 1h entre deux manches, sauf avant la dernière où il n'y a que 30min. L'objectif est de marquer le plus de points (en s'arrêtant aux gares) et en en perdant le moins (pas de sorties de voie, pas d'accidents et pas d'interventions humaines).


Ah et au fait il y a pas le droit à de l'électronique en plus sur le terrain, donc tout espoir de feu de signalisation part à la poubelle.
Ah, et il n'y a pas le droit à de l'électronique en plus sur le terrain, donc tout espoir de feu de signalisation part à la poubelle.


Il y a un "kickoff" qui sert à QUE DALLE, juste ils vous expliquent ce que je vous ai dit en 1 paragraphe. Mais bon il faut y aller quand même, mais si vous avez cours vous emmerdez pas.
Il y a un "kickoff" qui sert à QUE DALLE, juste ils vous expliquent ce que je vous ai dit en 1 paragraphe. Mais bon il faut y aller quand même, mais si vous avez cours vous emmerdez pas.


Le cash prize va sûrement changer, 2024 et 2025 c'était 1000 euros pour les premiers, puis 500 pour les autres (mais on a volé de la colle UHU donc techniquement on a plus gagné que les 3e et 4e)
Le cash prize va sûrement changer, les années précédentes, c'était 1000 euros pour les premiers, puis 500 pour les autres (mais en 2025, on a volé de la colle UHU donc techniquement on a plus gagné que les 3e et 4e) et en 2026, on a fait premier !!!! (donc + 1000 € sur le compte du Clubelek hehe)


== Les robots ==
== Les robots ==
Ligne 17 : Ligne 17 :
Sauf changement, Alstom utilise des petits bangers de robots qui s'appellent les Edison. (/s évidemment ils sont rincés du cul).
Sauf changement, Alstom utilise des petits bangers de robots qui s'appellent les Edison. (/s évidemment ils sont rincés du cul).


Vous en aurez genre 3 pour préparer et 8 le jour de la compétition, ou un truc du genre.
Vous en aurez genre 2 pour vous préparer (avant le jour J, environ 4 semaines) et 5 le jour de la compétition, ou un truc du genre.


==== Leurs specs ====
==== Leurs specs ====


* 2 récepteurs IR (droite/gauche)
* 2 récepteurs IR (droite/gauche) (GROSSE MERDE)
* 2 émetteur IR (droite/gauche)
* 2 émetteur IR (droite/gauche)
* 1 buzzer
* 1 buzzer
Ligne 30 : Ligne 30 :


Et c'est tout.  
Et c'est tout.  
'''Voici les conseils des années précédentes (sauf de 2026) :'''


Dans l'idée c'est pas mal, en revanche il est '''impossible de les faire communiquer entre eux.''' Oui, même votre super idée de protocole de communication mesh en infrarouge avec correction d'erreur qui marche super au club. Il y a beaucoup trop d'interférences IR le jour de la compétition, la range max est de 3 cm à tout péter.
Dans l'idée c'est pas mal, en revanche il est '''impossible de les faire communiquer entre eux.''' Oui, même votre super idée de protocole de communication mesh en infrarouge avec correction d'erreur qui marche super au club. Il y a beaucoup trop d'interférences IR le jour de la compétition, la range max est de 3 cm à tout péter.
Ligne 37 : Ligne 39 :
''Ces conseils sont donnés après deux années d'expérience avec ces robots de merde, et environ 1200 lignes de code qui essaie de les faire moins puer leur mère, soldées à chaque fois par un échec cuisant et une réecriture du code en 20 lignes.''
''Ces conseils sont donnés après deux années d'expérience avec ces robots de merde, et environ 1200 lignes de code qui essaie de les faire moins puer leur mère, soldées à chaque fois par un échec cuisant et une réecriture du code en 20 lignes.''


Leurs batteries font changer la vitesse des moteurs donc gardez les tous les plus chargés possibles sinon ils risquent de se rattraper.
/!\ Leurs batteries font changer la vitesse des moteurs et de la préscision des capteurs (y compris le suivis de ligne) donc gardez les tous les plus chargés possibles sinon ils risquent de se rattraper.
 
'''Conseils de 2026 :'''
 
La communication est possible (et nécessaire pour une manche), mais ne basez rien d'autre là-dessus, ce sera juste de la récéption d'un octet....
 
/!\ Le capteur de distance doit être calibré avant la compétition : https://meetedison.com/content/Edison-robot-barcodes.pdf
 
La texture de la map a changé, et est beaucoup mieux (moins de traces par les robots) et avec une échelle de gris pour les gares et intersections. Des exemples sont dans un des casiers du club.


== Le code ==
== Le code ==
Pour programmer ces robots, vous ferez la connaissance de '''EdPy''', qui est je pense le pire language que j'ai jamais utilisé (et j'ai fait du brainfuck sur papier un jour). Globalement c'est du python en moins bien. Vous ne pourrez pas les flash depuis autre chose que leur interface de merde.
Pour programmer ces robots, vous ferez la connaissance de '''EdPy''', qui est je pense le pire language que j'ai jamais utilisé (et j'ai fait du brainfuck sur papier un jour). Globalement c'est du Python, mais en moins bien. Vous ne pourrez pas les flash depuis autre chose que leur interface pourri.


==== Les limitations de EdPy ====
==== Les limitations de EdPy ====
Ligne 47 : Ligne 57 :
* Pas de classe
* Pas de classe
* Pas de liste 2D (donc pas de liste de string)
* Pas de liste 2D (donc pas de liste de string)
* Plein d'autre trucs mais j'avoue flemme de les lister
* Pas de fonctions built-in
* Uniquement des variables en int
* Plein d'autre trucs mais j'avoue flemme de les lister, en gros, c'est du C mais transformé avec la syntaxe de Python :/


Bon le conseil principal que je peux vous donner : faites au plus simple. Utilisez le suivi de ligne le plus simple possible, ne communiquez pas entre les robots, hardcodez le plus possible.
Bon le conseil principal que je peux vous donner : faites au plus simple. Utilisez le suivi de ligne le plus simple possible, ne communiquez pas entre les robots, hardcodez le plus possible.


Un conseil pour que ce soit plus tolérable : vous pouvez coder sur VSCode et copier/coller votre code dans l'interface. Pour avoir l'autocomplétion, j'ai ajouté un fichier avec toutes les fonctions que j'ai trouvé ici : https://github.com/Bdanilko/EdPy/blob/master/src/EdPy.py
Un conseil pour que ce soit plus tolérable : vous pouvez coder sur VSCode et copier/coller votre code dans l'interface. Pour avoir l'autocomplétion, j'ai ajouté un fichier avec toutes les fonctions que j'ai trouvé ici : https://github.com/Bdanilko/EdPy/blob/master/src/EdPy.py
Utilisez le gitlab - un dossier est déjà créé à l'intérieur - et prenez plusieurs PC (quand vous faites une maj et que vous devez patch tous les robots à 3 minutes du démarrage de la manche, vous serez contents d'être plusieurs sur le coup !). => Là rentre en jeu la numérotation des robots et une feuille avec la liste des robots qui ont été patch.


== Les conseils généraux ==
== Les conseils généraux ==
Ligne 57 : Ligne 71 :
=== Le lieu ===
=== Le lieu ===


* L'éclairage change au fil de la journée : si vous êtes à côté de la baie vitrée, vous aurez un soleil rasant pour la dernière manche (=> attention à recalibrer les capteurs IR au fil du temps)
* L'éclairage change au fil de la journée : si vous êtes à côté de la baie vitrée, vous aurez un soleil rasant pour la dernière manche (=> attention à recalibrer les capteurs IR au fil du temps), pour le moment, on y a été toutes les années (et les stores ne voulais pas se baisser).
* Le buffet est bien mais se fait raid rapidement, après 16h il reste plus grand chose.
* Le buffet (bonbons l'année dernière) est bien mais se fait raid rapidement, après 16h il reste plus grand chose.
* Envoyez une personne voir les manches des autres équipes, c'est un bon moyen de spot des soucis pour votre manche (vous aurez max 15 min pour les fix par contre)
* Une multiprise est fournie mais pas de chargeur USB. Prévoyez des hub et des chargeurs en rab pour garder tous les robots à 100% avant chaque manche.
* Une multiprise est fournie mais pas de chargeur USB. Prévoyez des hub et des chargeurs en rab pour garder tous les robots à 100% avant chaque manche
* Vous aurez pas mal de robots, numérotez les dès le départ pour pas oublier d'en update/charger un. Vous êtes pas obligés de tous les utiliser à chaque fois, ça peut être renta d'en retirer pour éviter que ce soit le zbeul.
* Vous aurez pas mal de robots, numérotez les dès le départ pour pas oublier d'en update/charger un. Vous êtes pas obligés de tous les utiliser à chaque fois, ca peut être renta d'en retirer pour éviter que ce soit le zbeul.


=== Les stratégies ===
=== Les stratégies ===


* Les capteurs IR marchent pas si mal en détection d'obstacle, '''une fois calibrés'''. Pour les calibrer, il faut scanner le code barre ''Calibrate Obstacle Detection'' ici : https://meetedison.com/content/Edison-robot-barcodes.pdf . Imprimez cette feuille et ramenez la, ca sauve des vies.
* '''La stratégie de 2026''' à été de faire fonctionner les robots au '''max de leur vitesse''' (sans qu'ils sortent de la ligne) et de desservir un maximum de gares. Le capteur de distance ne marchant pas, on a juste posé les robots à équidistance au début, et quand certains se rapprochaient, on les a juste remis en place (tant pis pour la pénalité). Les autre équipes avaient des robots beaucoup plus lents, et donc ont gagné moins de points (on a roulé sur tout le monde).
* Le capteur de luminosité marche super pour détecter les gares : il suffit de faire un toit qui couvre le capteur et de détecter le changement de luminosité. Le toit doit être à max 1cm du robot en hauteur (sinon le soleil se glisse dessous en fin de journée). Les supports du toit doivent être suffisamment écartés pour pas que le robot se les bouffe.
* Les capteurs IR marchent pas si mal en détection d'obstacle (non, pas pour 2026), '''une fois calibrés'''. Pour les calibrer, il faut scanner le code barre ''Calibrate Obstacle Detection'' ici : https://meetedison.com/content/Edison-robot-barcodes.pdf . Imprimez cette feuille et ramenez-la, ça sauve des vies.
* Vous pouvez calibrer la vitesse des roues pour presque avoir l'impression qu'il y a un PID derrière le suivi de ligne.
* Vous pouvez calibrer la vitesse des roues pour presque avoir l'impression qu'il y a un PID derrière le suivi de ligne.
* Si vous voulez aller vite, faire deux fois <code>Ed.DriveRightMotor(Ed.FORWARD, Ed.SPEED_FULL , Ed.DISTANCE_UNLIMITED)</code> va plus vite qu'une seule fois.  
* Si vous voulez aller vite, faire deux fois <code>Ed.DriveRightMotor(Ed.FORWARD, Ed.SPEED_FULL , Ed.DISTANCE_UNLIMITED)</code> va plus vite qu'une seule fois.  
* Pour les embranchements, vous pouvez choisir leur direction en changeant la ligne 16 pour faire un suivi de ligne à gauche ou à droite
* Pour les embranchements, vous pouvez choisir leur direction en changeant la ligne 16 pour faire un suivi de ligne à gauche ou à droite.
* Les deux dernières années on a recouvert les robots de scotch alu pour "améliorer la détection IR" mais je pense c'est placebo, par contre ca faisait qu'ils étaient vachement stylés et tout le monde trouvait ca drôle donc possiblement à continuer.
* En 2024 et 2025, on a recouvert les robots de scotch alu pour "améliorer la détection IR" mais je pense c'est placebo, par contre ca faisait qu'ils étaient vachement stylés et tout le monde trouvait ca drôle donc possiblement à continuer.
* Une "cape" qui augmente la taille verticale des robots aide à la détection par l'arrière (+ points de swag)
* Une "cape" qui augmente la taille verticale des robots aide à la détection par l'arrière (+ points de swag) (non, pas d'après 2026...)
 
== Le code de 2026 ==
Le code est disponible sur le gitlab : https://gitlab.clubelek.fr/matthieu.felten/alstom-2026-robotique
 
Pour notre année, les lignes que les robots devaient suivre étaient en échelle de gris. Donc il fallait trouver les valeurs breakpoint de chaque robot pour passer d'un gris à un autre.
 
Dedans, il y a :
 
* Les modèles 3D des éléments du décor utilisés
* Le script de calibration pour les échelles de gris
* Un tuto pour l'utiliser (dans le README)
* Le fichier principal qu'on a utilisé durant la compétition (et qui nous a fait gagner !)
 
Les constantes ont étés trouvées un peu au pif en faisant de l'asservissement manuel, mais elles ont l'air de bien fonctionner. Juste les informations de calibration doivent être redéfinies pour chaque robot dès que l'on change de lieu ou de lumière.


== Le code de 2025 ==
== Le code de 2025 ==

Dernière version du 26 juin 2026 à 11:47

Introduction

Chaque année depuis 2024, Alstom organise une Battle Robotique avec plusieurs écoles Lyonnaises. Elle a lieu vers mai dans leurs locaux (vers vaulx-en-velin, compter une bonne demi-heure en vélo pour y aller, ou alors T1/T4 jusqu'à Charpennes puis métro A).

Cette page a pour vocation de recenser les conseils pour faire le meilleur score !

Détails de la compétition

En 2024, 2025 et 2026, le jour J se présentait comme trois manches avec un terrain qui s'agrandit entre chacune d'entre elles. Vous avez environ 3 minutes par manche, et 1h entre deux manches, sauf avant la dernière où il n'y a que 30min. L'objectif est de marquer le plus de points (en s'arrêtant aux gares) et en en perdant le moins (pas de sorties de voie, pas d'accidents et pas d'interventions humaines).

Ah, et il n'y a pas le droit à de l'électronique en plus sur le terrain, donc tout espoir de feu de signalisation part à la poubelle.

Il y a un "kickoff" qui sert à QUE DALLE, juste ils vous expliquent ce que je vous ai dit en 1 paragraphe. Mais bon il faut y aller quand même, mais si vous avez cours vous emmerdez pas.

Le cash prize va sûrement changer, les années précédentes, c'était 1000 euros pour les premiers, puis 500 pour les autres (mais en 2025, on a volé de la colle UHU donc techniquement on a plus gagné que les 3e et 4e) et en 2026, on a fait premier !!!! (donc + 1000 € sur le compte du Clubelek hehe)

Les robots

Le coupable 🖕

Sauf changement, Alstom utilise des petits bangers de robots qui s'appellent les Edison. (/s évidemment ils sont rincés du cul).

Vous en aurez genre 2 pour vous préparer (avant le jour J, environ 4 semaines) et 5 le jour de la compétition, ou un truc du genre.

Leurs specs

  • 2 récepteurs IR (droite/gauche) (GROSSE MERDE)
  • 2 émetteur IR (droite/gauche)
  • 1 buzzer
  • 2 photorésistances (droite/gauche)
  • 1 capteur de suivi de ligne
  • 2 LEDs (droite/gauche)
  • 2 moteurs CC en boucle ouverte

Et c'est tout.

Voici les conseils des années précédentes (sauf de 2026) :

Dans l'idée c'est pas mal, en revanche il est impossible de les faire communiquer entre eux. Oui, même votre super idée de protocole de communication mesh en infrarouge avec correction d'erreur qui marche super au club. Il y a beaucoup trop d'interférences IR le jour de la compétition, la range max est de 3 cm à tout péter.

De plus, le capteur suivi de ligne est utilisable uniquement en 0 ou 1. Il renvoie une valeur analogique, mais ca varie tellement avec l'éclairage et l'état de la piste (les roues des robots font des traces sur le tapis) que vous allez juste galérer pour rien.

Ces conseils sont donnés après deux années d'expérience avec ces robots de merde, et environ 1200 lignes de code qui essaie de les faire moins puer leur mère, soldées à chaque fois par un échec cuisant et une réecriture du code en 20 lignes.

/!\ Leurs batteries font changer la vitesse des moteurs et de la préscision des capteurs (y compris le suivis de ligne) donc gardez les tous les plus chargés possibles sinon ils risquent de se rattraper.

Conseils de 2026 :

La communication est possible (et nécessaire pour une manche), mais ne basez rien d'autre là-dessus, ce sera juste de la récéption d'un octet....

/!\ Le capteur de distance doit être calibré avant la compétition : https://meetedison.com/content/Edison-robot-barcodes.pdf

La texture de la map a changé, et est beaucoup mieux (moins de traces par les robots) et avec une échelle de gris pour les gares et intersections. Des exemples sont dans un des casiers du club.

Le code

Pour programmer ces robots, vous ferez la connaissance de EdPy, qui est je pense le pire language que j'ai jamais utilisé (et j'ai fait du brainfuck sur papier un jour). Globalement c'est du Python, mais en moins bien. Vous ne pourrez pas les flash depuis autre chose que leur interface pourri.

Les limitations de EdPy

  • Un seul fichier
  • Pas de classe
  • Pas de liste 2D (donc pas de liste de string)
  • Pas de fonctions built-in
  • Uniquement des variables en int
  • Plein d'autre trucs mais j'avoue flemme de les lister, en gros, c'est du C mais transformé avec la syntaxe de Python :/

Bon le conseil principal que je peux vous donner : faites au plus simple. Utilisez le suivi de ligne le plus simple possible, ne communiquez pas entre les robots, hardcodez le plus possible.

Un conseil pour que ce soit plus tolérable : vous pouvez coder sur VSCode et copier/coller votre code dans l'interface. Pour avoir l'autocomplétion, j'ai ajouté un fichier avec toutes les fonctions que j'ai trouvé ici : https://github.com/Bdanilko/EdPy/blob/master/src/EdPy.py

Utilisez le gitlab - un dossier est déjà créé à l'intérieur - et prenez plusieurs PC (quand vous faites une maj et que vous devez patch tous les robots à 3 minutes du démarrage de la manche, vous serez contents d'être plusieurs sur le coup !). => Là rentre en jeu la numérotation des robots et une feuille avec la liste des robots qui ont été patch.

Les conseils généraux

Le lieu

  • L'éclairage change au fil de la journée : si vous êtes à côté de la baie vitrée, vous aurez un soleil rasant pour la dernière manche (=> attention à recalibrer les capteurs IR au fil du temps), pour le moment, on y a été toutes les années (et les stores ne voulais pas se baisser).
  • Le buffet (bonbons l'année dernière) est bien mais se fait raid rapidement, après 16h il reste plus grand chose.
  • Une multiprise est fournie mais pas de chargeur USB. Prévoyez des hub et des chargeurs en rab pour garder tous les robots à 100% avant chaque manche.
  • Vous aurez pas mal de robots, numérotez les dès le départ pour pas oublier d'en update/charger un. Vous êtes pas obligés de tous les utiliser à chaque fois, ça peut être renta d'en retirer pour éviter que ce soit le zbeul.

Les stratégies

  • La stratégie de 2026 à été de faire fonctionner les robots au max de leur vitesse (sans qu'ils sortent de la ligne) et de desservir un maximum de gares. Le capteur de distance ne marchant pas, on a juste posé les robots à équidistance au début, et quand certains se rapprochaient, on les a juste remis en place (tant pis pour la pénalité). Les autre équipes avaient des robots beaucoup plus lents, et donc ont gagné moins de points (on a roulé sur tout le monde).
  • Les capteurs IR marchent pas si mal en détection d'obstacle (non, pas pour 2026), une fois calibrés. Pour les calibrer, il faut scanner le code barre Calibrate Obstacle Detection ici : https://meetedison.com/content/Edison-robot-barcodes.pdf . Imprimez cette feuille et ramenez-la, ça sauve des vies.
  • Vous pouvez calibrer la vitesse des roues pour presque avoir l'impression qu'il y a un PID derrière le suivi de ligne.
  • Si vous voulez aller vite, faire deux fois Ed.DriveRightMotor(Ed.FORWARD, Ed.SPEED_FULL , Ed.DISTANCE_UNLIMITED) va plus vite qu'une seule fois.
  • Pour les embranchements, vous pouvez choisir leur direction en changeant la ligne 16 pour faire un suivi de ligne à gauche ou à droite.
  • En 2024 et 2025, on a recouvert les robots de scotch alu pour "améliorer la détection IR" mais je pense c'est placebo, par contre ca faisait qu'ils étaient vachement stylés et tout le monde trouvait ca drôle donc possiblement à continuer.
  • Une "cape" qui augmente la taille verticale des robots aide à la détection par l'arrière (+ points de swag) (non, pas d'après 2026...)

Le code de 2026

Le code est disponible sur le gitlab : https://gitlab.clubelek.fr/matthieu.felten/alstom-2026-robotique

Pour notre année, les lignes que les robots devaient suivre étaient en échelle de gris. Donc il fallait trouver les valeurs breakpoint de chaque robot pour passer d'un gris à un autre.

Dedans, il y a :

  • Les modèles 3D des éléments du décor utilisés
  • Le script de calibration pour les échelles de gris
  • Un tuto pour l'utiliser (dans le README)
  • Le fichier principal qu'on a utilisé durant la compétition (et qui nous a fait gagner !)

Les constantes ont étés trouvées un peu au pif en faisant de l'asservissement manuel, mais elles ont l'air de bien fonctionner. Juste les informations de calibration doivent être redéfinies pour chaque robot dès que l'on change de lieu ou de lumière.

Le code de 2025

Nous avions le droit a des robots "gares", qui avaient des tubes à la place des roues et qui faisaient barrière. Il fallait donc que les robots "trains" s'arrêtent avant, puis continuent lorsque la barrière est levée. Nous avions une solution ultra complexe qui a pas marché du tout, et donc en 45 minutes entre les deux manches, nous avons fait ca pour les trains :

import Ed

Ed.EdisonVersion = Ed.V3

Ed.DistanceUnits = Ed.CM
Ed.Tempo = Ed.TEMPO_MEDIUM

Ed.TimeWait(250, Ed.TIME_MILLISECONDS)
Ed.ObstacleDetectionBeam(Ed.ON)

Ed.LineTrackerLed(Ed.ON)

driving = True;
while True:
    if driving :
        if Ed.ReadLineState()==Ed.LINE_ON_WHITE :
            Ed.DriveLeftMotor(Ed.STOP, Ed.SPEED_1, Ed.DISTANCE_UNLIMITED)
            Ed.DriveRightMotor(Ed.FORWARD, Ed.SPEED_8 , Ed.DISTANCE_UNLIMITED)
        else :
            Ed.DriveLeftMotor(Ed.FORWARD, Ed.SPEED_FULL, Ed.DISTANCE_UNLIMITED)
            Ed.DriveRightMotor(Ed.STOP, Ed.SPEED_1, Ed.DISTANCE_UNLIMITED)
    else :
        Ed.Drive(Ed.STOP, Ed.SPEED_FULL, Ed.DISTANCE_UNLIMITED)
    if Ed.ReadObstacleDetection() > 0 :
        driving = False
    else :
        driving = True
        
    Ed.ReadObstacleDetection()

Dans l'idée ils suivent la ligne tant qu'ils ont pas d'obstacle. Les différentes vitesses ont étées ajustées par la méthode scientifique pour avoir les meilleures perfs possibles (c'est faux on a fait au pif). Pour s'arrêter aux gares, nous avions mis des bouts de papier sur les barrières qu'ils détectaient. Mais comment faisions-nous pour que les gares s'ouvrent toutes en même temps et laissent passer les robots ? Très simple :

import Ed
Ed.DistanceUnits = Ed.CM
Ed.Tempo = Ed.TEMPO_MEDIUM
Ed.EdisonVersion = Ed.V3


def openBarrier() :
    Ed.Drive(Ed.SPIN_LEFT, Ed.SPEED_4, 47)

def closeBarriers() :
    Ed.Drive(Ed.SPIN_RIGHT, Ed.SPEED_4, 47)

Ed.TimeWait(4, Ed.TIME_SECONDS)
while True:
    openBarrier()
    Ed.TimeWait(500, Ed.TIME_MILLISECONDS);
    closeBarriers();
    Ed.TimeWait(8, Ed.TIME_SECONDS);

Ouais c'est tout, juste on hardcodait des valeurs au pif. Ca a bien marché, on est passés de big derniers à deuxième en jouant que deux manches sur trois.