Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ' {$STAMP BS2sx}
- ' {$PBASIC 2.5}
- ' {$PORT COM1}
- CH VAR Nib
- CNT VAR Byte
- ADC VAR Word
- ADC1 VAR Word
- ADC2 VAR Word
- Init: DIRD = %1111
- PAUSE 1000
- Main: GOSUB GP2
- IF ((ADC1<10) AND (ADC2<10)) THEN
- GOSUB S_Left
- ENDIF
- IF (ADC1 > (ADC2+100)) THEN
- GOSUB S_Left
- ENDIF
- IF (ADC2 > (ADC1+100)) THEN
- GOSUB S_Right
- ENDIF
- IF ((ABS(ADC1-ADC2)) < 100) THEN
- GOSUB Forward
- ENDIF
- CH=1 : GOSUB RD_ADC
- IF (ADC>350) THEN
- GOSUB Backward
- PAUSE 1000
- GOSUB S_right
- PAUSE 2000
- ENDIF
- GOTO Main
- GP2: CH=0 : GOSUB RD_ADC : ADC1 = ADC
- CH=2 : GOSUB RD_ADC : ADC2 = ADC
- RETURN
- '+++++ Analog to Digital Converter Procedure ++++++++++
- RD_ADC: LOW 10: PAUSE 1: HIGH 10 ' Send Acknowledge
- SEROUT 10,240,[CH] ' Send Select Chip
- SERIN 10,240,[ADC.BYTE0,ADC.BYTE1] ' Read ADC
- RETURN
- '++++++++++++++++++++++++++++++++++++++++++++++++++++++
- '+++++ Generate Sound +++++++++++++++++++++++++++++++++
- Beep: FREQOUT 11,300,800 ' Sound subroutine
- RETURN
- '++++++++++++++++++++++++++++++++++++++++++++++++++++++
- '+++++ Movement Procedure +++++++++++++++++++++++++++++
- Forward: OUTD = %1010 : RETURN ' Motor A --> and Motor B --> Go Forward
- Backward: OUTD = %0101 : RETURN ' Motor A <-- and Motor B <-- Go Backward
- S_Left: OUTD = %0110 : RETURN ' Robot Spin Left
- S_Right: OUTD = %1001 : RETURN ' Robot Spin Right
- Motor_OFF: OUTD = %0000 : RETURN ' Stop All Motor
- '++++++++++++++++++++++++++++++++++++++++++++++++++++++
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement