Symbol dangerlevel = 70’ how far away should thing be, before we react?
symbol turn = 300’ this sets how much should be turned
symbol servo_turn = 20’ This sets for how long time we should wait for the servo to turn (depending on it´s speed) before we measure distance
main: ’ the main loop
readadc 1, b1 ’ read how much distance ahead
if b1 < dangerlevel then
gosub nodanger ’ if nothing ahead, drive forward
else
gosub whichway ’ if obstacle ahead then decide which way is better
end if
goto main ’ this ends the loop, the rest are only sub-routines
nodanger:’ this should be your combination to make the robot drive forward, these you most likely need to adjust to fit the way you have wired your robots motors
high 5 : high 7 : low 4 : low 6
return
whichway:
gosub totalhalt ’ first stop!
‘Look one way:
gosub lturn ’ look to one side
pause servo_turn ’ wait for the servo to be finished turning
gosub totalhalt
servo 1, b1
’Look the other way:
gosub rturn ’ look to another side
pause servo_turn ’ wait for the servo to be finished turning
gosub totalhalt
servo 1, b2
’ Decide which is the better way:
if b1<b2 then
gosub body_lturn
else
gosub body_rturn
end if
return
body_lturn:
high 7 : low 5 : low 6 : high 4 ’ this should be your combination that turns the robot one way
pause turn : gosub totalhalt
return
body_rturn:
high 4 : low 7 : low 4 : high 6 ’ this should be your combination that turns the robot the other way
pause turn : gosub totalhalt
rturn:
servo 0,95’ look to one side
wait 1
return
lturn:
servo 0, 160 ’ look to the other side
wait 5
totalhalt:
low 4 : low 5 : low 7 : low 6’ low on all 4 halts the robot!
Servo 1,75’ face forward
wait 1 ’ freeze all for one second
return