130 likes | 418 Views
208. บทที่ 5 ขับเคลื่อนหุ่นยนต์ IPST-BOT. 209. การจัดการควบคุมมอเตอร์ไฟตรงของหุ่นยนต์ IPST-BOT. 210. การกำหนดตำแหน่งของมอเตอร์สำหรับหุ่นยนต์ IPST-BOT. 211. การทดลองที่ 1 (ทดสอบการขับและทิศทางการหมุนของชุดเฟืองขับมอเตอร์ไฟตรง). การเชื่อมต่อทางฮาร์ดแวร์
E N D
208 บทที่ 5 ขับเคลื่อนหุ่นยนต์ IPST-BOT
209 การจัดการควบคุมมอเตอร์ไฟตรงของหุ่นยนต์ IPST-BOT
210 การกำหนดตำแหน่งของมอเตอร์สำหรับหุ่นยนต์ IPST-BOT
211 การทดลองที่ 1 (ทดสอบการขับและทิศทางการหมุนของชุดเฟืองขับมอเตอร์ไฟตรง) การเชื่อมต่อทางฮาร์ดแวร์ ต่อชุดเฟืองมอเตอร์ไฟตรงเข้ากับจุดต่อ M1 และ M2 ของแผงวงจร Display-MOTOR โดยมอเตอร์ที่ต่อกับจุดM1 เป็นมอเตอร์ทางซ้าย และมอเตอร์ที่ต่อกับจุด M2 เป็นมอเตอร์ทางขวา
212 โปรแกรมการทดลองที่ 1(motor_test.c) ทดสอบการทำงานของวงจรขับมอเตอร์ไฟตรงของหุ่นยนต์ IPST-BOT เมื่อทดสอบการทำงานของวงจรขับมอเตอร์ไฟตรงพบว่าหุ่นยนต์ไม่เคลื่อนที่ตรงไปข้างหน้า ให้ทดลองสลับขั้วสายสัญญาณของมอเตอร์แต่ละตัว จนกระทั่งหุ่นยนต์เคลื่อนที่ตรงไปข้างหน้า #include <motor.h> void main() { motor(1,80); motor(2,80); }
213 การสร้างฟังก์ชั่น การขับเคลื่อนหุ่นยนต์พื้นฐาน
214 1.ฟังก์ชั่นขับเคลื่อนหุ่นยนต์ให้เคลื่อนที่ตรงไปข้างหน้า #define POW 70void forward(unsigned int delay){ motor(1,POW); motor(2,POW); sleep(delay); } หลักการเกิดจากล้อมอเตอร์ทั้งสองด้านถูกขับไปข้างหน้า ด้วยคำสั่ง motor กำลังเป็นบวกทั้งคู่
215 2.ฟังก์ชั่นขับเคลื่อนหุ่นยนต์ถอยหลังตรง #define POW 70void backward(unsigned int delay){ motor(1,-POW); motor(2,-POW); sleep(delay); } หลักการเกิดจากล้อมอเตอร์ทั้งสองด้านถูกขับไปข้างหน้า ด้วยคำสั่ง motor กำลังเป็นลบทั้งคู่
216 3.ฟังก์ชั่นขับเคลื่อนหุ่นยนต์เลี้ยวซ้าย #define POW 70void turn_left(unsigned int delay){ motor(1,-POW); motor(2,POW); sleep(delay); } หลักการเกิดจากมอเตอร์ล้อด้านซ้ายถูกขับไปข้างหลัง และมอเตอร์ล้อด้านขวาถูกขับไปข้างหน้า
217 4.ฟังก์ชั่นขับเคลื่อนหุ่นยนต์เลี้ยวขวา #define POW 70void turn_right(unsigned int delay){ motor(1,POW); motor(2,-POW); sleep(delay); } หลักการเกิดจากมอเตอร์ล้อด้านซ้ายถูกขับไปข้างหน้า และมอเตอร์ล้อด้านขวาถูกขับไปข้างหลัง
218 5.ฟังก์ชั่นหยุดหุ่นยนต์ #define POW 70void pause(){ motor_stop(1); motor_stop(2); } หลักการเกิดจากมอเตอร์ล้อด้านซ้ายและด้านขวาถูกหยุดขับพร้อมกันทั้งคู่ด้วยคำสั่ง motor_stop
219 การทดลองที่ 2 (ทดสอบขับเคลื่อนหุ่นยนต์ IPST-BOT แบบพื้นฐาน) การเชื่อมต่อทางฮาร์ดแวร์ ต่อชุดเฟืองมอเตอร์ไฟตรงเข้ากับจุดต่อ M1 และ M2 ของแผงวงจร Display-MOTOR โดยมอเตอร์ที่ต่อกับจุด M1 เป็นมอเตอร์ทางซ้าย และมอเตอร์ที่ต่อกับจุด M2 เป็นมอเตอร์ทางขวา
220 void main() { lcd("Press SW1"); sw1_press(); while(1) { forward(2000); turn_left(500); } } โปรแกรมทดสอบหุ่นยนต์ที่ 2(robo_basic.c)ทดสอบขับเคลื่อนหุ่นยนต์ไปข้างหน้า 2 วินาที แล้วเลี้ยวซ้าย 0.5 วินาที สลับไปมา #include <motor.h> #include <sleep.h> #include <in_out.h> #include <lcd.h> #define POW 70 void forward(unsigned int delay) { motor(1,POW); motor(2,POW); sleep(delay); } void turn_left(unsigned int delay) { motor(1,-POW); motor(2,POW); sleep(delay); }