การเขียนโปรแกรมควบคุมหุ่นยนต์ TRACK เส้น
สำหรับในเรื่องที่นักเรียนได้เรียนในช่วงที่ผ่านมาซึ่งจะเป็นในส่วนของการเขียนโปรแกรมควบคุมหุ่นยนต์โดยที่นักเรียนเพียงเขียนคำสั่งควบคุมการทำงานขอมอเตอร์เพียงเท่านั้นโดยเป็นการเขียนโปรแกรมให้ทำงานแบบบนลงล่าง แต่สำหรับเนื้อหาหลังจากสอบกลางภาคไปแล้วเราจะเริ่มเรียนการเขียนโปรแกรมที่มีเงื่อนไขต่าง ๆ เข้ามาร่วมด้วย และในเนื้อหานี้ก็จะกล่าวถึงการเขียนโปรแกรมควบคุมหุ่นยนต์ให้เดินตามเส้นสีดำ ซึ่งมีเนื้อหาดังนี้
ทำไมต้องเรียนเขียนคำสั่งในการ TRACK เส้น
- เพื่อเป็นการให้นักเรียนได้เขียนคำสั่งที่มีการทำงานแบบมีเงื่อนไข
- เพื่อให้นักเรียนได้เรียนรู้การอ่านค่าจากเซนเซอร์ในการอ่านค่าสีขาวแล้วสีดำ
- เพื่อควบคุมการทำงานของมอเตอร์ให้ทำงานตามเงื่อนไข
ตัวอย่างโค้ดคำสั่ง
x
21
21
1
2
int L,R,CL=500,CR=450;
3
void setup(){
4
OK(); // กดปุ่ม OK หุ่นจะเริ่มทำงาน เป็นคำสั่งย่อจากเดิมจะสั่งให้กดปุ่ม ok เขียนยาวมาก
5
}
6
void loop(){
7
L=analog(0); // เซนเซอร์วัดค่าสีฝั่งซ้ายต่อกับช่อง A0
8
R=analog(1); // เซนเซอร์วัดค่าสีฝั่งขวาต่อกับช่อง A1
9
if(L>CL&&R>CR){ // เป็นการเปรียบเทียบค่า ถ้า ค่าสีที่วัดได้จากตัวแปร L มีค่ามากกว่าค่ากลาง
10
fd(40); // เป็นคำสั่งให้เดินหน้าด้วยกำลังไฟ 40 ซึ่งเป็นการเขียนแบบย่อให้สั้นลงกว่าคำสั่งก่อนหน้านี้
11
}
12
else if(L<CL&&R>CR){
13
tl(40); // เป็นคำสั่งให้เลี้ยวซ้ายด้วยกำลังไฟ 40 ซึ่งเป็นการเขียนแบบย่อให้สั้นลงกว่าคำสั่งก่อนหน้านี้
14
}
15
else if(L>CL&&R<CR){
16
tr(40); //เป็นคำสั่งให้เลี้ยวขวาด้วยกำลังไฟ 40 ซึ่งเป็นการเขียนแบบย่อให้สั้นลงกว่าคำสั่งก่อนหน้านี้
17
}
18
else if(L<CL&&R<CR){
19
motor_stop(ALL); //เป็นคำสั่งให้มอเตอร์หยุดทำงาน
20
}
21
}
อธิบายขยายความ
CL คือ การที่นำค่าที่ได้จากการวัดค่าสีเซนเซอร์ด้านซ้าย ค่าสีขาวและสีดำมารวมกันแล้วทำการหารด้วย 2
CR คือ การที่นำค่าที่ได้จากการวัดค่าสีเซนเซอร์ด้านขวา ค่าสีขาวและสีดำมารวมกันแล้วทำการหารด้วย 2
&& คือ และ เป็นการเปรียบเทียบหากจริงและจริงเป็นจริง หากจริงและเท็จเป็นเท็จ