วันพฤหัสบดีที่ 14 กุมภาพันธ์ พ.ศ. 2551

Calculater

http://upload.212cafe.com/file.php?id=44ee12e657769c5f18a017dee14dedd7

วันอังคารที่ 30 ตุลาคม พ.ศ. 2550

Remote Control

' {$STAMP BS2sx}
' {$PBASIC 2.5}
KEY VAR Byte
main: DO
SERIN 3,2063,250,timeout,[KEY]
IF KEY = "D" OR KEY = "d" THEN GOSUB forward
IF KEY = "A" OR KEY = "a" THEN GOSUB backwarD
IF KEY = "C" OR KEY = "c" THEN GOSUB t_left
IF KEY = "B" OR KEY = "b" THEN GOSUB t_right
LOOP
GOTO main
timeout: LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
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_Right: LOW 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
T_LEFT: HIGH 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
Motor_off:LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN

วันพุธที่ 19 กันยายน พ.ศ. 2550

รวม Sensor

ตรวจสอบระยะห่างด้วย ADC ว่าถ้าระยะใกล้มากกว่าตัวเลขที่กำหนดเช่น 385 โปรแกรมจะคำนวณตามสูตร
สูตรต่างกันที่ ( ADC > 385(ใกล้ที่สุด),320(3cm),250(5cm) )

วัตถุประสงค์

วิชา RobotPrograming เรียนไปเพื่อ ทำให้เขียนโปรแกรมเป็น และนำไปประยุกต์ใช้

Sensor 3cm

Code:
' {$STAMP BS2sx}
' {$PBASIC 2.5}
' {$PORT COM1}
ADC VAR Word
R VAR Word
I VAR Byte
X VAR Word
PAUSE 1000
HIGH 10
DO
GOSUB forward
GOSUB RD_ADC
IF ( ADC > 320 ) THEN
GOSUB backward : PAUSE 80
GOSUB motor_off : PAUSE 10000
ENDIF
LOOP
RD_ADC: LOW 10 : PAUSE 1 : HIGH 10
SEROUT 10,240,[1]
SERIN 10,240,[ADC.BYTE0,adc.BYTE1]
RETURN
Error: DEBUG "Error Reading" , CR
RETURN
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_Right: LOW 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
T_LEFT: HIGH 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
Motor_off:LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN

Sensor 5cm

Code:
' {$STAMP BS2sx}
' {$PBASIC 2.5}
' {$PORT COM1}
ADC VAR Word
R VAR Word
I VAR Byte
X VAR Word
PAUSE 1000
HIGH 10
DO
GOSUB forward
GOSUB RD_ADC
IF ( ADC > 250 ) THEN
GOSUB backward : PAUSE 80
GOSUB motor_off : PAUSE 10000
ENDIF
LOOP
RD_ADC: LOW 10 : PAUSE 1 : HIGH 10
SEROUT 10,240,[1]
SERIN 10,240,[ADC.BYTE0,adc.BYTE1]
RETURN
Error: DEBUG "Error Reading" , CR
RETURN
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_Right: LOW 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
T_LEFT: HIGH 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
Motor_off:LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN

Sensor ใกล้ที่สุด

Code:
' {$STAMP BS2sx}
' {$PBASIC 2.5}
' {$PORT COM1}
ADC VAR Word
R VAR Word
I VAR Byte
X VAR Word
PAUSE 1000
HIGH 10
DO
GOSUB forward
GOSUB RD_ADC
IF ( ADC > 385 ) THEN
GOSUB backward : PAUSE 80
GOSUB motor_off : PAUSE 10000
ENDIF
LOOP
RD_ADC: LOW 10 : PAUSE 1 : HIGH 10
SEROUT 10,240,[1]
SERIN 10,240,[ADC.BYTE0,adc.BYTE1]
RETURN
Error: DEBUG "Error Reading" , CR
RETURN
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_Right: LOW 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
T_LEFT: HIGH 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
Motor_off:LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN