Page 291 - Hacking Roomba
P. 291

272       Part III — More Complex Interfacing





                               Listing 13-1 Continued

                                        PAUSE 1000
                                   ELSEIF BUMP_LEFT THEN
                                        GOSUB Spin_Right
                                        PAUSE 1000
                                   ENDIF

                                   GOSUB Go_Forward
                                   PAUSE 100
                                   IF WHEELDROP_C THEN
                                        GOTO Done
                                   ENDIF
                                   GOTO Main

                               Done:
                                   PAUSE 1000
                                   SEROUT RXD, BAUDSLOW, [R_POWER]  ‘ turn off
                                   STOP

                               Spin_Left:
                                   SEROUT RXD,BAUDSLOW, [R_DRIVE,$00,$c8,$00,$01]
                                   RETURN
                               Spin_Right:
                                   SEROUT RXD,BAUDSLOW, [R_DRIVE,$00,$c8,$ff,$ff]
                                   RETURN
                               Go_Forward:
                                   SEROUT RXD,BAUDSLOW, [R_DRIVE,$00,$c8,$80,$00]
                                   RETURN
                               Go_Stop:
                                   SEROUT RXD,BAUDSLOW, [R_DRIVE,$00,$00,$00,$00]
                                   RETURN
                               ‘ Get sensor packet 1, which is 10 bytes
                               Update_Sensors:
                                   DEBUG “update sensors”,CR
                                   SEROUT RXD, BAUDSLOW, [R_SENSORS, 1]
                                   SERIN  TXD, BAUDSLOW, 2000, No_Data,
                                        [SENS_BUMPWHEEL,SENS_WALL,

                                        SENS_CLIFF_L,SENS_CLIFF_FL,SENS_CLIFF_FR,SENS_CLIFF_R,
                                        SENS_VWALL,SENS_MOTOROVER,SENS_DIRT_L,SENS_DIRT_R]
                                   RETURN
                               No_Data:
                                   DEBUG “no data!”,CR
                                   RETURN
   286   287   288   289   290   291   292   293   294   295   296