Page 254 - The Definitive Guide to Building Java Robots
P. 254
Preston_5564C07.fm Page 235 Monday, September 26, 2005 5:38 AM
CHAPTER 7 ■ NAVIGATION 235
ir2b:
IF IN5=0 THEN ir2b
SHIFTIN din2,dout2,2,[dist2\8]
HIGH dout2
RETURN
sonar1:
PULSOUT INIT1,5 ' 10us init pulse
OUTPUT INIT1 ' (delay)
RCTIME ECHO1,1,wDist1 ' measure echo time
wDist1=wDist1/convfac ' convert to inches
RETURN
sonar2:
PULSOUT INIT2,5 ' 10us init pulse
OUTPUT INIT2 ' (delay)
RCTIME ECHO2,1,wDist2 ' measure echo time
wDist2=wDist2/convfac ' convert to inches
RETURN
sonar3:
PULSOUT INIT3,5 ' 10us init pulse
OUTPUT INIT3 ' (delay)
RCTIME ECHO3,1,wDist3 ' measure echo time
wDist3=wDist3/convfac ' convert to inches
RETURN
get_lat:
*SERIN GPS,N4800,2000,get_lat,[WAIT("GPRMC,"),SKIP 7,status,SKIP 1,➥
STR gpsData1\4,SKIP 1,STR gpsData2\4]
*SEROUT 16,N9600,[status,",0",gpsData1(0),gpsData1(1),":",gpsData1(2), ➥
gpsData1(3),".",gpsData2(0),gpsData2(1),gpsData2(2),gpsData2(3)]
*GOTO main
get_lon:
*SERIN GPS,N4800,2000,get_lon,[WAIT("GPRMC,"),SKIP 7,status,SKIP 13,➥
STR gpsData1\5,SKIP 1,STR gpsData2\4]
*SEROUT 16,N9600,[status,",",gpsData1(0),gpsData1(1),gpsData1(2),➥
":",gpsData1(3),➥
gpsData1(4),".",gpsData2(0),gpsData2(1),gpsData2(2),gpsData2(3)]
*GOTO main
get_diag:
SEROUT 16,N9600,["1","2","3"]
goto main
Section Summary
Now I am ready to get the robot to navigate. Though the previous section was just an introduction,
I covered various foundational topics, such as
• Basic Graph Theory: Describing ideal navigation scenarios
• Robot Configuration: Describing the components and structure of the robot being used
to demonstrate navigation