การเขียนโปรแกรมควบคุมหุ่นยนต์ TRACK เส้น
สำหรับในเรื่องที่นักเรียนได้เรียนในช่วงที่ผ่านมาซึ่งจะเป็นในส่วนของการเขียนโปรแกรมควบคุมหุ่นยนต์โดยที่นักเรียนเพียงเขียนคำสั่งควบคุมการทำงานขอมอเตอร์เพียงเท่านั้นโดยเป็นการเขียนโปรแกรมให้ทำงานแบบบนลงล่าง แต่สำหรับเนื้อหาหลังจากสอบกลางภาคไปแล้วเราจะเริ่มเรียนการเขียนโปรแกรมที่มีเงื่อนไขต่าง ๆ เข้ามาร่วมด้วย และในเนื้อหานี้ก็จะกล่าวถึงการเขียนโปรแกรมควบคุมหุ่นยนต์ให้เดินตามเส้นสีดำ ซึ่งมีเนื้อหาดังนี้
ทำไมต้องเรียนเขียนคำสั่งในการ TRACK เส้น
- เพื่อเป็นการให้นักเรียนได้เขียนคำสั่งที่มีการทำงานแบบมีเงื่อนไข
- เพื่อให้นักเรียนได้เรียนรู้การอ่านค่าจากเซนเซอร์ในการอ่านค่าสีขาวแล้วสีดำ
- เพื่อควบคุมการทำงานของมอเตอร์ให้ทำงานตามเงื่อนไข
ตัวอย่างโค้ดคำสั่ง
#include <ipst.h> int L,R,CL=500,CR=450; void setup(){ OK(); // กดปุ่ม OK หุ่นจะเริ่มทำงาน เป็นคำสั่งย่อจากเดิมจะสั่งให้กดปุ่ม ok เขียนยาวมาก } void loop(){ L=analog(0); // เซนเซอร์วัดค่าสีฝั่งซ้ายต่อกับช่อง A0 R=analog(1); // เซนเซอร์วัดค่าสีฝั่งขวาต่อกับช่อง A1 if(L>CL&&R>CR){ // เป็นการเปรียบเทียบค่า ถ้า ค่าสีที่วัดได้จากตัวแปร L มีค่ามากกว่าค่ากลาง fd(40); // เป็นคำสั่งให้เดินหน้าด้วยกำลังไฟ 40 ซึ่งเป็นการเขียนแบบย่อให้สั้นลงกว่าคำสั่งก่อนหน้านี้ } else if(L<CL&&R>CR){ tl(40); // เป็นคำสั่งให้เลี้ยวซ้ายด้วยกำลังไฟ 40 ซึ่งเป็นการเขียนแบบย่อให้สั้นลงกว่าคำสั่งก่อนหน้านี้ } else if(L>CL&&R<CR){ tr(40); //เป็นคำสั่งให้เลี้ยวขวาด้วยกำลังไฟ 40 ซึ่งเป็นการเขียนแบบย่อให้สั้นลงกว่าคำสั่งก่อนหน้านี้ } else if(L<CL&&R<CR){ motor_stop(ALL); //เป็นคำสั่งให้มอเตอร์หยุดทำงาน } }
อธิบายขยายความ
CL คือ การที่นำค่าที่ได้จากการวัดค่าสีเซนเซอร์ด้านซ้าย ค่าสีขาวและสีดำมารวมกันแล้วทำการหารด้วย 2
CR คือ การที่นำค่าที่ได้จากการวัดค่าสีเซนเซอร์ด้านขวา ค่าสีขาวและสีดำมารวมกันแล้วทำการหารด้วย 2
&& คือ และ เป็นการเปรียบเทียบหากจริงและจริงเป็นจริง หากจริงและเท็จเป็นเท็จ