หลักการเคลื่อนที่ของหุ่นยนต์ หลักการเคลื่อนที่ของหุ่นยนต์ สิ่งที่ทำให้หุ่นยนต์เกิดการเคลื่อนที่คือ การหมุนของล้อทั้ง 2 ข้าง โดยทิศทางการหมุนของล้อแต่ละข้างจะกำหนดทิศทางการเคลื่อนที่ของหุ่นยนต์ การที่ล้อของหุ่นยนต์จะเกิดการหมุนได้นั้นต้องอาศัยอุปกรณ์ที่ทำหน้าที่แปลงพลังงานไฟฟ้าไปเป็นพลังงานกลซึ่งก็คือ มอเตอร์
1. ฟังก์ชั่นมอเตอร์ alloff หรือ ao ปิดการทำงานของมอเตอร์ทั้งหมด bk สั่งให้มอเตอร์หมุนกลับทิศทาง fd สั่งให้มอเตอร์หมุนตามทิศทาง init_expbd_servos เอ็นเอเบิลการทำงานของวงจรทำงานของวงจรขับเซอร์โวมอเตอร์ motor เลือกระดับพลังงานไฟฟ้าที่จ่ายให้แก่มอเตอร์ มีค่าในช่วง –100 ถึง 100 off ปิดการทำงานของมอเตอร์ตัวที่กำหนด
การขับเคลื่อนล้อหุ่นยนต์ เพื่อให้การอ้างถึงโปรแกรมควบคุมการขับเคลื่อนหุ่นยนต์เป็นแบบเดียวกันจึงขอกำหนดช่องขับล้อมอเตอร์ดังนี้ 1. ต่อมอเตอร์ล้อด้านซ้ายเข้ากับช่องขับ M-0 2. ต่อมอเตอร์ล้อด้านขวาเข้ากับช่องขับ M-1 แล้วทำการทดสอบด้วยโปรแกรมต่อไปนี้
โปรแกรมทดสอบมอเตอร์เพื่อปรับแต่งทิศทาง void main() { start_press(): motor(0,50); motor(1,50); stop_press(); ao(); }
3.หลักการขับเคลื่อนหุ่นยนต์เบื้องต้น 3.1 การขับเคลื่อนหุ่นยนต์ให้เดินหน้าตรง การขับเคลื่อนให้หุ่นยนต์เคลื่อนที่ไปข้างหน้าในทิศทางตรงทำได้โดยการสั่งให้มอเตอร์ล้อซ้ายและขวาหมุนไปข้างหน้าทั้งคู่โดยใช้คำสั่ง fd หรือ motor และสั่งหยุดมอเตอร์ได้ด้วยคำสั่ง off หรือ ao #define pow 50 void run_fd(float delay) { motor(0,pow); motor(1,pow); sleep(delay); }
3.2 การขับเคลื่อนหุ่นยนต์ให้ถอยหลังตรง การขับเคลื่อนให้หุ่นยนต์เคลื่อนที่ในทิศทางถอยหลังทำได้โดยการสั่งให้มอเตอร์ล้อซ้ายและขวาหมุนถอยหลังทั้งคู่โดยใช้คำสั่ง bk หรือ motor และสั่งหยุดมอเตอร์ได้ด้วยคำสั่ง off หรือ ao #define pow 50 void run_bk(float delay) { motor(0,-pow); motor(1,-pow); sleep(delay); }
3.3 การขับเคลื่อนหุ่นยนต์เลี้ยวซ้าย 3.3.1 ทำได้โดยการสั่งให้มอเตอร์ล้อซ้ายหมุนถอยหลังและล้อขวาหมุนไปข้างหน้า ซึ่งจะทำให้จุดศูนย์กลางการหมุนอยู่ที่กึ่งกลางลำตัวของหุ่นยนต์ #define pow 50 void turn_left(float delay) { motor(0,-pow); motor(1,pow); sleep(delay); }
3.3.2 ทำได้โดยการสั่งให้มอเตอร์ล้อซ้ายหยุดอยู่กับที่และล้อขวาหมุนไปข้างหน้า ซึ่งจะทำให้จุดศูนย์กลางการหมุนอยู่ที่ล้อซ้ายของหุ่นยนต์ #define pow 50 void turn_left2(float delay) { off(0); motor(1,pow); sleep(delay); }
3.4 การขับเคลื่อนหุ่นยนต์เลี้ยวขวา 3.4.1 ทำได้โดยการสั่งให้มอเตอร์ล้อซ้ายหมุนไปข้างหน้าและล้อขวาหมุนถอยหลัง ซึ่งจะทำให้จุดศูนย์กลางการหมุนอยู่ที่กึ่งกลางลำตัวของหุ่นยนต์ #define pow 50 void turn_right(float delay) { motor(0,pow); motor(1,-pow); sleep(delay); }
3.4.2 ทำได้โดยการสั่งให้มอเตอร์ล้อซ้ายหมุนไปข้างหน้าและล้อขวาหยุดอยู่กับที่ ซึ่งจะทำให้จุดศูนย์กลางการหมุนอยู่ที่ล้อซ้ายของหุ่นยนต์ #define pow 50 void turn_right2(float delay) { motor(0,pow); off(1); sleep(delay); }
จงตอบคำถามต่อไปนี้ 1. อุปกรณ์ที่ทำหน้าที่แปลงพลังงานไฟฟ้าไปเป็นพลังงานกล 2. จงระบุการตั้งค่า+ - มอเตอร์ของล้อทั้ง2 - การขับเคลื่อนหุ่นยนต์ให้เดินหน้าตรง - การขับเคลื่อนหุ่นยนต์ให้ถอยหลังตรง - การขับเคลื่อนหุ่นยนต์เลี้ยวซ้าย - การขับเคลื่อนหุ่นยนต์เลี้ยวขวา 3.เขียนโปรแกรมควบคุมให้หุ่นยนต์เคลื่อนที่ไปข้างหน้า2วินาทีแล้วหยุดต่อด้วยเคลื่อนที่ถอยหลัง2 วินาที