การเคลื่อนที่ของหุ่น บอร์ด ipst บนโต๊ะโดยไม่ตก
บอร์ด ipst การเคลื่อนที่บนโต๊ะ
วัตถุประสงค์ในการทำกิจกรรมแบบนี้คือเป็นการให้หุ่นสามารถแก้ปัญหาได้ด้วยตัวเอง
#include <ipst.h> int L,R,CL=200,CR=150; //เป็นค่าที่เช็คเซอร์ด้านซ้ายขวา void setup(){ OK(); } void loop(){ L=analog(0); R=analog(1); if(L>CL&&R>CR){ fd(40); } else{ bk(40);delay(300); if(L<CL){ sr(40);delay(400); } else{ sl(40);delay(600); } } }
การทำงานของโปรแกรม
โปรแกรมที่ สร้างตัวแปร L และ R เพื่อเก็บค่าที่อ่านได้จาก ZX-03 ด้านซ้ายและด้านขวา สำหรับค่ากลาง เนื่องจากการที่หุ่นยนต์ออกนอกโต๊ะ ค่าการสะท้อนจะมีน้อยมาก ดังนั้นจึงสามารถปรับค่า CL หรือ CR ลงต่ำมากๆ ได้ ในที่นี้ใช้ค่า CL=200 และค่า CR=150
สำหรับการตรวจสอบของโปรแกรมทำดังนี้
1. ถ้าตรวจพบว่าค่าที่อ่านได้จาก ZX-03 ทั้งด้านซ้ายและด้านขวามีค่ามากกว่าค่ากลางทั้งคู่ให้หุ่นยนต์เคลื่อนที่ตรงไป
2. ถ้าไม่ตรงกับเงื่อนไขแรก ให้หุ่นยนต์ถอยหลัง
3. ตรวจสอบว่าค่า ZX-03 ด้านซ้ายมีค่าน้อยกว่าค่ากลางหรือไม่ ถ้าใช่ ให้หุ่นยนต์เลี้ยวขวา 0.4 วินาที
4. ถ้าไม่ตรงกับเงื่อนไขข้อ 3. ให้หุ่นยนต์เลี้ยวขวา 0.6 วินาที