สารบัญ:
- ขั้นตอนที่ 1: สิ่งที่เราต้องการ:
- ขั้นตอนที่ 2: สร้าง…
- ขั้นตอนที่ 3: ข้อมูลเพิ่มเติมบางอย่างก่อนที่เราจะดำเนินการต่อ
- ขั้นตอนที่ 4: รหัส:
- ขั้นตอนที่ 5: การทดสอบและสรุปผล
วีดีโอ: การวัดมุมโดยใช้ Gyro, Accelerometer และ Arduino: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:09
อุปกรณ์นี้เป็นต้นแบบคร่าวๆ ของสิ่งที่จะกลายเป็นหุ่นยนต์ทรงตัวในท้ายที่สุด ซึ่งเป็นส่วนที่สองของสิ่งที่เป็นรู (อ่านมาตรความเร่งและควบคุมมอเตอร์ให้สมดุลในตัวเอง) ส่วนแรกที่มีเพียงไจโรสามารถพบได้ที่นี่ ในคำแนะนำนี้ เราจะวัดมุมโดยใช้ทั้งไจโรและมาตรความเร่ง และใช้เทคนิคในการรวมเซ็นเซอร์ทั้งสองเข้าด้วยกันเพื่อรับสัญญาณที่ราบรื่น เทคนิคนี้เรียกว่า "ฟิลเตอร์เสริม".previous
ขั้นตอนที่ 1: สิ่งที่เราต้องการ:
บางส่วนสามารถเปลี่ยนได้ และต้องทำการปรับเปลี่ยนโค้ดบางส่วนเพื่อให้พอดีกับฮาร์ดแวร์ของคุณ ในโครงการนี้ เราจะใช้:- Breadboard- ไมโครคอนโทรลเลอร์ ฉันใช้ Arduinoboard- Wire- Jumper Wires- Gyroscope XV-8100- Nunchuck Wii (สำหรับมาตรความเร่ง) - อะแดปเตอร์ Nunchuck Wii สำหรับ Arduino
ขั้นตอนที่ 2: สร้าง…
วงจรประกอบด้วยไจโรสโคปที่เชื่อมต่อโดยตรงกับพอร์ต 0 ที่ Arduino และ nunchuck wii เชื่อมต่อที่พอร์ต I2C การประกอบไจโร: 1 - เสียบไจโรที่เขียงหั่นขนม2 - สายไฟที่เคย:- พิน Vo จากไจโรที่เชื่อมต่อกับพอร์ตแอนะล็อก0 ที่ Arduino (สายสีส้มอ่อน)- พิน G จากไจโรที่เชื่อมต่อกับกราวด์ (สายสีขาว)- พิน V+ จากไจโรที่เชื่อมต่อกับ Vdd (3.3V) (สายสีส้ม) การประกอบ มาตรความเร่ง:1. - เสียบอะแดปเตอร์ที่กระบอง2 - เสียบกระบองที่ Arduino โดยใช้อะแดปเตอร์ 3 - วางเซ็นเซอร์คันเร่งเหมือนภาพด้านบน
ขั้นตอนที่ 3: ข้อมูลเพิ่มเติมบางอย่างก่อนที่เราจะดำเนินการต่อ
จากเซ็นเซอร์ทั้งสอง เราสามารถวัดมุมได้ แต่ใช้สองเทคนิคที่แตกต่างกัน ในการวัดมุมโดยใช้ไจโร เราต้องรวมสัญญาณเข้าด้วยกัน แต่ทำไมเราต้องทำเช่นนี้ เนื่องจากไจโรให้อัตราเชิงมุมแก่เรา ดังนั้นวิธีง่ายๆ ในการหามุมคือให้อัตราเชิงมุมคูณด้วยเวลา [มุม = มุม + w * dt] ในการวัดมุมโดยใช้มาตรความเร่ง เราต้องรับรู้แรงโน้มถ่วงในแต่ละจุด แกนของมาตรความเร่งหมายความว่าอย่างไร การฉายภาพความเร่งโน้มถ่วงในแต่ละทิศทางของเซ็นเซอร์ทำให้เราได้แนวคิดเกี่ยวกับมุม [angle_accel = arctg(Ay / sqrt(Ax^2 + Az^2))] แล้วทำไมเราจะใช้เซ็นเซอร์สองตัวแทนหนึ่งตัว เพื่อใช้ประโยชน์จากคุณสมบัติของเซ็นเซอร์ทั้งสอง หากคุณดูกราฟข้อมูลไจโรที่เพิ่มขึ้นอย่างต่อเนื่อง นี่เรียกว่าดริฟท์และข้อมูลมาตรความเร่งเปลี่ยนแปลงไปมากในเวลาอันสั้นและจะผสานสัญญาณทั้งสองอย่างไร เราจะใช้เทคนิคที่เรียกว่าฟิลเตอร์เสริม ฉันไม่รู้ทฤษฎีที่แน่นอนที่อยู่เบื้องหลังสิ่งนี้ แต่มันใช้ได้ดี มีข้อมูลบางอย่างในอินเทอร์เน็ต เพียงแค่ google ถ้าคุณต้องการข้อมูลเพิ่มเติม ลิงค์นี้มีข้อมูลมากมายและมีประโยชน์.filtered_angle = HPF*(filtered_angle + w* dt) + LPF*(angle_accel); โดยที่ HPF + LPF = 1ค่าของ HPF และ LPF สามารถพบได้ที่ลิงค์นี้ ในไฟล์ filter.pdf ขอบคุณพวกคุณจาก "The DIY Segway" เพื่อจุดประสงค์ในการทดสอบ เราจะตั้งค่าแบบนี้ HPF = 0.98 และ LPF = 0.02
ขั้นตอนที่ 4: รหัส:
รหัสเป็นการดัดแปลงจากรหัสที่ฉันใช้ในโครงการอื่น อาจมีบางตัวแปรที่ไม่ได้ใช้ ฉันใช้ห้องสมุดเพื่ออ่านข้อมูล nunchuck จาก https://todbot.com/blog/ ขอบคุณท็อด อี. เคิร์ต ความคิดเห็นเกี่ยวกับโค้ดเป็นภาษาโปรตุเกส ทันทีที่ฉันมีเวลาว่าง ฉันจะแปลมัน โค้ดที่ส่งออกผ่านหมายเลขซีเรียลที่มีรูปแบบนี้:dt: w: teta: pitch: filter_teta $time:angular_velocity:gyro_angle:accel_angle:filtered_angle$ ดังนั้น คุณสามารถบันทึกค่านี้ที่เทอร์มินัลอนุกรมและพล็อตกราฟิกหรือใช้มุมสำหรับสิ่งอื่น ๆ หากคุณต้องการคำอธิบายเกี่ยวกับโค้ด โปรดอย่าลังเลที่จะถาม รหัสคือ ซิป เพียงเปิดเครื่องรูดเปิดและอัปโหลดไปยัง Arduino ของคุณ
ขั้นตอนที่ 5: การทดสอบและสรุปผล
ในการทดสอบระบบ ฉันบันทึกข้อมูลโดยใช้โปรแกรมชื่อ ปลวก จากนั้นนำเข้าข้อมูลนี้ที่ excel และวาดกราฟเพื่อดูว่าตัวกรองของฉันดีแค่ไหน ผลลัพธ์เป็นที่น่าอัศจรรย์ แน่นอนคุณสามารถใช้สัญญาณเพื่อขับมอเตอร์หรือสิ่งอื่น ๆ ความเห็นใด ๆ ข้อสงสัยข้อมูลใด ๆ ที่ขาดหายไปเพียงบอกฉันและฉันแก้ไขมัน กรุณาถ้าคุณชอบนี้อัตราขอบคุณทุกคน
แนะนำ:
ระบบแจ้งเตือนอุบัติเหตุโดยใช้ GSM, GPS และ Accelerometer: 5 ขั้นตอน (พร้อมรูปภาพ)
ระบบเตือนอุบัติเหตุโดยใช้ GSM, GPS และมาตรความเร่ง: Please Vote Me for Contest กรุณาโหวตให้ฉันสำหรับการประกวด ปัจจุบันหลายคนเสียชีวิตบนท้องถนนเนื่องจากอุบัติเหตุ สาเหตุหลักคือ "การช่วยเหลือล่าช้า" ปัญหานี้มันใหญ่มากในประเทศกำลังพัฒนา ฉันจึงออกแบบโครงการนี้เพื่อช่วย
เกม "Space Impact" พร้อม Gyro Sensor และ Nokia 5110 LCD: 3 ขั้นตอน
เกม "Space Impact" พร้อม Gyro Sensor และ Nokia 5110 LCD: หลังจากที่ Tamagotchi ของฉันเสียชีวิต (โครงการสุดท้าย) ฉันเริ่มค้นหาวิธีใหม่ในการเสียเวลา ฉันตัดสินใจตั้งโปรแกรมเกมคลาสสิก "Space Impact" บน Arduino เพื่อทำให้เกมน่าสนใจและสนุกขึ้นอีกเล็กน้อย ฉันใช้เซ็นเซอร์ไจโรสโคปที่ฉันมี
Xbox 360 Controller Accelerometer/gyro Steering Mod: 7 ขั้นตอน
Xbox 360 Controller Accelerometer/gyro Steering Mod: ฉันเคยเล่น Assetto Corsa ด้วยตัวควบคุม Xbox 360 ของฉันแล้ว น่าเสียดายที่การบังคับเลี้ยวด้วยแท่งอนาล็อกนั้นเทอะทะมาก และฉันไม่มีที่ว่างสำหรับตั้งล้อ ฉันพยายามคิดหาวิธีที่จะทำให้กลไกการบังคับเลี้ยวดีขึ้นในเ
วิธีสร้าง Cubesat ด้วย Arduino และ Accelerometer: 5 ขั้นตอน
วิธีสร้าง Cubesat ด้วย Arduino และ Accelerometer: ชื่อของเราคือ Brock, Eddie และ Drew เป้าหมายหลักสำหรับคลาสฟิสิกส์ของเราคือการเดินทางจากโลกไปยังดาวอังคารในขณะที่จำลองวงโคจรรอบดาวอังคารโดยใช้ Cube Sat และรวบรวมข้อมูล เป้าหมายกลุ่มของเราสำหรับโครงการนี้คือการรวบรวมข้อมูลโดยใช้การเร่ง
Gimbal แกนหมุนและขว้างสำหรับ GoPro โดยใช้ Arduino - Servo และ MPU6050 Gyro: 4 ขั้นตอน
Roll and Pitch Axis Gimbal สำหรับ GoPro โดยใช้ Arduino - Servo และ MPU6050 Gyro: คำแนะนำนี้ถูกสร้างขึ้นเพื่อตอบสนองความต้องการโครงการของ Makecourse ที่มหาวิทยาลัย South Florida (www.makecourse.com) เป้าหมายของโครงการนี้คือการสร้าง a Gimbal 3 แกนสำหรับ GoPro โดยใช้ Arduino nano + 3 เซอร์โวมอเตอร์ +