' {$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 maintimeout: LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURNf
orward: 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
วันเสาร์ที่ 3 พฤศจิกายน พ.ศ. 2550
วันพุธที่ 19 กันยายน พ.ศ. 2550
sensor very close
' {$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
' {$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
sensor 5 cm
' {$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
' {$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 3 cm
' {$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
' {$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
วันพุธที่ 5 กันยายน พ.ศ. 2550
ทัดสวิตช์
' {$STAMP BS2sx}
' {$PBASIC 2.5}
' {$PORT COM1}
PAUSE 2000
GOSUB forward
GOSUB idea
GOSUB backward : PAUSE 400
GOSUB S_LEFT : PAUSE 190
GOSUB idea
GOSUB backward : PAUSE 400
GOSUB S_LEFT : PAUSE 190
GOSUB idea
GOSUB backward : PAUSE 400
GOSUB S_right : PAUSE 190
GOSUB idea
GOSUB backward : PAUSE 400
GOSUB S_left : PAUSE 190
GOSUB idea
GOSUB backward : PAUSE 400
GOSUB S_left : PAUSE 190
GOSUB idea
GOSUB backward : PAUSE 400
GOSUB S_right : PAUSE 190
GOSUB idea
GOSUB backward : PAUSE 400
GOSUB S_right : PAUSE 190
GOSUB idea
END
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
idea:
GOSUB forward
DO
LOOP UNTIL ( IN1 = 0 ) OR ( IN6 = 0 )RETURN
เป็นการ สั่งให้หุ่นยนต์เดินหน้าไปเรื่อยๆ เมื่อชน
1 ถอยหลังแล้วเลี้ยวขวา
2 ถอยหลังแล้วเลี้ยวขวา
3 ถอยหลังแล้วเลี้ยวซ้าย
4 ถอยหลังแล้วเลี้ยวขวา
5 ถอยหลังแล้วเลี้ยวขวา
6 ถอยหลังแล้วเลี้ยวซ้าย
7 ถอยหลังแล้วเลี้ยวซ้าย
แล้วก็ถึงจุดหมาย
LOOP UNTIL ( IN1 = 0 ) OR ( IN6 = 0 )
เมื่อสวิตช์ข้างซ้ายชน จะทำให้สมการ IN6=0 เป็นจริง หรือ เมื่อสวิตช์ข้างขวาชน จะทำให้สมการ IN1=0 เป็นจริง ซึ่งจะชนข้างไหน
ผลที่ได้จะเหมือนกีน และจะหุ่นยนต์จะทำตามคำสั่งที่ต่อท้าย เช่น
GOSUB backward : PAUSE 400
GOSUB S_right : PAUSE 190
วันศุกร์ที่ 24 สิงหาคม พ.ศ. 2550
โคดสอบ
' {$PBASIC 2.5}
' {$PORT COM2}
' {$STAMP BS2sx}
a VAR Word
b VAR Word
c VAR Word
d VAR Word
PAUSE 2000
a = 0
b = 0
c = 0
d = 0
GOSUB forward : PAUSE 1177
GOSUB S_left : PAUSE 205
DO
a = a + 1
GOSUB T_RIGHT : PAUSE 20
GOSUB FORWARD : PAUSE 15
LOOP UNTIL ( a = 75 )
DO
b = b + 1
GOSUB T_Left : PAUSE 21
GOSUB FORWARD : PAUSE 15
LOOP UNTIL ( b = 90 )
DOc = c + 1
GOSUB T_RIGHT : PAUSE 20
GOSUB FORWARD : PAUSE 15
LOOP UNTIL ( c = 80 )
GOSUB forward : PAUSE 2344
DOd = d + 1
GOSUB T_Right : PAUSE 20
GOSUB forward : PAUSE 5
LOOP UNTIL ( d = 50 )
GOSUB forward : PAUSE 4288
GOSUB S_RIGHT : PAUSE 370
GOSUB motor_off : PAUSE 3000
forward: HIGH 13 : LOW 12 : HIGH 15 : LOW 14 :RETURN
backward: HIGH 12 : LOW 13 : HIGH 14 : LOW 15 :RETURN
S_right: HIGH 13 : LOW 12 : HIGH 14 : LOW 15 :RETURN
S_left: HIGH 12 : LOW 13 : HIGH 15 : LOW 14 : RETURN
T_left: LOW 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
T_right: HIGH 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
Motor_off:LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
' {$PORT COM2}
' {$STAMP BS2sx}
a VAR Word
b VAR Word
c VAR Word
d VAR Word
PAUSE 2000
a = 0
b = 0
c = 0
d = 0
GOSUB forward : PAUSE 1177
GOSUB S_left : PAUSE 205
DO
a = a + 1
GOSUB T_RIGHT : PAUSE 20
GOSUB FORWARD : PAUSE 15
LOOP UNTIL ( a = 75 )
DO
b = b + 1
GOSUB T_Left : PAUSE 21
GOSUB FORWARD : PAUSE 15
LOOP UNTIL ( b = 90 )
DOc = c + 1
GOSUB T_RIGHT : PAUSE 20
GOSUB FORWARD : PAUSE 15
LOOP UNTIL ( c = 80 )
GOSUB forward : PAUSE 2344
DOd = d + 1
GOSUB T_Right : PAUSE 20
GOSUB forward : PAUSE 5
LOOP UNTIL ( d = 50 )
GOSUB forward : PAUSE 4288
GOSUB S_RIGHT : PAUSE 370
GOSUB motor_off : PAUSE 3000
forward: HIGH 13 : LOW 12 : HIGH 15 : LOW 14 :RETURN
backward: HIGH 12 : LOW 13 : HIGH 14 : LOW 15 :RETURN
S_right: HIGH 13 : LOW 12 : HIGH 14 : LOW 15 :RETURN
S_left: HIGH 12 : LOW 13 : HIGH 15 : LOW 14 : RETURN
T_left: LOW 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
T_right: HIGH 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
Motor_off:LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
วันพุธที่ 8 สิงหาคม พ.ศ. 2550
แผนผังสอบ
วันพฤหัสบดีที่ 2 สิงหาคม พ.ศ. 2550
เดินเป็นรูป3เหลี่ยม
โจทยที่2 โปรแกรมให้หุ่นยนต์เดินเป็น3เหลี่ยม ด้านเท่า
' {$STAMP BS2sx}
' {$PBASIC 2.5}
PAUSE 1000
Main: GOSUB S_Right : PAUSE 90
GOSUB forward : PAUSE 1177
GOSUB S_Right : PAUSE 310
GOSUB forward : PAUSE 1177
GOSUB S_Right : PAUSE 290
GOSUB forward : PAUSE 1177
GOSUB S_Right : PAUSE 100
GOSUB motor_off : PAUSE 2000
GOTO Main
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
Motor_off:LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
' {$STAMP BS2sx}
' {$PBASIC 2.5}
PAUSE 1000
Main: GOSUB S_Right : PAUSE 90
GOSUB forward : PAUSE 1177
GOSUB S_Right : PAUSE 310
GOSUB forward : PAUSE 1177
GOSUB S_Right : PAUSE 290
GOSUB forward : PAUSE 1177
GOSUB S_Right : PAUSE 100
GOSUB motor_off : PAUSE 2000
GOTO Main
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
Motor_off:LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
ทำให้หุ่นยนต์เดินตามคำสั่ง
คือการเขียนโคตให้หุ่นยนต์เดินไปข้างหน้าหรือถอยหลังหรือเลี้ยวขวาหรือเลี้ยวซ้าย
' {$STAMP BS2sx}'
{$PBASIC 2.5}'
{$PORT COM1}
PAUSE 1000
main: GOSUB forward : PAUSE 1000
GOSUB U_turn : PAUSE 298
GOSUB forward : PAUSE 1000
GOSUB U_turn : PAUSE 265
GOSUB motor_stop : PAUSE 10000
GOTO mainforward: HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
U_turn : LOW 13 : HIGH 12 : HIGH 15 : LOW 14 : RETURN
motor_stop : LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
เดินหน้าแล้วเลี้ยวขวา
โจทย์ที่7
' {$STAMP BS2sx}
' {$PBASIC 2.5}
PAUSE 1000
MAIN : GOSUB FORWARD : PAUSE 1000
GOSUB S_RIGHT : PAUSE 185
GOTO Main
Forward: HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
S_right: HIGH 12 : LOW 13 : HIGH 15 : LOW 14 : RETURN
' {$STAMP BS2sx}
' {$PBASIC 2.5}
PAUSE 1000
MAIN : GOSUB FORWARD : PAUSE 1000
GOSUB S_RIGHT : PAUSE 185
GOTO Main
Forward: HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
S_right: HIGH 12 : LOW 13 : HIGH 15 : LOW 14 : RETURN
เดินไปข้างหน้าแล้วหมุนขวาเดินไปข้างหน้าแล้วหมุนขวาแล้วหยุด
โจทย์ที่5
' {$STAMP BS2sx}
' {$PBASIC 2.5}
' {$PORT COM1}
PAUSE 1000 main:
GOSUB forward : PAUSE 1000
GOSUB U_turn : PAUSE 298
GOSUB forward : PAUSE 1000
GOSUB U_turn : PAUSE 265
GOSUB motor_stop : PAUSE 10000
GOTO main forward: HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
U_turn : LOW 13 : HIGH 12 : HIGH 15 : LOW 14 : RETURN
motor_stop : LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
' {$STAMP BS2sx}
' {$PBASIC 2.5}
' {$PORT COM1}
PAUSE 1000 main:
GOSUB forward : PAUSE 1000
GOSUB U_turn : PAUSE 298
GOSUB forward : PAUSE 1000
GOSUB U_turn : PAUSE 265
GOSUB motor_stop : PAUSE 10000
GOTO main forward: HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
U_turn : LOW 13 : HIGH 12 : HIGH 15 : LOW 14 : RETURN
motor_stop : LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
เดินหน้าเลี้ยวซ้ายเลี้ยวขวาหมุนตัวซ้ายหมุนตัวขวาหยุด
โจทย์ที่6
' {$STAMP BS2sx}
' {$PBASIC 2.5}
PAUSE 1000
MAIN : GOSUB FORWARD : PAUSE 1000
GOSUB T_LEFT : PAUSE 500
GOSUB FORWARD : PAUSE 1000
GOSUB T_RIGHT : PAUSE 500
GOSUB FORWARD : PAUSE 1000
GOSUB S_LEFT : PAUSE 500
GOSUB BACKWARD : PAUSE 1000
GOSUB S_RIGHT : PAUSE 500
GOSUB forward : PAUSE 1000
GOSUB MOTOR_OFF : PAUSE 3000
GOTO Main Forward: HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
Backward: HIGH 12 : LOW 13 : HIGH 14 : LOW 15 : RETURN
T_left: HIGH 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
T_right: LOW 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
S_left: HIGH 13 : LOW 12 : HIGH 14 : LOW 15 : RETURN
S_right: HIGH 12 : LOW 13 : HIGH 15 : LOW 14 : RETURN
motor_off:LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
' {$STAMP BS2sx}
' {$PBASIC 2.5}
PAUSE 1000
MAIN : GOSUB FORWARD : PAUSE 1000
GOSUB T_LEFT : PAUSE 500
GOSUB FORWARD : PAUSE 1000
GOSUB T_RIGHT : PAUSE 500
GOSUB FORWARD : PAUSE 1000
GOSUB S_LEFT : PAUSE 500
GOSUB BACKWARD : PAUSE 1000
GOSUB S_RIGHT : PAUSE 500
GOSUB forward : PAUSE 1000
GOSUB MOTOR_OFF : PAUSE 3000
GOTO Main Forward: HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
Backward: HIGH 12 : LOW 13 : HIGH 14 : LOW 15 : RETURN
T_left: HIGH 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
T_right: LOW 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
S_left: HIGH 13 : LOW 12 : HIGH 14 : LOW 15 : RETURN
S_right: HIGH 12 : LOW 13 : HIGH 15 : LOW 14 : RETURN
motor_off:LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
เดินไปข้างหน้าแล้วเลี้ยวซ้าย
โจทย์ที่4
' {$STAMP BS2sx}
' {$PBASIC 2.5}
' {$PORT COM2}
PAUSE 1000
Main:GOSUB Forward : PAUSE 1700
GOSUB S_Left : PAUSE 500
GOTO MAIN
Forward : HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
S_Left : HIGH 13 : LOW 12 : LOW 14 : LOW 15 : RETURN
' {$STAMP BS2sx}
' {$PBASIC 2.5}
' {$PORT COM2}
PAUSE 1000
Main:GOSUB Forward : PAUSE 1700
GOSUB S_Left : PAUSE 500
GOTO MAIN
Forward : HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
S_Left : HIGH 13 : LOW 12 : LOW 14 : LOW 15 : RETURN
วันพุธที่ 1 สิงหาคม พ.ศ. 2550
เดินไปแล้วเดินกลับ
โจทย์ข้อ1 โปรแกรมให้หุ่นยนต์เดินไปข้างหน้า แล้วหมุนตัว180องศา และเดินกลับมา และหมุนตัวอีก180องศา
' {$STAMP BS2sx}
' {$PBASIC 2.5}
PAUSE 1000
Main: GOSUB Forward : PAUSE 1177
GOSUB S_Right : PAUSE 350
GOSUB Forward : PAUSE 1177
GOSUB S_Right : PAUSE 300
GOSUB motor_off : PAUSE 2000
GOTO Main
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
Motor_off:LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
' {$STAMP BS2sx}
' {$PBASIC 2.5}
PAUSE 1000
Main: GOSUB Forward : PAUSE 1177
GOSUB S_Right : PAUSE 350
GOSUB Forward : PAUSE 1177
GOSUB S_Right : PAUSE 300
GOSUB motor_off : PAUSE 2000
GOTO Main
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
Motor_off:LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
เดินเป็นรูปโค้ง
โจทย์ข้อ3
' {$PBASIC 2.5}
' {$PORT COM1}
' {$STAMP BS2sx}
a VAR Word
PAUSE 2000a = 0
DO
GOSUB forward : PAUSE 1177
DO
a = a + 1
GOSUB T_RIGHT : PAUSE 20
GOSUB FORWARD : PAUSE 15
LOOP UNTIL ( a = 75 )
GOSUB FORWARD : PAUSE 1177
GOSUB motor_off : PAUSE 10000
LOOP
forward: HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
ackward: 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
' {$PBASIC 2.5}
' {$PORT COM1}
' {$STAMP BS2sx}
a VAR Word
PAUSE 2000a = 0
DO
GOSUB forward : PAUSE 1177
DO
a = a + 1
GOSUB T_RIGHT : PAUSE 20
GOSUB FORWARD : PAUSE 15
LOOP UNTIL ( a = 75 )
GOSUB FORWARD : PAUSE 1177
GOSUB motor_off : PAUSE 10000
LOOP
forward: HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
ackward: 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
วันอังคารที่ 17 กรกฎาคม พ.ศ. 2550
สมัครสมาชิก:
บทความ (Atom)