วันศุกร์ที่ 9 พฤศจิกายน พ.ศ. 2550

การเขียนโปรแกรมหุ่นยนต์ ให้หุ่นเดินตามที่เรากำหนดโดยนับจำนวนวงรีที่ล้อที่หุ่นเห็น

' {$STAMP BS2sx}
' {$PBASIC 2.5}
ADC VAR Word
CH VAR Byte
CNT VAR Byte

CNT = 0
PAUSE 1000
GOSUB Forward
DO
CH = 3 : GOSUB RD_ADC
IF (ADC < 100) THEN
DO
CH = 3 : GOSUB RD_ADC
LOOP UNTIL (ADC > 100)
CNT = CNT + 1
DEBUG DEC CNT
ENDIF
LOOP UNTIL (CNT > 19)
GOSUB Motor_OFF
STOP
'+++++ Analog to Digital Converter Procedure ++++++++++
RD_ADC: LOW 10 : PAUSE 2: HIGH 10
SEROUT 10,240, [CH]
SERIN 10,240,25,Error, [ADC.BYTE0,ADC.BYTE1]
RETURN
Error: DEBUG "Error Reading", CR
RETURN
'+++++++++++++++Movement Procedure+++++++++++++++++++++
Forward : HIGH 13 :LOW 12 : HIGH 15 :LOW 14 : RETURN
Backward : HIGH 12 : LOW 13 : HIGH 14 : LOW 15 : RETURN
S_Left : HIGH 13 : LOW 12 : HIGH 14 : LOW 15 : RETURN
S_Right : HIGH 12 : LOW 13 : HIGH 15 : LOW 14 : RETURN
T_Left : HIGH 12 : LOW 13 : LOW 15 : LOW 14 : RETURN
T_Right: LOW 12: HIGH 13 : HIGH 15 : HIGH 14 : RETURN
Motor_OFF : LOW 13 : LOW 12 : LOW 14 : LOW 15 : RETURN

การเขียนโปรแกรมหุ่นยนต์ ให้หุ่นเดินตามที่เรากำหนดโดยนับจำนวนวงรีที่ล้อที่หุ่นเห็น

' {$STAMP BS2sx}

' {$PBASIC 2.5}

ADC VAR WordCH

VAR Byte

DO

CH = 3

GOSUB RD+_ADC

DEBUG CLS, "LEFT SENSOR = ", DEC ADC, TAB

CH = 5

GOSUB RD_ADC

DEBUG "RIGHT SENSOR = ", DEC ADC, TAB

PAUSE 300

LOOP

'+++++ Analog TO Digital Converter Procedure +++++++++

RD_ADX: LOW 1 : PAUSE 2: HIGH 10

SEROUT 10,240,[CH]

SERIN 10,240,25,Error, [ADC.BYTE0,ADC.BYTE1]

RETURN

Error: DEBUG "Error Reading:, CR

RETURN

กิจกรรมที่ 1

' {$STAMP BS2sx}
' {$PBASIC 2.5}
ADC VAR Word
CH VAR Byte
CNT VAR Byte
CNT = 0
PAUSE 1000
HIGH 15 : LOW 14 : HIGH 13 : LOW 12
DO
CH = 3 : GOSUB RD_ADC
IF ADC < 100 THEN
DO
CH = 3 : GOSUB RD_ADC
LOOP UNTIL(ADC > 100)CNT = CNT + 1
ENDIF
CH = 5
PAUSE 300
GOSUB One_block
CNT=0
GOSUB One_nt
CNT=0
GOSUB One_block
CNT=0
GOSUB One_nt
CNT=0
GOSUB One_nt
CNT=0
GOSUB One_block
CNT=0
GOSUB One_ntrv
CNT=0
GOSUB One_block
END
RD_ADC: LOW 10 : PAUSE 2 : HIGH 10
SEROUT 10,240,[CH]
SERIN 10,240,250,Error,[ADC.BYTE0,ADC.BYTE1]RETURN
Error: DEBUG "Error reading", CR
RETURN
One_block:DO LOOP UNTIL(CNT > 11)
LOW 15 : HIGH 14 : LOW 13 : HIGH 12
PAUSE 100
LOW 15 : LOW 14 : LOW 13 : LOW 12
STOP :RETURN
One_nt:DO LOOP UNTIL(CNT > 3)
LOW 15 : LOW 14 : LOW 13 : HIGH 12
PAUSE 100
..
LOW 15 : LOW 14 : LOW 13 : LOW 12
STOP :RETURN
One_ntrv:DO LOOP UNTIL(CNT > 3)
LOW 15 : HIGH 14 : LOW 13 : LOW 12
PAUSE 100
LOW 15 : LOW 14 : LOW 13 : LOW 12
STOP :RETURN

การเขียนโปรแกรมหุ่นยนต์ ให้หน้าต่างDebug Terminal และ แสดงค่าของRremoteตามที่เรากด

CODE ที่ได้
' {$STAMP BS2sx}
' {$PBASIC 2.5}key VAR Byte
DO
SERIN 3,2063,[key] 'recive 1200 8n1 on p3
DEBUG key , TAB ' show on debug terminal
LOOP