การได้ใช้ไจโร่ควบคุมโปรเจคเป็นอะไรที่อยู่ในลิสต์ต้องทำมานาน แต่พอได้ตัวเซ็นเซอร์ IMU มาแล้วก็เจอปัญหาหินแตกต่อ นั่งงมอยู่นานเป็นเดือนกว่าจะเข้าใจวิธีดึงค่า Yaw, Pitch, Roll ออกมาให้ได้ หลังจากไล่เปิดเว็บนู่นนี่ ไลบรารีสารพัด ปัญหาสารพัด ในที่สุดก็เอาข้อมูลจากไจโร่มาประยุกต์ใช้ในโปรเจคง่ายๆ ให้เด็กใหม่ทำตามได้ ไม่ต้องทนทรมานเหมือนพี่
"มันต้องเป็นตำนาน!!" - สวาร์ลี่ย์
ทำตามขั้นตอนด้านล่างนี้เลยวัยรุ่น รับรองได้ใช้มุมจากไจโร่เซ็นเซอร์ MPU6050 แน่นอน
1. ติดตั้งไลบรารี
หลังจากได้ตัวเซ็นเซอร์วัดความเร่งและไจโร่ 6 แกนมาแล้ว ก็ต้องมีไลบรารีช่วยงาน
ไลบรารี MPU6050
2. ต่อสายระบบ
ติดตั้งไลบรารีเสร็จแล้วก็มาจับต่อสายตามนี้ได้เลย
การต่อสายไปยังมอเตอร์ไดรเวอร์กำหนดไว้ในโค้ดแล้ว:
ena = 5;
enb = 6;
in1 = 7;
in2 = 4;
in3 = 9;
in4 = 8;
การต่อสายไปยังเซ็นเซอร์ MPU6050:
- VCC ต่อกับ +5V
- GND ต่อกับ GND
- SDA ต่อกับ A4
- SCL ต่อกับ A5
หมายเหตุ: ตั้งแต่ตอนนี้เราจะเรียกหุ่นยนต์ตัวนี้ว่า "บาร์นี่ย์"
3. อัพโหลดโค้ด, คาลิเบรต, และรัน
อัพโหลดโค้ดลงไป แล้ววางบาร์นี่ย์บนพื้นเรียบๆ ให้เซ็นเซอร์คาลิเบรตและตั้งค่าทิศทางที่วางอยู่เป็น 0 องศา
ได้เวลาเล่นแล้วไอ้หนู.....
เมื่อคาลิเบรตเสร็จ บาร์นี่ย์อาจจะกระตุกไปมาบ้าง ไม่เป็นไร ทีนี้ลองดันหุ่นไปทางอื่นดู มันจะค่อยๆ หมุนกลับมาหน้าตรงเหมือนเดิม
ดูบาร์นี่ย์สาธิตให้ดูเลย
การนำทางด้วยความเฉื่อยและระบบรักษาเสถียรภาพ
โปรเจคนี้ใช้ความสามารถของ MPU6050 ในการติดตามการเคลื่อนไหวและรักษาเสถียรภาพ
- การผสานข้อมูลเซ็นเซอร์ 6 แกน: MPU6050 ให้ข้อมูลไจโรสโคป 3 แกน (วัดความเร็วการหมุน) และข้อมูล加速度 3 แกน (วัดเวกเตอร์แรงโน้มถ่วง) Arduino ใช้ Digital Motion Processor (DMP) ในตัวเซ็นเซอร์เพื่อผสานข้อมูลนี้และคำนวณหาค่า "Yaw, Pitch, Roll" ที่เสถียรแบบเรียลไทม์
- การกรองข้อมูลแบบผสมผสาน: ระบบใช้ฟิลเตอร์ซอฟต์แวร์ที่รวมข้อมูลจากไจโรสโคปซึ่งตอบสนองเร็ว กับข้อมูลจาก加速度ซึ่งมีความเสถียรในระยะยาว การผสานนี้สำคัญมากเพื่อขจัดความคลาดเคลื่อนของไจโรสโคป ทำให้ได้ค่ามุมที่แม่นยำและน่าเชื่อถือ
การพัฒนาระบบนำทาง
- ปรับระดับอัตโนมัติ: ตรรกะหลักของโค้ดทำให้หุ่นยนต์รักษาระดับตัวถังได้ ทำงานเหมือนระบบทรงตัวอัตโนมัติ แม้จะเคลื่อนที่บนพื้นผิวที่ไม่เรียบนัก
- ตรวจจับท่าทาง: เฟิร์มแวร์ที่อัปเดตแล้วสามารถขยายให้ตรวจจับการเปลี่ยนแปลงการวางทิศทางเฉพาะ เช่น "เขย่า" หรือ "เอียง" ซึ่งสามารถตั้งโปรแกรมเป็นคำสั่งเพื่อกระตุ้นพฤติกรรมของหุ่นยนต์ที่แตกต่างกันได้
อัปเดตล่าสุด--
อย่างที่เห็นในวิดีโอแรก หุ่นจะเริ่มกระตุกเมื่อหันกลับมาหาผนัง ปัญหานี้แก้ไขแล้ว
ดูวิดีโอเปรียบเทียบผลลัพธ์หลังแก้ไข สังเกตว่าหุ่นไม่กระตุกหลังจากหันกลับมาหาผนังแล้ว