ตัวอย่างการเขียนโปรแกรมอย่างง่าย

SO                     CON                 14

BUSY                VAR                 IN15

BAUD               CON                 16624

FL                      VAR                  IN0

FR                      VAR                  IN1

I                         VAR                  BYTE

L                        VAR                  BYTE

R                        VAR                  BYTE

              PAUSE              1000

              SEROUT           SO,BAUD, [128,"M",0,128,"S",40]

              GOSUB             WAIT_BUSY

MAIN :              IF                      FL = 1 AND FR = 1 THEN B_RL

              IF                       FL = 1 THEN B_R

              IF                       FR = 1 THEN B_L

              L = 10                : R = 10

              GOSUB             DRV

              GOTO               MAIN

B_RL   :              L = -15             :   R = -15

              GOSUB             DRV

              GOTO               MAIN

              L = 110              :   R = 0

              GOSUB             DRV

              GOTO               MAIN

B_R    :               L = -15             :   R = -15

              GOSUB             DRV

              L = 55                :   R = -55

              GOSUB             DRV

              GOTO               MAIN

B_L    :               L = -15              :   R = -15

              GOSUB             DRV

              L = -55               :   R = 55

              GOSUB             DRV

              GOTO               MAIN

DRV  :                SEROUT          SO,BAUD, [L,R]

WAIT_BUSY  :  IF BUSY=1 THEN WAIT_BUSY

             RETURN

 

//***************************************

//   หลักการทำงานของโปรแกรมชนถอย

//****************************************

   โปรแกรมชนแล้วถอยจะมีอุปกรณ์ท่ี่ต้องใช้คือ bump

 bump จะมีหลักการทำงานคล้ายๆ กับ สวิตช์ คือถ้าอยู่นิ่งๆ โดยไม่มีอะไรไปกด ก็จะไม่ทำงาน เมื่ออยู่ในสภาวะปกติ bump จะมีค่าลอจิกเท่ากับ 0 แต่เมื่อมีการกดก็จะมีลอจิกเท่ากับ 1 และเราก็สามารถสั่งให้โปรแกรมทำงานได้โดย เมื่อลอจิกมีค่าเท่ากับ 1 จะให้หุ่นยนต์ถอยหลังแล้วเลี้ยวออกด้านข้าง ถ้า bump ด้านขวาชน ค่าลอจิก FR จะเท่ากับ 1 เราก็จะสั่งให้หุ่นยนต์ถอยหลังแล้วเลี้ยวซ้าย และในทางกลับกัน ถ้า bump ด้านซ้ายชน ค่าลอจิกจะเท่ากับ 1 เราก็ให้หุ่นยนต์ถอยหลังแล้วเลี้ยวขวา โดยเมื่อ bump ถอยออกมา ค่าของลอจิกจะกลับเป็นเหมือนเดิมคือ 0

Back to Class - Room next