Le défi proposé consiste à programmer un robot capable de suivre un couloir au centre, de s’arrêter en fin de couloir, puis de choisir une nouvelle direction en privilégiant une possibilité d’un nouveau couloir à droite.
Le robot est équipé de trois capteurs de collision :
- Un capteur avant : détecte la fin du couloir ou un obstacle frontal.
- Un capteur latéral droit : permet de rester centré dans le couloir et de vérifier si un passage existe à droite.
- Un capteur latéral gauche : même rôle que le droit, mais du côté gauche.
Suivre le couloir au centre
Tant que le capteur avant ne détecte pas la fin du couloir :
- le robot avance,
- il vérifie la distance avec les murs grâce aux capteurs gauche et droit,
- si l’un des murs est trop proche, il s’en éloigne légèrement pour rester centré.
Détection de fin de couloir
Lorsque le capteur avant détecte un obstacle frontal ou l’absence de mur en face :
- le robot s’arrête,
- il regarde à droite, puis à gauche, pour déterminer s’il existe un nouveau couloir dans l’une de ces directions.
Choix de la direction
- Si un passage existe à droite, il tourne à droite et avance.
- Sinon, si un passage existe à gauche, il tourne à gauche et avance.
- Sinon, aucune direction n’est possible : le robot effectue un demi-tour.
Algorithme simplifié
répéter :
si capteur avant détecte fin du couloir :
arrêter le robot
si côté droit ouvert :
tourner à droite
sinon si côté gauche ouvert :
tourner à gauche
sinon :
faire demi-tour
sinon :
si mur trop proche à droite : se décaler à gauche
sinon si mur trop proche à gauche : se décaler à droite
sinon avancer au centre du couloir
Le code sous mBlock :

Pour aller tout droit dans le couloir :

Pour choisir sa direction :

