สารบัญ:

การวัดมุมโดยใช้ Gyro, Accelerometer และ Arduino: 5 ขั้นตอน
การวัดมุมโดยใช้ Gyro, Accelerometer และ Arduino: 5 ขั้นตอน

วีดีโอ: การวัดมุมโดยใช้ Gyro, Accelerometer และ Arduino: 5 ขั้นตอน

วีดีโอ: การวัดมุมโดยใช้ Gyro, Accelerometer และ Arduino: 5 ขั้นตอน
วีดีโอ: GY-521 Sensor ไจโร เซ็นเซอร์ สอนใขงาน GY-521 เเสดงค่าเเกน X Y Z (Arduino EP.36) DIY 2024, พฤศจิกายน
Anonim
การวัดมุมโดยใช้ Gyro, Accelerometer และ Arduino
การวัดมุมโดยใช้ Gyro, Accelerometer และ Arduino

อุปกรณ์นี้เป็นต้นแบบคร่าวๆ ของสิ่งที่จะกลายเป็นหุ่นยนต์ทรงตัวในท้ายที่สุด ซึ่งเป็นส่วนที่สองของสิ่งที่เป็นรู (อ่านมาตรความเร่งและควบคุมมอเตอร์ให้สมดุลในตัวเอง) ส่วนแรกที่มีเพียงไจโรสามารถพบได้ที่นี่ ในคำแนะนำนี้ เราจะวัดมุมโดยใช้ทั้งไจโรและมาตรความเร่ง และใช้เทคนิคในการรวมเซ็นเซอร์ทั้งสองเข้าด้วยกันเพื่อรับสัญญาณที่ราบรื่น เทคนิคนี้เรียกว่า "ฟิลเตอร์เสริม".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 และวาดกราฟเพื่อดูว่าตัวกรองของฉันดีแค่ไหน ผลลัพธ์เป็นที่น่าอัศจรรย์ แน่นอนคุณสามารถใช้สัญญาณเพื่อขับมอเตอร์หรือสิ่งอื่น ๆ ความเห็นใด ๆ ข้อสงสัยข้อมูลใด ๆ ที่ขาดหายไปเพียงบอกฉันและฉันแก้ไขมัน กรุณาถ้าคุณชอบนี้อัตราขอบคุณทุกคน

แนะนำ: