ที่ผมสร้าง Blog นี้ขึ้นมาเพราะว่าในวิชาการโปรเเกรมหุ่นยนต์นี้เพื่อที่จะบันทึกเหตุการณ์ต่างๆที่เกิดขึ้นในห้องเรียน เช่นการทำงานของหุ่นยนต์ คำสั่งที่เราป้อนให้หุ่นยนต์ ขั้นตอนการป้อนข้อมูลของหุ่นยนต์ โดยเฉพาะข้อผิดพลาดของหุ่นยนต์เเละข้อเเก้ไข้ที่เราทำ
เมื่อจบวิชานี้ผมอยากจะเขียนคำสั่งให้หุ่นยนต์เคลื่อนที่ได้อย่างสมบูรณ์เเบบ
วันพุธที่ 19 กันยายน พ.ศ. 2550
Censor สะท้อนเเสง
' {$STAMP BS2sx}
' {$PBASIC 2.5}
ADC VAR Word
R VAR Word
I VAR Word
X VAR Word
PAUSE 1000
HIGH 10
GOSUB pim
GOSUB RD_ADC
IF (ADC > 50) THEN
GOSUB Motor_OFF
ENDIF
RD_ADC: LOW 10 : PAUSE 2: HIGH 10
SEROUT 10,240, [1]
SERIN 10,240,250,Error, [ADC.BYTE0,ADC.BYTE1]
RETURN
Error: DEBUG "Error Reading",CR
RETURN
pim: 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
นี้คือโค้ดของหัวข้อเราน่ะครับ
เราจะมีการเเข่งกันให้หุ่นยนต์ของพวกเราวิ่งเข้าหากำเเพงเเล้วหยุด ใครใกล้ที่สุดก็เอาไปเรย 100%
' {$PBASIC 2.5}
ADC VAR Word
R VAR Word
I VAR Word
X VAR Word
PAUSE 1000
HIGH 10
GOSUB pim
GOSUB RD_ADC
IF (ADC > 50) THEN
GOSUB Motor_OFF
ENDIF
RD_ADC: LOW 10 : PAUSE 2: HIGH 10
SEROUT 10,240, [1]
SERIN 10,240,250,Error, [ADC.BYTE0,ADC.BYTE1]
RETURN
Error: DEBUG "Error Reading",CR
RETURN
pim: 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
นี้คือโค้ดของหัวข้อเราน่ะครับ
เราจะมีการเเข่งกันให้หุ่นยนต์ของพวกเราวิ่งเข้าหากำเเพงเเล้วหยุด ใครใกล้ที่สุดก็เอาไปเรย 100%
Touch Switch เขาวงกต

เราก็ได้มาถึงการใช้ Touch Switch
ด้านบนก็คือเขาวงกตของเรา
เราก็ได้เขียนโค้ดให้หุ่นยนต์ของเราเข้าไปในเขาวงกตเเล้วออกมาอย่างปลอดภัย
' {$STAMP BS2sx}
' {$PBASIC 2.5}
yo VAR Word
yo1 VAR Word
yo2 VAR Word
yo3 VAR Word
PAUSE 1000
main:
yo = 0
yo1 = 0
yo2 = 0
yo3 = 0
DO
GOSUB Forward
IF (IN1 = 0) OR (IN6 = 0) THEN
GOSUB Backward : PAUSE 400
GOSUB T_Right : PAUSE 300
yo = yo + 1
ENDIF
LOOP UNTIL (yo = 2)
DO
GOSUB Forward
IF (IN1 = 0) OR (IN6 = 0) THEN
GOSUB Backward : PAUSE 400
GOSUB T_Left : PAUSE 300
yo1 = yo1 + 1
ENDIF
LOOP UNTIL (yo1 = 1)
DO
GOSUB Forward
IF (IN1 = 0) OR (IN6 = 0) THEN
GOSUB Backward : PAUSE 400
GOSUB T_Right : PAUSE 300
yo2 = yo2 + 1
ENDIF
LOOP UNTIL (yo2 = 1)
DO
GOSUB Forward
IF (IN1 = 0) OR (IN6 = 0) THEN
GOSUB Backward : PAUSE 400
GOSUB T_Right : PAUSE 300
yo3= yo3 + 1
ENDIF
LOOP UNTIL (yo3 = 1)
GOSUB Motor_Off
Forward: HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
Backward: HIGH 12 : LOW 13 : HIGH 14 : LOW 15 : RETURN
T_right: LOW 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
T_Left : HIGH 13: HIGH 12 : LOW 15 : HIGH 14 : RETURN
Motor_Off: LOW 13 :LOW 12 : LOW 15 :LOW 14
' {$PBASIC 2.5}
yo VAR Word
yo1 VAR Word
yo2 VAR Word
yo3 VAR Word
PAUSE 1000
main:
yo = 0
yo1 = 0
yo2 = 0
yo3 = 0
DO
GOSUB Forward
IF (IN1 = 0) OR (IN6 = 0) THEN
GOSUB Backward : PAUSE 400
GOSUB T_Right : PAUSE 300
yo = yo + 1
ENDIF
LOOP UNTIL (yo = 2)
DO
GOSUB Forward
IF (IN1 = 0) OR (IN6 = 0) THEN
GOSUB Backward : PAUSE 400
GOSUB T_Left : PAUSE 300
yo1 = yo1 + 1
ENDIF
LOOP UNTIL (yo1 = 1)
DO
GOSUB Forward
IF (IN1 = 0) OR (IN6 = 0) THEN
GOSUB Backward : PAUSE 400
GOSUB T_Right : PAUSE 300
yo2 = yo2 + 1
ENDIF
LOOP UNTIL (yo2 = 1)
DO
GOSUB Forward
IF (IN1 = 0) OR (IN6 = 0) THEN
GOSUB Backward : PAUSE 400
GOSUB T_Right : PAUSE 300
yo3= yo3 + 1
ENDIF
LOOP UNTIL (yo3 = 1)
GOSUB Motor_Off
Forward: HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
Backward: HIGH 12 : LOW 13 : HIGH 14 : LOW 15 : RETURN
T_right: LOW 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
T_Left : HIGH 13: HIGH 12 : LOW 15 : HIGH 14 : RETURN
Motor_Off: LOW 13 :LOW 12 : LOW 15 :LOW 14
ส่วนนี้ก็คือโค้ดของเราน่ะ
สมัครสมาชิก:
บทความ (Atom)