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

' {$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

โปรเกรมที่a16-1

' {$STAMP BS2sx}
' {$PBASIC 2.5}
ADC VAR Word
CH 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 DigitalConverter 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

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

' {$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

ใช้รีโมทเพื่อคาบคุมหุน

' {$STAMP BS2sx}
' {$PBASIC 2.5}
key VAR Byte
DO
SERIN 3,2063[key]
IF key ="D" OR key = "d" THEN GOSUB forward
IF key ="A" OR key = "a" THEN GOSUB backwards
IF key ="C" OR key = "c" THEN GOSUB s_left
IF key ="B" OR key = "b" THEN GOSUB s_right
LOOP
forward : HIGH 13 :LOW 12 : HIGH 15 :LOW 14 : RETURN
backwards : 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

วันพฤหัสบดีที่ 8 พฤศจิกายน พ.ศ. 2550

โปรเกรมที่2

' {$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 : RETURNBackward : HIGH 12 : LOW 13 : HIGH 14 : LOW 15 : RETURNS_Left : HIGH 13 : LOW 12 : HIGH 14 : LOW 15 : RETURNS_Right : HIGH 12 : LOW 13 : HIGH 15 : LOW 14 : RETURNT_Left : HIGH 12 : LOW 13 : LOW 15 : LOW 14 : RETURNT_Right: LOW 12: HIGH 13 : HIGH 15 : HIGH 14 : RETURNMotor_OFF : LOW 13 : LOW 12 : LOW 14 : LOW 15 : RETURN'+++++++++++++++++++++++++++++++++++++++++++++++++++++++