Page 250 ·
Robotics with the Boe-Bot
irDetectLeft = IN9
The
IF…THEN
statements were modified so that they look at the variables that store the IR
pair detections instead of the whisker inputs.
IF (irDetectLeft = 0) AND (irDetectRight = 0) THEN
GOSUB Back_Up
GOSUB Turn_Left
GOSUB Turn_Left
ELSEIF (irDetectLeft = 0) THEN
GOSUB Back_Up
GOSUB Turn_Right
ELSEIF (irDetectRight = 0) THEN
GOSUB Back_Up
GOSUB Turn_Left
ELSE
GOSUB Forward_Pulse
ENDIF
Example Program – RoamingWithIr.bs2
√
Open RoamingWithWhiskers.bs2
√
Modify it so that it matches the program below.
√
Reconnect power to your board and servos.
√
Save and run it.
√
Verify that, aside from the fact that there’s no contact required, it behaves like
RoamingWithWhiskers.bs2.
' -----[ Title ]--------------------------------------------------------------
' Robotics with the Boe-Bot - RoamingWithIr.bs2
' Adapt RoamingWithWhiskers.bs2 for use with IR pairs.
' {$STAMP BS2} ' Stamp directive.
' {$PBASIC 2.5} ' PBASIC directive.
DEBUG "Program Running!"
' -----[ Variables ]----------------------------------------------------------
irDetectLeft VAR Bit
irDetectRight VAR Bit
pulseCount VAR Byte
' -----[ Initialization ]-----------------------------------------------------