Avancer-Reculer entre deux obstacles
Question
Le robot doit avancer jusqu'à détecter un obstacle devant lui, puis reculer jusqu'à rencontrer un obstacle derrière lui.
Il est nécessaire pour réaliser cette tâche d'utiliser des capteurs de types sonar ultrasons ou infrarouge. On se fixera un seuil de détection minimum correspondant à quelques centimètres avant l'obstacle.
Question
On pourra ensuite calculer la loi de vitesse à imposer aux roues pour ralentir avant l'obstacle, s'arrêter et repartir en marche arrière.
function azolla.main(azolla)
while true do
front = azolla:readsensor(0)
back = azolla:readsensor(3)
-- Définir le sens
if(front<12) then
sens=-1
end
if(back<12) then
sens=1
end
-- Vitesse constante
if(front>20 and back>20) then
vitesse=20;
end
-- Accéléré ou ralentir
if(front<20) then
vitesse=2*front-20;
end
if(back<20) then
vitesse=2*back-20;
end
azolla:setspeed(sens*vitesse+1,sens*vitesse+1)
azolla:stepforward()
end
end