กลับไปหน้ารวมไฟล์
horizontal-platform-3e1cce.md

ชื่อโปรเจกต์: แพลตฟอร์มปรับระนาบ

ผมได้ดูบทเรียนเกี่ยวกับ servo จาก Nicholas และบทเรียนเกี่ยวกับ MPU จาก Josh แล้วผมก็เกิดความคิดที่จะนำทั้งสองอย่างนี้มารวมกันทันที ผมได้สร้างแพลตฟอร์มเล็กๆ ที่สามารถเคลื่อนที่ได้สองทิศทาง (X และ Y) บนแพลตฟอร์มมี MPU ที่ทำหน้าที่บันทึกค่า pitch และ roll ของแพลตฟอร์ม Arduino จะประมวลผลข้อมูลเหล่านี้และควบคุม servo ให้เคลื่อนที่ในทิศทางที่ทำให้แพลตฟอร์มรักษาระดับอยู่ในแนวราบ

มันอาจจะไม่ได้เคลื่อนที่เร็วมากนัก แต่ก็ใช้งานได้

เพื่อแสดงให้เห็นว่ามันประมวลผลข้อมูลอย่างไร ผมได้เพิ่ม LED 5 ตัว (สีแดง 4 ดวง) จัดเรียงเป็นสี่เหลี่ยม และ (สีเขียว 1 ดวง) อยู่ตรงกลาง เมื่อแพลตฟอร์มอยู่ในแนวราบ จะมีเพียง LED สีเขียวเท่านั้นที่ติดสว่าง มิฉะนั้น จะมี LED อื่นๆ หลายดวงที่แสดงทิศทางที่แพลตฟอร์มเอียง ตัวแปร "norm" จะบอกจำนวนองศาที่แพลตฟอร์มอาจจะเอียงไปจากตำแหน่งแนวราบที่สมบูรณ์

ใน sketch มีบรรทัดคำสั่งเช่น: `servox=servox+1` และ:

`servox=servox-1`

การเพิ่มหรือลบขึ้นอยู่กับวิธีการติดตั้ง servo และจำเป็นต้องมีการทดลองบางส่วน ควบคู่ไปกับบรรทัดที่กล่าวถึงข้างต้น บรรทัดที่อยู่ก่อนหน้า (เช่น `if (servox<179)` และ `if (servox>0)`) ก็จำเป็นต้องถูกแทนที่ด้วยเช่นกัน

รายละเอียดทางเทคนิคเพิ่มเติม

การปรับระดับและการทรงตัวอัตโนมัติ

โปรเจกต์นี้คือแพลตฟอร์ม "Self-Leveling" แบบ 1 แกน หรือ 2 แกน ที่ออกแบบมาเพื่อรักษาระดับของเซ็นเซอร์หรือกล้องให้อยู่ในแนวราบ โดยไม่คำนึงถึงการเอียงของฐาน

  • การแก้ไขทิศทางของ IMU: ใช้ MPU-6050 accelerometer/gyroscope Arduino จะจับค่ามุม "Roll" และ "Pitch" และใช้ Complimentary Filter เพื่อกำจัดสัญญาณรบกวนจากการสั่นสะเทือนของเซ็นเซอร์
  • การขับเคลื่อน Servo เพื่อชดเชย: Arduino จะส่งค่ามุมที่ปรับแก้แล้วไปยัง MG996R servos แรงบิดสูง หากฐานเอียงไปทางซ้าย 10 องศา Arduino จะขยับ servo ไปทางขวา 10 องศา เพื่อรักษาระนาบแนวราบที่สมบูรณ์แบบ

ประสิทธิภาพ

  • การนำ PID Loop มาใช้: (เวอร์ชันขั้นสูง) ใช้อัลกอริทึม Proportional-Integral-Derivative เพื่อให้แน่ใจว่าแพลตฟอร์มตอบสนองได้อย่างราบรื่นและไม่เกิดการเคลื่อนที่เกินเป้าหมาย (overshooting) ระหว่างการเอียงอย่างรวดเร็ว

ข้อมูล Frontmatter ดั้งเดิม

title: "Horizontal platform"
description: "Two servos and a ITG/MPU together with a UNO can keep a platform horizontal while moving the frame around"
author: "jorias"
category: "Motors & Robotics"
tags:
  - "mpu"
  - "leveling"
  - "servo"
views: 5593
likes: 3
price: 1120
difficulty: "Intermediate"
components:
  - "1x Breadboard (generic)"
  - "1x Inertial Measurement Unit (IMU) (6 deg of freedom)"
  - "1x Arduino UNO"
  - "2x SG90 Micro-servo motor"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles:
  - "https://projects.arduinocontent.cc/e7d69940-48cb-4627-8f87-e8545b1f26ad.ino"
documentationLinks: []
passwordHash: "b92206299c4b587bca38dde3676f5b02a821fa93f76f89d6c94948be6bc0c6ac"
encryptedPayload: "U2FsdGVkX1/Cfosj5e4LbrLGhphWaQocATbCYWcuArlkfKlcyMW0Tyw7ldeKTqSyUTeU7OnLbbQhoWGrHs/lNKqxK8YWRB/mpZAkUCCSvfs="
seoDescription: "Build a horizontal platform using Arduino UNO, ITG/MPU, and two servos to maintain stability while moving the frame."
videoLinks:
  - "https://www.youtube.com/embed/3-serKC0LNI"
  - "https://www.youtube.com/embed/aCNeeNKGGpk"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/horizontal-platform-3e1cce_cover.jpg"
lang: "th"