Chapter 5: Tactile Navigation With Whiskers Presentation based on: "Robotics with the Boe-Bot" By Andy Lindsay Parallax, Inc Presentation developed by: Martin A. Hebel Southern Illinois University Carbondale College of Applied Sciences and Arts Electronic Systems Technologies 7/6/04 1 Tactile Whiskers as switches 2 3 4 5 Whisker "switch" open and closed 6 Code to View Whisker Switch States Code: DO: DEBUG CLS, ? IN5, ? IN7 Pause 100 LOOP See "TestWhisker.bs2" 7 Adding LED Indication 8 Code using IF…THEN 9 AI – Escaping Corners ' --- Detect Consecutive Alternate Corners -----------------------' See the "How EscapingCorners.bs2 Works" section that follows this program. IF (IN7 <> IN5) THEN ' One or other is pressed. IF (Old7 <> IN7) AND (Old5 <> IN5) THEN ' Different from previous. counter = counter + 1 ' Alternate whisker count + 1. old7 = IN7 ' Record this whisker press old5 = IN5 ' for next comparison. IF (counter > 4) THEN ' If alternate whisker count = 4, counter = 1 ' reset whisker counter GOSUB Back_Up ' and execute a U-turn. GOSUB Turn_Left GOSUB Turn_Left ENDIF ' ENDIF counter > 4. ELSE ' ELSE (old7=IN7) or (old5=IN5), counter = 1 ' not alternate, reset counter. ENDIF ' ENDIF (old7<>IN7) and ' (old5<>IN5). ENDIF ' ENDIF (IN7<>IN5). 10 Moving Forward 11 Simplifying Navigation with Subroutines GOSUB – Used to temporarily branch to another a section of code. Return – Used to return to where it jumped from. See program "OneSubroutine.bs2" 12 Roaming with Whiskers See "RoamingWithWhiskers.bs2" 13