สร้างและทดสอบการขับเคลื่อนเบื้องต้น
ชุด POP-X2 Rover มีอุปกรณ์สำหรับสร้างรถหรือหุ่นยนต์อัตโนมัติ ที่ออกแบบมาให้สร้างได้อเนกประสงค์ และสร้างได้ไม่ยาก
มาพร้อมกับอุปกรณ์ต่อพ่วงต่างๆ เพื่อให้สามารถทำภารกิจได้หลากหลาย
สำหรับบทที่ 4 จะเริ่มการสร้างโครงสร้างพื้นฐานและเขียนโปรแกรมเพื่อขับเคลื่อนเบื้องต้นกันก่อน
รายการอุปกรณ์
เครื่องมือสำหรับประกอบ
อุปกรณ์สำคัญที่ต้องมีคือไขควงกับ ตัวช่วยขันนอต (มีให้ในชุด) เพื่ออำนวยความสะดวกอาจใช้คีมปลายแหลมช่วยได้
ขั้นตอนการประกอบ
อุปกรณ์เริ่มต้นที่ต้องเตรียมก่อน
1. สร้างจุดยึดถาดรองกะบะถ่าน โดยนำแผ่นฐาน iRover ร้อยเสารองสกรูและขันยึดด้วยนอต 3 มม. ในตำแหน่งดังรูป ก่อนจะใช้ตัวช่วยขันนอตขันยึดให้แน่นให้นำถาดรองกะบะถ่านมาลองทาบดูก่อนว่าตรงกับรูเจาะของถาดรองหรือไม่ ถ้าตรงแล้วให้ขันยึดให้แน่น แต่ยังไม่ต้องยึดถาดรอง
2. ร้อยสลักยึดมอเตอร์เข้ากับชุดเฟืองขับมอเตอร์ ฝั่งด้านแกนสีชมพู ทั้งสองฝั่งมีทิศทางตรงกันข้ามกันดังรูป
3. ใช้สลักยึดมอเตอร์ที่เหลืออีก 2 อันร้อยเข้าที่แผ่นฐาน iRover ในตำแหน่งดังรูป
4. นำชุดเฟืองขับมอเตอร์จากข้อ 2 เสียบเข้าที่สลักในข้อ 3 ใช้นอต 3 มอเตอร์ขันยึด สังเกตว่าแกนมอเตอร์สีชมพูจะต้องหันออกด้านนอกทั้งสองด้าน
5. นำฉากโลหะ 2×3 มม. ยึดเข้ากับแผ่นฐานด้านหน้าด้วยสกรู 3×10 มม. ตามตำแหน่งดังรูป
6. นำล้อประคองวางระหว่างฉากโลหะ จากนั้นใช้สกรู 3×35 มม. ร้อยเข้าไป แล้วขันยึดด้วยนอตไส้พลาสติก 3 มม. (แนะนำให้ใช้ตัวช่วยขันนอตเพื่อช่วยจับนอตไม่ให้หมุนตามขณะขันสกรู)
7. พลิกฐานกลับมาด้านบน นำถาดรองกะบะถ่าน ยึดด้วยสกรูหัวตัด 3×6 มม. แล้วนำไปยึดที่ตำแหน่งเสารองสกรูที่ติดตั้งในขั้นตอนที่ 1
8. นำล้อพลาสติกพร้อมยางเสียบเข้าที่แกนมอเตอร์สีชมพูแล้วใช้สกรูยึดล้อขันยึดให้แน่น
9. นำบอร์ด POP-X2 มาวางบนถาดรองกะบะถ่านในทิศทางดังรูป
10. เสียบสายมอเตอร์ โดย Motor 1 อยู่ด้านซ้าย Motor 2 อยู่ด้านขวา
11. สำหรับทิศทางการเสียบสายมอเตอร์สีดำแดง ที่จุดต่อมอเตอร์มี LED อยู่ 2 หลอด ขณะไม่จ่ายไฟให้กับบอร์ด POP-X2 เมื่อหมุนล้อไปด้านหน้า LED จะต้องติดเป็นสีเขียว
หมุนไปด้านหลัง LED จะต้องติดเป็นสีแดง
ถ้าผลการทดสอบสีที่ได้เป็นค่าตรงกันข้ามให้ทำการกลับขั้วมอเตอร์เสียบใหม่
ทดสอบขับเคลื่อนมอเตอร์
บอร์ด POP-X2 ได้เตรียมชุดคำสั่งสั้นๆ สำหรับการขับเคลื่อนมอเตอร์เอาไว้ให้แล้ว โดยใช้ตัวย่อ เพื่อให้การเขียนโค้ดสั้นกระชับ ประกอบด้วย
ค่า Speed คือค่าความเร็วในการขับเคลื่อนมีค่าตั้งแต่ 0-100
ตัวอย่างที่ 12 เคลื่อนที่ไปหน้าสลับถอยหลัง
#include <popx2.h> void setup() { OK(); } void loop() { fd(50); delay(1000); bk(50); delay(1000); }
การทำงาน
คำสั่งสำคัญใน void setup() คือ OK() เพื่อรอให้กดสวิตช์ OK ก่อนจึงค่อยเคลื่อนที่ ถ้าไม่มีคำสั่งนี้ขณะที่โหลดโค้ดรถอาจจะวิ่งจนตกจากโต๊ะขณะที่ยังไม่ถอดสายได้
ใน void loop() จะให้ รถเคลื่อนทีไปด้านหน้า ด้วยความเร็ว 50% เป็นเวลา 1 วินาที สลับกับเคลื่อนที่ถอยหลัง 1 วินาที
Note 1 ระยะการเคลื่อนที่ของรถ มาจากความเร็ว x เวลา ดังนั้นถ้าเวลานานขึ้นก็ได้ระยะทางมากขึ้น หรือความเร็วมากขึ้นก็ได้ระยะทางมากขึ้นเช่นกัน Note 2 ด้านหน้าของรถมีน้ำหนักเบา เมื่อมีการสลับทิศทางกะทันหัน ทำให้รถยกตัวได้ เพื่อแก้ปัญหานี้ อาจลดความเร็วของรถลง หรือสั่งให้รถหยุดก่อนที่จะเปลี่ยนทิศทางการเคลื่อนที่ |
ซึ่งโค้ดเมื่อลดความเร็วและสั่งให้หยุดก่อนเปลี่ยนเส้นทาง เป็นดังนี้
#include <popx2.h> void setup() { OK(); } void loop() { fd(30); delay(1000); ao();delay(300); bk(30); delay(1000); ao();delay(300); }
ตัวอย่างที่ 13 การเคลื่อนที่เป็นรูปสี่เหลี่ยม
#include <popx2.h> void setup() { OK(); } void loop() { fd(30); delay(1000); sr(40); delay(600); }
#include <popx2.h>
การทำงาน
การเคลื่อนที่เป็นรูปสี่เหลี่ยม คีย์หลักก็คือ การเลี้ยวให้ได้ 90 องศา ซึ่งการปรับแต่งทำได้ 2 อย่างคือ ปรับค่าความเร็วของมอเตอร์ หรือปรับค่าการหน่วงเวลาก็ได้ เมื่อรวมการเคลื่อนที่ตรงและการเลี้ยว วนทำซ้ำใน void loop() ทำให้เกิดการเคลื่อนที่วนเป็นรูปสี่เหลี่ยมนั่นเอง
คำแนะนำ
ให้ทดลองปรับค่าตัวเลขดูจนกระทั่งรถเลี้ยวได้ 90 องศาพอดี |
คำสั่งขับเคลื่อนเพิ่มเติม
ตัวอย่างที่ 14 การเคลื่อนที่เป็นวงกลม
ถ้าปรับความเร็วมอเตอร์ซ้ายและขวาต่างกัน รถจะเดินเอียง ถ้าปรับต่างกันมากๆ จะเดินเป็นวงกลม
void setup() { OK(); // กดปุ่ม OK เพื่อเริ่ม } void loop() { fd2(20,60); // วงกลมทางซ้าย sw1_press(); // รอกดสวิตช์ SW1 fd2(60,20); // วงกลมทางขวา sw1_press(); // รอกดสวิตช์ SW1 }
การทำงาน
หลังจากกดสวิตช์ OK กำหนดความเร็วมอเตอร์ซ้ายน้อยกว่ามอเตอร์ขวา รถจะเอียงไปทางซ้าย และจะหมุนไปเรื่อยๆ จนกว่าจะกดสวิตช์ SW1 จะเปลี่ยนกลับเป็นเอียงไปทางขวาแทน และรอกดสวิตช์ SW1 เพื่อทำซ้ำรูปแบบเดิม
แผงวงจรสวิตช์ ZX-BUTTON
ZX-BUTTON เป็นอุปกรณ์อินพุตแบบดิจิตัล ประกอบไปด้วยสวิตช์พร้อม LED แสดงผล จากวงจรจะเห็นว่า ถ้ากดสวิตช์ให้ลอจิกเป็น “0” และ LED ติดสว่าง ถ้าไม่กดจะให้ลอจิกเป็น “1”
คำสั่ง in()สำหรับอ่านค่าอินพุตดิจิตัลจากพอร์ตใดๆ ของบอร์ด POP-X2 รูปแบบin(ch); ch คือขาพอร์ตที่ต้องการอ่านค่าอินพุต การคืนค่าคืนค่าขาพอร์ตที่อ่าน มีค่าเป็น 0 หรือ 1 เท่านั้น หมายเหตุ
ขาพอร์ตแบบดิจิตัลคือขาพอร์ตที่ระบุในวงกลม ในรูปคือขา 3,8,9,18,24-30 |
ตัวอย่างที่ 15 สวิตช์ควบคุมการเคลื่อนที่ของ POP-X2 Rover
ถามว่าสวิตช์ 2 ตัวควบคุมการเคลื่อนที่ได้กี่รูปแบบ คำตอบคือ 4 รูปแบบ
1. ไม่กดสวิตช์เลยสั่งให้หยุด
2. กดสวิตช์ตัวที่ 1 ตัวเดียวให้เลี้ยวซ้าย
3. กดสวิตช์ตังที่ 2 ตัวเดียวให้เลี้ยวขวา
4. กดสวิตช์ทั้งสองตัวพร้อมกันให้เคลื่อนที่ไปด้านหน้า
ค่อนข้างยาวครับสำหรับตอนนี้ ตอนต่อไปจะนำอุปกรณ์ตัวอื่นๆ มาต่อพ่วงและทดสอบใช้งานกันบ้าง คอยติดตามครับ