กลับไปหน้ารวมไฟล์
make-a-hand-control-drone-1c5e49.md

สร้างโดรนควบคุมด้วยมือ

ภาพรวมโครงการ

"ESPcopter ควบคุมด้วยมือ" เป็นโปรเจกต์โดรนแบบโมดูลาร์ขั้นสูงที่ใช้ประโยชน์จาก ESP8266 WiFi SoC เพื่อสร้างแพลตฟอร์มการบินแบบอินเทอร์แอคทีฟที่ตั้งโปรแกรมได้ แตกต่างจากโดรนสำหรับผู้บริโภคทั่วไปที่เป็นแบบปิดซอร์ส ESPcopter ได้รับการออกแบบมาสำหรับนักพัฒนา ด้วยการเพิ่ม Multi-ranger Shield โดรนจะรับรู้สภาพแวดล้อมได้ 360 องศาผ่านเซ็นเซอร์เลเซอร์สี่ตัว โปรเจกต์นี้สาธิตวิธีการนำ "virtual bumper" หรือโหมด "hand-follow" มาใช้งาน ซึ่งช่วยให้นักบินสามารถผลักหรือบังคับโดรนได้ง่ายๆ เพียงแค่ขยับมือเข้าใกล้โดรน ในขณะที่คอมพิวเตอร์ออนบอร์ดจะจัดการกับตรรกะการบินที่ซับซ้อนในการรักษาสมดุลและหลีกเลี่ยงสิ่งกีดขวาง

ในปัจจุบัน เราได้เห็นโดรนจำนวนมากที่มีคุณสมบัติการหลีกเลี่ยงสิ่งกีดขวางและการควบคุมด้วยมือ ไม่ว่าจะเป็นโดรนของเล่นหรือโดรนสำหรับถ่ายวิดีโอ เบื้องหลังของผลิตภัณฑ์เหล่านี้มีอัลกอริทึมการเขียนโปรแกรมจำนวนมาก แต่เราไม่สามารถดูหรือแก้ไขอัลกอริทึมเหล่านี้ได้ ซึ่งแตกต่างจากตลาดโดรนทั่วไป ESP8266-Powered Mini Drone: **ESPcopter** สามารถตั้งโปรแกรมได้ด้วย **Arduino** และยังเป็นโดรนแบบโมดูลาร์อีกด้วย ผู้ใช้สามารถเพิ่มคุณสมบัติใหม่ๆ ได้โดยใช้ expansion shields

เจาะลึกทางเทคนิค

  • VL53L0X Time-of-Flight (ToF) Sensors: Multi-ranger shield ใช้เซ็นเซอร์ VL53L0X สี่ตัว ซึ่งแตกต่างจากเซ็นเซอร์อินฟราเรดแบบดั้งเดิมที่ขึ้นอยู่กับความเข้มของสัญญาณ เซ็นเซอร์ ToF จะวัดเวลาบินจริงของพัลส์เลเซอร์ สิ่งนี้ให้ความแม่นยำระดับมิลลิเมตรที่แม่นยำไม่ว่าสีหรือการสะท้อนแสงของสิ่งกีดขวางจะเป็นอย่างไร (สูงสุด 1000 มม.) โค้ดใช้ tcaselect() เพื่อจัดการ I2C multiplexer ทำให้ ESP8266 สามารถอ่านค่าจากเซ็นเซอร์แต่ละตัวตามลำดับโดยไม่มีปัญหา address conflict
  • Sensor Fusion & Median Filtering: ข้อมูลเซ็นเซอร์ดิบจากโดรนมีสัญญาณรบกวนสูงมากเนื่องจากการสั่นสะเทือนของมอเตอร์และกระแสลม เฟิร์มแวร์ได้นำ Median Filter มาใช้โดยใช้อัลกอริทึม Bubble Sort โดยการเก็บตัวอย่าง 5 ค่าต่อเนื่องกันและเลือกค่ากลาง ระบบจะกำจัด "spikes" และ "outliers" ที่อาจทำให้เกิดการปรับการบินที่ผิดปกติได้อย่างมีประสิทธิภาพ
  • Complementary Control Filter: หลังจากพบค่ามัธยฐานแล้ว จะมีการใช้ Complementary/Low-pass filter (calSensor) คณิตศาสตร์นี้ช่วยให้มั่นใจว่าโดรนจะเคลื่อนที่ได้อย่างราบรื่นแทนที่จะกระตุก มันจะอัปเดตค่า Distance ปัจจุบันให้เข้าใกล้ค่า target อย่างค่อยเป็นค่อยไป โดยใช้ค่าคงที่ alpha ที่สามารถกำหนดค่าได้ เพื่อสร้างสมดุลระหว่างการตอบสนองและความเสถียร
  • Closed-Loop PID Integration: ค่าระยะทางที่ผ่านการปรับให้เรียบจะถูกป้อนเข้าสู่ลูปควบคุม PID (Proportional-Integral-Derivative) ของ ESPcopter โดยตรง ตัวอย่างเช่น หากเซ็นเซอร์ด้านขวาตรวจจับมือได้ที่ระยะ 100 มม. ตัวควบคุม PID จะคำนวณข้อผิดพลาด Roll เชิงลบ โดยสั่งการให้มอเตอร์เคลื่อนย้ายโดรนไปทางซ้ายจนกว่าระยะทางสมดุลจะกลับคืนมา

วิศวกรรมและการออกแบบแบบโมดูลาร์

  • Modular Architecture: ESPcopter สร้างขึ้นบนปรัชญาของ open-hardware expansion shields (เช่น Multi-ranger, BME280) สามารถเสียบเข้ากับโครงหลักได้โดยตรง และ ESPcopter SDK มีรูทีนการรักษาเสถียรภาพการบินที่คอมไพล์ไว้ล่วงหน้า สิ่งนี้ช่วยให้นักเรียนมุ่งเน้นไปที่ตรรกะ "High-Level" เช่น อัลกอริทึมสำหรับแอร์ฮอกกี้ หรือการนำทางเขาวงกตอัตโนมัติ โดยไม่จำเป็นต้องคำนวณ quaternion rotations ด้วยตนเอง
  • Hardware Efficiency: การใช้ ESP8266 ช่วยให้สามารถทำ Over-the-Air (OTA) updates และการส่งข้อมูลทางไกลผ่านสมาร์ทโฟนได้ โครงสร้างขนาดเล็กและอัตราส่วนกำลังต่อน้ำหนักสูงของ brushed motors ทำให้ปลอดภัยสำหรับการใช้งานในห้องปฏิบัติการในร่ม โดยเป็นแพลตฟอร์มที่เสถียรสำหรับการทดสอบทฤษฎีการหลีกเลี่ยงการชนกันในพื้นที่ 3D จริง

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

title: "Make a Hand Control Drone"
description: "Nowadays, we are seeing a lot of drones that have an obstacle avoidance and hand control feature is a toy or video drone."
author: "tommytimmy"
category: "Motors & Robotics"
tags:
  - "drones"
  - "esp8266"
  - "espcopter"
  - "vl53l0x"
views: 6182
likes: 1
price: 4500
difficulty: "Intermediate"
components:
  - "1x espcopter"
  - "1x Multi-ranger Expansion Shield"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/make-a-hand-control-drone-1c5e49_cover.jpg"
lang: "th"