'*****SAM ROBOT RUNNING PROGRAM (Rev 6) '*****MODIFIED REVISION WITH RADIO DIRECTION CONTROL '*****INFRARED PROXIMTY SENSOR FOR OBJECT DETECTION '*****ON PIN 11 '*****SPEAKER OUTPUT ON PIN 12 '*****HEAD MOTOR PIN 10 '*****LEFT MOTOR PIN 9 '*****RIGHT MOTOR PIN 8 '*****BY RCI COMPUTRONICS (ALL RIGHTS NOT IN MIND) '*****setup all variables here****** x var word maxpos con 1100 'max position midpos con 675 'neutral position minpos con 300 'min position c con 30 'time to delay for forward b con 30 'time to delay for backup a con 110 'time delay for right 180 l con 10 'time delay for left 90 r con 10 'time delay for right 90 speaker con 15 'speaker out pin 15 of stamp hs con 10 'head servo output ls con 9 'left servo output rs con 8 'right servo output ncount var word m var IN11 'motion input sensor phon var byte direct var inl x=0 dirh = %10010111 dirl = %00000000 start: '******this is the start of program******* gosub sound9 gosub rst if m=0 then chill '***If prox sensor tripped*** fl: '*****this is the forward loop remote: if direct=15 then remote if direct=14 then fwd if direct=13 then bk if direct=11 then rt if direct=12 then lt if direct=10 then sound0 if direct=9 then hl if direct=8 then hr if direct=7 then sound4 goto remote goto fl lt: '***************MOTOR LEFT*************** for x= 1 to l pulsout ls,maxpos pulsout rs,maxpos pause 10 next goto remote rt: '***************MOTOR RIGHT*************** for x= 1 to r pulsout ls,minpos pulsout rs,minpos pause 10 next goto remote af: '***************MOTOR RIGHT 180********* pause 50 for x= 1 to a pulsout ls,minpos pulsout rs,minpos pause 10 next goto remote fwd: '***************MOTOR FORWARD*************** for x= 1 to c if m=0 then chill pulsout ls,maxpos pulsout rs,minpos pause 10 next goto remote bk: '***************MOTOR BACKWARD*************** for x= 1 to b pulsout ls,minpos pulsout rs,maxpos pause 10 next goto remote hl: '*********HEAD LEFT************ gosub sound3 for x= 1 to c pulsout hs,maxpos pause 10 next aa: if direct=9 then aa gosub rst return hr: '********HEAD RIGHT*********** gosub sound3 for x= 1 to c pulsout hs,minpos pause 10 next bb: if direct=8 then bb gosub rst goto remote mid: '********HEAD MID************* for x= 1 to c pulsout hs,midpos pause 10 next goto remote rst: '********HEAD RESET*********** gosub sound3 for x= 1 to c pulsout hs,midpos pause 10 next goto remote goto start '****return to the beginning of program******* '*******************Sound Subroutines**************************** sound0: pause 10 freqout speaker,140,4200 'this makes a bunch of sounds freqout speaker,90,3600 freqout speaker,90,3800 freqout speaker,30,3300 freqout speaker,30,2800 freqout speaker,30,2400 freqout speaker,140,4200 freqout speaker,90,2000 freqout speaker,70,4200 return sound1: pause 10 freqout speaker,40,4400 freqout speaker,20,3600 freqout speaker,60,3500 freqout speaker,30,4200 freqout speaker,10,3800 freqout speaker,90,3000 freqout speaker,10,2400 freqout speaker,40,4300 freqout speaker,50,3800 freqout speaker,20,2200 freqout speaker,150,0 return sound2: pause 10 freqout speaker,100,2800 freqout speaker,200,2400 freqout speaker,140,4200 freqout speaker,30,2000 return sound3: pause 10 freqout speaker,60,5200,4000 freqout speaker,30,4200 freqout speaker,60,5200,4000 freqout speaker,30,4200 freqout speaker,100,0 return sound4 freqout speaker,800,391 freqout speaker,800,588 freqout speaker,150,521 freqout speaker,150,495 freqout speaker,150,439 freqout speaker,800,781 freqout speaker,800,588 freqout speaker,150,521 freqout speaker,150,495 freqout speaker,150,439 freqout speaker,800,781 freqout speaker,800,588 freqout speaker,150,521 freqout speaker,150,495 freqout speaker,150,521 freqout speaker,800,439 return sound9: gosub chirp gosub sound0 freqout speaker,150,0 for ncount = 1 to 2 gosub chirp pause 10 next return chirp: pause 10 freqout speaker,14,4500 freqout speaker,11,4200 freqout speaker,14,4500 freqout speaker,11,4200 freqout speaker,14,4500 freqout speaker,11,4200 freqout speaker,14,4500 freqout speaker,11,4200 freqout speaker,150,0 return chill: pause 2000 return