วันพุธที่ 22 สิงหาคม พ.ศ. 2550

การเขียนโปรแกรมหุ่นยนต์ (22/8/50)ให้หุ่นยนต์หลบเสา(สอบ)

CODEที่ได้



' {$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
ko4 = 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
DOGOSUB motor_off: PAUSE10000
LOOP UNTIL(ko5 = 1)
GOTO mainforward: 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

หลักการทำงาน : จะทำงานโดยตรงไป 25 เซนติเมตร เมื่อเจอหลักให้อ้อมหลักจนถึงหลักที่สาม ซิ่งแต่ละหลักจะห่างกัน 50 เซนติเมตร แล้วเดินตรงไป 50เซนติเมตร แล้วหมุนตัว เดินตรงไปอีก 100 เซนติเมตร แล้วหมุนตัวให้หน้าหุ่นเข้าสู่สนาม

ปัญหาที่พบ : หุ่นเดินไม่ได้ตามระยะทางที่ต้องการ หมุนตัวไม่ได้ตามที่ต้องการ เดินแต่ละรอบไม่เท่ากันพอดี



วิธีการแก้ไข : ลองแทนตัวเลขหาช่วง แล้วค่อยระบุ และเวลาทดลองทำหลายๆรอบ

ไม่มีความคิดเห็น: