วันศุกร์ที่ 9 พฤศจิกายน พ.ศ. 2550
' {$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
' {$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ตามที่เรากด
' {$PBASIC 2.5}
key VAR Byte
DO
SERIN 3,2063,[key] 'recive 1200 8n1 on p3
DEBUG key , TAB ' show on debug terminal
LOOP
ใช้รีโมทเพื่อคาบคุมหุน
' {$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
}' {$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'+++++++++++++++++++++++++++++++++++++++++++++++++++++++
วันพุธที่ 19 กันยายน พ.ศ. 2550
งานสวิดแสง
' {$PBASIC 2.5}
' {$PORT COM1}
ADC VAR Word
R VAR Word
I VAR Byte
X VAR Word
ko VAR Word
PAUSE 1000
HIGH 10
GOSUB forward
GOSUB RD_ADC IF ( ADC > 75) THEN
DO GOSUB motor_off
LOOP UNTIL(ko=1)
ENDIF
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
Motor_off:LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN _________________________________________________________________ Don't just search. Find. Check out the new MSN Search! http://search.msn.com/
งานทัดสวิด
' {$PBASIC 2.5}
PAUSE 1000
main:GOSUB forward
GOSUB soso
IF (IN4 = 0) OR (IN6 = 0) THEN
GOSUB backward : PAUSE 500
GOSUB s_right : PAUSE 200
ENDIF
GOSUB forward GOSUB soso
IF (IN4 = 0) OR (IN6 = 0) THEN
GOSUB backward : PAUSE 480
GOSUB s_right : PAUSE 200
ENDIF
GOSUB forward GOSUB soso
IF (IN4 = 0) OR (IN6 = 0) THEN
GOSUB backward : PAUSE 480
GOSUB s_left : PAUSE 200
ENDIF GOSUB forward
GOSUB soso
IF (IN4 = 0) OR (IN6 = 0) THEN
GOSUB backward : PAUSE 480
GOSUB s_right : PAUSE 200
ENDIF
GOSUB forward
GOSUB soso
IF (IN4 = 0) OR (IN6 = 0) THEN
GOSUB backward : PAUSE 480
GOSUB s_right : PAUSE 200
ENDIF GOSUB forward
GOSUB soso
IF (IN4 = 0) OR (IN6 = 0) THEN
GOSUB backward : PAUSE 480
GOSUB s_left : PAUSE 200
ENDIF
GOSUB forward
GOSUB soso
IF (IN4 = 0) OR (IN6 = 0) THEN
GOSUB backward : PAUSE 480
GOSUB s_left : PAUSE 200
ENDIF
GOSUB forward : PAUSE 260
GOSUB motor_off
GOTO main
forward: HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
backward: LOW 13 : HIGH 12 : LOW 15 : HIGH 14 : RETURN
s_right: LOW 13 : HIGH 12 : HIGH 15 : LOW 14 : RETURN
s_left : HIGH 13 : LOW 12 : LOW 15 : HIGH 14 : RETURN
motor_off: LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
soso: DO
LOOP UNTIL((IN4 = 0) OR (IN6 = 0)) : RETURN
วันพุธที่ 5 กันยายน พ.ศ. 2550
วันพุธที่ 22 สิงหาคม พ.ศ. 2550
การสอบ
' {$STAMP BS2sx}
' {$PBASIC 2.5}
ko1 VAR Word
ko2 VAR Word
ko3 VAR Word
ko4 VAR Word
ko5 VAR Word
PAUSE 1000
main: GOSUB forward : PAUSE 1000
ko1 = 0
ko2 = 0
ko3 = 0
ko5 = 0
GOSUB ul_turn : PAUSE 140
DO
GOSUB forward : PAUSE 12
GOSUB r_turn : PAUSE 13 ko1 = ko1 + 1
LOOP UNTIL (ko1 = 50)
DO
GOSUB forward : PAUSE 12
GOSUB l_turn : PAUSE 15
ko2 = ko2 + 1
LOOP UNTIL(ko2 = 55)
DO
GOSUB forward : PAUSE 12
GOSUB r_turn : PAUSE 15
ko3 = ko3 +1
LOOP UNTIL(ko3 = 65)
GOSUB forward : PAUSE 1500
DO
GOSUB forward : PAUSE 12
GOSUB r_turn : PAUSE 12
ko4 = ko4 + 1
LOOP UNTIL(ko4 = 100)
GOSUB forward : PAUSE 2000
GOSUB u_turn : PAUSE 228 DO
GOSUB motor_off: PAUSE 10000
LOOP UNTIL(ko5 = 1)
GOTO main
forward: HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
r_turn: LOW 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
l_turn: HIGH 13 : LOW 12 : LOW 14 : LOW 15 : RETURN
u_turn: LOW 13 : HIGH 12 : HIGH 15 : LOW 14 : RETURN
ul_turn: HIGH 13 : LOW 12 : LOW 15 : HIGH 14 : RETURN
motor_off: LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
คำว่าkoคือตัวแปรที่ทำให้loopทาไม่กำนดก็จะไม่loop ส่วน HIGH 13 : LOW 12 : HIGH 15 : LOW 14 ก็คือตัวที่ทำให้motorทำงานทั้งสองด้าน PAUSE 1500 คือเวลาที่กำหนดให้หุนทำงานปัญหา หุนไม่ทำเหมือนเดิมทุกครั้งทำให้กำหนดการเดินไมได้
วันพุธที่ 15 สิงหาคม พ.ศ. 2550
โจทย์งานสอบ
วันพุธที่ 8 สิงหาคม พ.ศ. 2550
การเดินเป็นรูปโค้ง
' {$PBASIC 2.5}
' {$PORT COM2}
PAUSE 1000 main:
GOSUB forward : PAUSE 800
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
GOSUB forward : PAUSE 800
GOSUB motor_stop : PAUSE 10000
GOTO main
forward : HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
r_turn : LOW 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
motor_stop : LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
อธิบาย
forward : HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
แปรว่าคำสั่งforwardคือชือของคำสั่งที่เราจะพิมพ์อะไรก็ได้
HIGH 13 : LOW 12 : HIGH 15 : LOW 14 คือรหัสที่ทำให้หุนทำงานคำสั่งนี้แปรว่า ให้moter ทั้ง2 เดิน
LOW 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN moter 1ตัว หยุดตัวหนึ่งทำงาน
LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN moter ทั้ง2หยุด
วันอังคารที่ 7 สิงหาคม พ.ศ. 2550
เดินเป็นรูป3เหลี่ยม
' {$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
วันพุธที่ 1 สิงหาคม พ.ศ. 2550
เดินหน้าเลี้ยวซ้าย
' {$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
เดินหน้าหมุนขวาเดินหน้าหมุนขวาหยุด
' {$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
เดินหน้าเลี้ยวซ้ายเลี้ยวขวาหมุนตัวซ้ายหมุนตัวขวาหยุด
' {$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
เดินหน้าแล้วเลี้ยวขวา
' {$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
เดินหน้าแล้วถอยหลัง
{$PBASIC 2.5}
PAUSE 1000
MAIN : GOSUB FORWARD : PAUSE 950
GOSUB BACKWARD : PAUSE 950
GOSUB MOTOR_OFF : PAUSE 10000
GOTO Main
Forward: HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
Backward: HIGH 12 : LOW 13 : HIGH 14 : LOW 15 : RETURN
motor_off:LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
วันพุธที่ 4 กรกฎาคม พ.ศ. 2550
การทำให้robotgเดินตามคำสั่ง
{$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
