
โดยโปรแกรมให้หุ้นยนต์เดินตามลูกศรอ้อมหลักแต่ละหลักโดยแต่ละหลักห่างกัน50cmดังรูปข้างต้น
จากที่กระผมได้เรียนวิชาโปรแกรมหุ่นยนต์
ทำให้ผมได้รู้ว่าการที่เราต้องการให้หุ่นยนต์เดินตรงไปจากนั้นU TURN(เป็นเส้นโค้ง)
โดยใช้คำสั่งแบบย่อ(loop)จะต้องเขียนคำสั่งดังนี้
' {$STAMP BS2sx}
' {$PBASIC 2.5}
' {$PORT COM2}
ko VAR Word
PAUSE 1000
main:GOSUB forward : PAUSE 800
ko = 0
DO
GOSUB forward : PAUSE 10
GOSUB r_turn : PAUSE 12
ko = ko + 1
LOOP UNTIL ( ko = 86 )
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
' {$STAMP BS2sx}
' {$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 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 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
การที่ผมต้องเขียนคำสั่งให้หุ่นย์ทำทีละสั้นๆ แถมยังต้องเขียนยาวเหยียดขนาดนี้เพราะ
ถ้าเขียนโปรแกรมให้หุ่นยนต์ทำนานๆ ถึงจะไม่ต้องเขียนยาวแต่เวลาหุ่นยนต์โค้งจะมีการกระตุก
จึงทำให้ผมต้องเขียนยาวๆขนาดนี้
' {$STAMP BS2sx}
' {$PBASIC 2.5}
' {$PORT COM1}
PAUSE 1000
main: GOSUB u_turn : PAUSE 100
GOSUB forward : PAUSE 750
GOSUB u_turn : PAUSE 220
GOSUB forward : PAUSE 750
GOSUB u_turn : PAUSE 220
GOSUB forward : PAUSE 750
GOSUB u_turn : PAUSE 200
GOSUB motor_stop : PAUSE 10000
GOTO main
u_turn : LOW 13 : HIGH 12 : HIGH 15 : LOW 14 : RETURN
forward : HIGH 13 : LOW 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
' {$STAMP BS2sx}
' {$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
' {$STAMP BS2sx}
' {$PBASIC 2.5}
' {$PORT COM1}
PAUSE 1000
main: GOSUB forward : PAUSE 1000
GOSUB motor_stop : PAUSE 10000
GOTO main
forward: HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
motor_stop : LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN