คู่มือฉบับสมบูรณ์เกี่ยวกับ MEMS MPU6050 และ LSM9DS1: ทฤษฎี การปฏิบัติ และกรณีการใช้งาน

  • เซ็นเซอร์ MEMS MPU6050 และ LSM9DS1 ช่วยให้สามารถวัดความเร่งและการหมุนใน XNUMX แกนด้วยความแม่นยำสูงและต้นทุนต่ำ
  • MPU6050 มีการรวมเอาเครื่องวัดความเร่งและไจโรสโคปเข้าไว้ด้วยกัน ในขณะที่ LSM9DS1 ยังเพิ่มเครื่องวัดสนามแม่เหล็กเข้าไปด้วย ซึ่งจะช่วยให้สามารถระบุทิศทางได้อย่างแม่นยำ
  • ผ่านการสอบเทียบและการกรอง เซนเซอร์ทั้งสองตัวสามารถใช้ในแอปพลิเคชันต่างๆ เช่น ระบบนำทางเฉื่อย หุ่นยนต์ หรืออุปกรณ์สวมใส่ได้
LSM9DS1

ซ้อนกันจาก 12 ภาพ วิธีการ=B (R=44,S=4)

ในโลกของเทคโนโลยีและอิเล็กทรอนิกส์ในปัจจุบัน เซ็นเซอร์ MEMS (Micro-Electro-Mechanical Systems) ได้กลายเป็นเครื่องมือสำคัญสำหรับโครงการทุกประเภท ตั้งแต่หุ่นยนต์ไปจนถึงระบบอัตโนมัติในบ้านและอุปกรณ์สวมใส่ โมดูลที่รวมเอาเครื่องวัดความเร่งและไจโรสโคป เช่น MPU6050 และ y LSM9DS1เป็นสองตัวเลือกยอดนิยมเนื่องจากความคล่องตัว ต้นทุนต่ำ และบูรณาการกับไมโครคอนโทรลเลอร์ เช่น Arduino และแพลตฟอร์มอื่น ๆ ได้ง่าย ความเข้าใจอย่างถ่องแท้เกี่ยวกับการทำงาน คุณสมบัติเฉพาะ ความแตกต่าง และแม้แต่วิธีที่ดีที่สุดในการใช้ประโยชน์จากสิ่งเหล่านี้ ถือเป็นสิ่งสำคัญสำหรับการออกแบบระบบที่แม่นยำ วัดการเคลื่อนไหว ทิศทาง และความเอียง.

ในบทความนี้ เราจะพาคุณผ่านทุกสิ่งที่คุณต้องรู้เกี่ยวกับเซ็นเซอร์ทีละขั้นตอน MPU6050 y LSM9DS1:วิธีการทำงาน แอปพลิเคชันที่พวกเขามี วิธีผสานเข้ากับโครงการของคุณ ปรับเทียบ ตีความการอ่านอย่างถูกต้อง และใช้ประโยชน์จากความสามารถของพวกเขาอย่างเต็มที่ โดยผสมผสานข้อมูลที่รวบรวมจากบทช่วยสอนและบทความทางเทคนิคที่ดีที่สุด ภายใต้วิสัยทัศน์ที่ใช้งานได้จริงและทันสมัยด้วยภาษาที่ใกล้ชิด เพื่อให้ บรรลุผลลัพธ์ระดับมืออาชีพ ในการพัฒนาของคุณ

เซ็นเซอร์ MEMS คืออะไรและทำงานอย่างไร?

โมดูล mpu6050

ก่อนที่จะเจาะลึกถึงรุ่นเฉพาะ MPU6050 และ LSM9DS1 สิ่งสำคัญคือต้องชัดเจนเกี่ยวกับแนวคิดของ เซ็นเซอร์ MEMS. อุปกรณ์เหล่านี้เรียกอีกอย่างหนึ่งว่า ระบบไฟฟ้าไมโครแมคคานิคส์รวมส่วนประกอบกลไกระดับจุลภาคและวงจรอิเล็กทรอนิกส์เข้าไว้ในชิปตัวเดียว เพื่อให้สามารถตรวจจับการเปลี่ยนแปลงทางกายภาพ เช่น การเร่งความเร็ว การหมุน หรือการสั่น และแปลงสัญญาณดังกล่าวให้เป็นสัญญาณไฟฟ้าที่ระบบดิจิทัลสามารถตีความได้

ในกรณีของเครื่องวัดความเร่งและไจโรสโคป MEMS การทำงานของอุปกรณ์เหล่านี้จะขึ้นอยู่กับหลักการ เช่น:

  • กฎความเร่งของนิวตัน (a = F/m) โดยใช้โครงสร้างภายในทำหน้าที่เป็นมวลจุลภาคและสปริง
  • ปรากฏการณ์ Coriolis ใช้เพื่อตรวจจับการเคลื่อนไหวเชิงมุม โดยใช้ประโยชน์จากการเบี่ยงเบนที่มวลขนาดเล็กประสบเมื่อหมุนภายในชิป
  • ตัวแปลง ADC ภายในที่จะแปลงการเปลี่ยนแปลงทางกายภาพเป็นค่าดิจิตอลที่มีความละเอียดสูง (ปกติคือ 16 บิต)

ความสามารถเหล่านี้ทำให้ MEMS มีประโยชน์อย่างยิ่งในแอปพลิเคชันที่ต้องการ การวัดทิศทาง ความเอียง หรือการเคลื่อนที่ ในสามมิติ เช่น ระบบนำทาง ระบบกันสั่นของกล้อง นาฬิกาอัจฉริยะ โดรน หุ่นยนต์ และอื่นๆ อีกมากมาย

คุณสมบัติหลักของ MPU6050

AZDelivery 5 x GY-521...
AZDelivery 5 x GY-521...
ไม่มีการให้คะแนน

El MPU6050 อาจเป็นเซ็นเซอร์ตรวจจับการเคลื่อนไหว MEMS ที่ใช้กันอย่างแพร่หลายที่สุดในกลุ่มผู้ผลิต วิศวกร และนักเล่นอดิเรกที่กำลังมองหาโซลูชันที่ประหยัดและเชื่อถือได้ในการวัดความเร่งและการหมุนใน 3 แกน

ข้อมูลทางเทคนิคที่สำคัญประกอบด้วย:

  • มาตรความเร่ง 3 แกน:สามารถตรวจจับความเร่งบนแกน X, Y และ Z โดยมีช่วงที่ตั้งโปรแกรมได้คือ ±2g, ±4g, ±8g และ ±16g
  • ไจโรสโคปแบบ 3 แกน:วัดความเร็วเชิงมุมบนแกนทั้งสามแกน โดยมีความไวที่ปรับได้ที่ ±250, ±500, ±1000 และ ±2000 องศาต่อวินาที
  • โปรเซสเซอร์การเคลื่อนไหวแบบดิจิตอล (DMP): ประกอบด้วยไมโครโปรเซสเซอร์ภายในที่ทำหน้าที่คำนวณที่ซับซ้อน โมชั่นฟิวชั่น (การรวมเซ็นเซอร์) คำนวณข้อมูล เช่น ควอเทอร์เนียน มุมออยเลอร์ และเมทริกซ์การหมุน โดยไม่ต้องโหลดการคำนวณเหล่านั้นลงในไมโครคอนโทรลเลอร์หลัก
  • เอาท์พุตดิจิตอลผ่าน I2C:การสื่อสารผ่านบัส I2C โดยมีที่อยู่ที่เป็นไปได้ 0 ที่อยู่ (กำหนดค่าได้ผ่านพิน AD0 ถึง 68x0 หรือ 69xXNUMX) อนุญาตให้ใช้งานร่วมกับ Arduino, ESP และบอร์ดที่คล้ายคลึงกันส่วนใหญ่
  • ตัวแปลง ADC 16 บิต:ให้ความละเอียดสูงในการรวบรวมข้อมูล
  • เซ็นเซอร์อุณหภูมิในตัว
  • ความเป็นไปได้ของการขยายด้วยแม็กนีโตมิเตอร์ภายนอก:ผ่านทางบัสเสริม I2C, MPU6050 สามารถอ่านเซนเซอร์ที่เชื่อมต่ออื่นๆ เช่น HMC5883L (แมกนีโตมิเตอร์) ยอดนิยม เพื่อสร้าง IMU 9 แกนที่สมบูรณ์
  • แรงดันไฟฟ้าที่ใช้งานได้อย่างยืดหยุ่น:สามารถรับไฟได้ที่ 3,3V หรือ 5V ได้ หากใช้เมนบอร์ด เช่น GY-521 ที่มีตัวควบคุมไฟ

นอกจากนี้ ขนาดกะทัดรัดของโมดูล (ประมาณ 25 x 15 มม.) และความจริงที่ว่าโมดูลนี้พร้อมที่จะรวมเข้ากับแผงการทดลองทำให้โมดูลนี้เหมาะสำหรับการทดสอบและการพัฒนาขั้นสุดท้าย

LSM9DS1 คืออะไร และแตกต่างกันอย่างไร?

ในทางกลับกัน LSM9DS1 เป็นตัวเลือกที่ทันสมัยและล้ำหน้ากว่าในตระกูล MEMS IMU แม้ว่าจะไม่ค่อยเป็นที่นิยมในโปรเจ็กต์สำหรับผู้เริ่มต้นเท่า MPU6050 ก็ตาม โดยจะรวมคุณสมบัติต่อไปนี้ไว้ในชิปตัวเดียว:

  • Un มาตรความเร่ง 3 แกน
  • Un ไจโรสโคป 3 แกน
  • Un แมกนีโตมิเตอร์แบบ 3 แกน

ซึ่งหมายความว่า LSM9DS1 เป็น 9 DoF (องศาแห่งความเป็นอิสระ) IMUช่วยให้คุณวัดความเร่ง ความเร็วเชิงมุม และสนามแม่เหล็กโลกในสามมิติ โดยให้ค่าการอ่านที่ครบถ้วนและแม่นยำ ตำแหน่งและทิศทางที่แน่นอน โดยเกี่ยวข้องกับโลก

ข้อได้เปรียบหลักเหนือ MPU6050 ได้แก่:

  • รวมเซ็นเซอร์ทั้งสามเข้าไว้ในชิปกายภาพตัวเดียวประหยัดพื้นที่และลดความยุ่งยากในการเชื่อมต่อ
  • คุณสามารถสื่อสารได้ทั้งสองทาง I2C เป็น SPIซึ่งทำให้มีความยืดหยุ่นมากขึ้นสำหรับแพลตฟอร์มที่แตกต่างกัน
  • ระยะและความไวของเซ็นเซอร์แต่ละตัว (เครื่องวัดความเร่ง ไจโรสโคป เครื่องวัดสนามแม่เหล็ก) สามารถกำหนดค่าได้อย่างยืดหยุ่นมากขึ้น
  • มีการกรองดิจิทัลขั้นสูงและตัวเลือกการตรวจจับเหตุการณ์

มักเลือกใช้ LSM9DS1 สำหรับโครงการที่ต้องมีการวางแนวแบบสัมบูรณ์ (เช่น เข็มทิศ ระบบนำทาง หรือการรักษาเสถียรภาพการบิน) โดยไม่ต้องใช้เซ็นเซอร์ภายนอกเพิ่มเติม

หลักการทำงานของเครื่องวัดความเร่งและไจโรสโคป MEMS

หากต้องการเข้าใจอย่างแท้จริงว่าโมดูล MEMS เหล่านี้ทำงานอย่างไร จำเป็นต้องเข้าใจแนวคิดทางกายภาพและวิธีการแปลเป็นข้อมูลดิจิทัล:

accelerometer

Un เครื่องวัดความเร่ง MEMS วัดความเร่งของวัตถุ (การเปลี่ยนแปลงความเร็วตามเวลา) เทียบกับแกนทั้งสามของอวกาศ โดยภายในแล้วจะขึ้นอยู่กับการมีอยู่ของ มวลแขวนลอยในระดับจุลภาค โดยใช้สมอที่ยืดหยุ่นได้หรือสปริงขนาดเล็ก เมื่อเซ็นเซอร์เร่งความเร็ว มวลจะเคลื่อนเล็กน้อย และการเปลี่ยนแปลงนี้จะถูกแปลงเป็นสัญญาณไฟฟ้าโดยใช้ตัวเก็บประจุแบบแปรผันหรือแบบเพียโซอิเล็กทริก

  • เครื่องวัดความเร่งจะตรวจจับความเร่งอย่างน้อยหนึ่งอย่างเสมอ: แรงโน้มถ่วง (9,81 ม./วินาที2) แม้ว่าเซ็นเซอร์ยังคงอยู่
    ใช้เพื่อคำนวณความเอียงเทียบกับระนาบแนวนอน.
  • ด้วยการบูรณาการความเร่งเทียบกับเวลา เราจึงสามารถได้ความเร็วและตำแหน่งที่เดินทางได้ แม้ว่าการดำเนินการเหล่านี้มีแนวโน้มที่จะสะสมข้อผิดพลาดก็ตาม

เครื่องมือวัดการหมุนวน

El ไจโรสโคป MEMS ใช้ ผลของโบลิทาร์ เพื่อตรวจจับความเร็วที่วัตถุหมุนรอบแกน X, Y และ Z เมื่อเซนเซอร์เกิดการหมุน มวลสั่นสะเทือนภายในจะเกิดการเบี่ยงเบนตามสัดส่วน ความเร็วเชิงมุมและการเปลี่ยนแปลงดังกล่าวจะวัดด้วยระบบอิเล็กทรอนิกส์

  • ไจโรสโคปวัด ความเร็วเชิงมุม:การเปลี่ยนแปลงทิศทางของเซ็นเซอร์ในแต่ละแกนรวดเร็วแค่ไหน
  • การบูรณาการความเร็วเชิงมุมกับเวลาจะได้มุมของการหมุน (ตำแหน่งเชิงมุม) แม้ว่าการดำเนินการนี้จะสร้างข้อผิดพลาดสะสมที่เรียกว่า ลอยไป.

เหตุใดจึงต้องใช้เครื่องวัดความเร่งและไจโรสโคปร่วมกัน?

ทั้งเครื่องวัดความเร่งและไจโรสโคปต่างก็มีข้อจำกัดในการกำหนดทิศทางของวัตถุ:

  • มาตรความเร่ง: มีความแม่นยำในการตรวจจับความเอียงเทียบกับแกนตั้ง (โดยใช้แรงโน้มถ่วง) แต่มีความไวต่อการเคลื่อนไหวฉับพลัน การเร่งความเร็วจากภายนอก หรือการสั่นสะเทือนเป็นอย่างมาก
  • ไจโรสโคป: เหมาะอย่างยิ่งสำหรับการวัดการเปลี่ยนแปลงทิศทางอย่างรวดเร็ว แต่จะประสบปัญหาการสะสมข้อผิดพลาดหากเอาต์พุตถูกรวมเข้าด้วยกันเป็นเวลานาน

ดังนั้น แอปพลิเคชันส่วนใหญ่จะรวมข้อมูลจากเซนเซอร์ทั้งสองตัวเข้าด้วยกัน ซึ่งจะช่วยเพิ่มความแม่นยำและความน่าเชื่อถือของการอ่านค่าได้อย่างมาก มุม ความเอียง หรือ ตำแหน่งเพื่อให้บรรลุเป้าหมายนี้ พวกเขาจะใช้มัน ฟิลเตอร์ประมวลผลแบบดิจิตอล เช่น ตัวกรองเสริมหรือตัวกรอง Kalman ที่รวมและชั่งน้ำหนักข้อดีของเซ็นเซอร์แต่ละตัว

เริ่มต้นใช้งาน MPU6050: การเชื่อมต่อและไลบรารี

แผนผังการเชื่อมต่อแบบทั่วไป

โมดูล MPU6050 โดยทั่วไปจะติดตั้งบนชนิดแผ่น GY-521ซึ่งช่วยอำนวยความสะดวกในการบูรณาการกับไมโครคอนโทรลเลอร์ เช่น Arduino เป็นอย่างมาก

การเชื่อมต่อพื้นฐานเพื่อใช้โมดูลในโหมด I2C โดยทั่วไปมีดังนี้:

MPU6050 Arduino Uno/นาโน/มินิ อาร์ดูอิโน เมกะ/DUE Arduino Leonardo
VCC 5V 5V 5V
GND GND GND GND
SCL A5 21 3
SDA A4 20 2

โมดูลนี้มีตัวต้านทานแบบดึงขึ้นในตัว ดังนั้นจึงไม่จำเป็นต้องเพิ่มจากภายนอก

ที่อยู่ I2C และพิน AD0

MPU6050 ช่วยให้คุณกำหนดค่าที่อยู่ I2C ได้ 0x68 (โดยค่าเริ่มต้น เมื่อพิน AD0 อยู่ที่ GND หรือไม่ได้เชื่อมต่อ) หรือ 0x69 (เมื่อ AD0 เชื่อมต่อกับไฟสูง/5V) ทำให้สามารถใช้เซ็นเซอร์หลายตัวบนบัสเดียวกันได้อย่างง่ายดาย

ไลบรารีที่แนะนำ: I2Cdevlib โดย Jeff Rowberg

ในการทำงานอย่างสะดวกสบายกับ MPU6050 บน Arduino ชุมชนแนะนำให้ใช้ไลบรารีดังต่อไปนี้:

  • ไอทูซีเดฟ:อำนวยความสะดวกในการสื่อสาร I2C กับเซ็นเซอร์ต่างๆ มากมาย
  • MPU6050:ช่วยให้คุณเข้าถึงฟังก์ชั่นเซ็นเซอร์ทั้งหมด อ่านค่าที่ผ่านการสอบเทียบ ออฟเซ็ต และใช้ DMP

มีจำหน่ายใน: https://github.com/jrowberg/i2cdevlib

เมื่อดาวน์โหลดแล้ว เพียงแค่แตกไฟล์และวางไว้ในโฟลเดอร์ ห้องสมุด จาก Arduino IDE

การอ่านข้อมูลพื้นฐาน: ความเร่งและความเร็วเชิงมุม

เมื่อเชื่อมต่อและกำหนดค่า MPU6050 แล้ว ขั้นตอนถัดไปคือการดำเนินการ การอ่านค่าความเร่งและความเร็วเชิงมุม บนแกนทั้งสาม กระบวนการพื้นฐานโดยใช้ไลบรารีที่กล่าวถึงข้างต้นประกอบด้วย:

  1. เริ่มต้นการทำงานของเซ็นเซอร์ด้วยฟังก์ชั่น เซ็นเซอร์.initialize().
  2. ตรวจสอบการเชื่อมต่อด้วย เซ็นเซอร์.ทดสอบการเชื่อมต่อ().
  3. อ่านค่า RAW (ยังไม่ได้ประมวลผล) จากเครื่องวัดความเร่งและไจโรสโคปลงในตัวแปรต่างๆ เช่น ax, ay, az สำหรับความเร่ง และ gx, gy, gz สำหรับการหมุน
  4. ส่งข้อมูลไปยังพอร์ตซีเรียลเพื่อแสดงผลลัพธ์

ข้อมูลนี้ปรากฏเป็นจำนวนเต็ม 16 บิตในช่วง

การปรับเทียบเซนเซอร์ MPU6050

ขั้นตอนสำคัญประการหนึ่งเมื่อใช้ MPU6050 คือ การสอบเทียบเป็นเรื่องปกติมากที่เซ็นเซอร์จะส่งคืนค่าที่ไม่เท่ากับศูนย์ แม้ว่าจะวางแนวนอนและอยู่นิ่งอย่างสมบูรณ์แบบก็ตาม เนื่องมาจากการจัดวางที่ไม่ถูกต้องที่อาจเกิดขึ้นได้เมื่อบัดกรีชิปเข้ากับโมดูล หรือแม้แต่ข้อบกพร่องเล็กๆ น้อยๆ ในการผลิต

การปรับเทียบเซ็นเซอร์เกี่ยวข้องกับการกำหนด ออฟเซ็ตของเครื่องวัดความเร่งและไจโรสโคป บนแต่ละแกนและกำหนดค่าบนเซ็นเซอร์เพื่อให้การอ่านค่าขึ้นอยู่กับข้อมูลที่ถูกต้อง กระบวนการทั่วไปอาจประกอบด้วย:

  • อ่านค่าออฟเซ็ตปัจจุบันโดยใช้ฟังก์ชั่นเช่น รับ XAccelOffset(), รับ YAccelOffset()ฯลฯ
  • วางเซ็นเซอร์ไว้ในตำแหน่งแนวนอนและนิ่งสนิท
  • ใช้โปรแกรมปรับค่าออฟเซ็ตจนกระทั่งค่าการอ่านที่ผ่านการกรอง (เช่น การใช้ค่าเฉลี่ยเคลื่อนที่หรือตัวกรองความถี่ต่ำ) บรรจบกันเป็นค่าในอุดมคติ: ขวาน = 0, ay = 0, az = 16384, gx = 0, gy = 0, gz = 0 ในโหมดดิบ (RAW)
  • ตั้งค่าเหล่านี้ด้วยฟังก์ชั่น ตั้งค่า XAccelOffset(), ตั้งค่า YAccelOffset()ฯลฯ

เมื่อปรับเทียบอย่างถูกต้องแล้ว เซ็นเซอร์จะให้ค่าที่แม่นยำและเสถียรมากขึ้น ซึ่งจำเป็นสำหรับการใช้งานที่สำคัญ เช่น การรักษาเสถียรภาพหรือการนำทาง

การปรับขนาดและการแปลงค่าการอ่านเป็นหน่วยทางกายภาพ

ค่าอ่านดิบจาก MPU6050 จะต้องถูกแปลงให้เป็นหน่วย SI (ระบบระหว่างประเทศ) เพื่อที่จะตีความและใช้ในการคำนวณทางกายภาพหรือการแสดงภาพข้อมูล:

  • การเร่งความเร็ว: ช่วงเริ่มต้นคือ ±2g ซึ่งเทียบเท่ากับ ±19,62 m/s2ค่า RAW 16384 สอดคล้องกับ 1g ดังนั้นจึงต้องแปลงเป็น x am/s2: ขวาน * (9,81/16384.0).
  • ความเร็วเชิงมุม: โดยค่าเริ่มต้นคือ ±250°/s ดังนั้นการแปลงจะเป็นดังนี้: กรัม * (250.0 / 32768.0) เพื่อแปลงจากค่า RAW ให้เป็นองศาต่อวินาที

ปัจจัยมาตราส่วนเหล่านี้จะเปลี่ยนแปลงไปหากคุณกำหนดค่าเซนเซอร์ไปยังช่วงอื่น ดังนั้น จึงจำเป็นต้องตรวจสอบการตั้งค่าจากโรงงานหรือแบบกำหนดเองเสมอ ก่อนที่จะตีความข้อมูล

คำนวณความเอียงโดยใช้เพียงเครื่องวัดความเร่ง

เมื่อเซ็นเซอร์อยู่นิ่งหรืออยู่ภายใต้อิทธิพลของแรงโน้มถ่วงเท่านั้น การอ่านค่าของเครื่องวัดความเร่งสามารถใช้เพื่อคำนวณได้ มุมเอียงเทียบกับแกน X และ Yสูตรคณิตศาสตร์ทั่วไปใช้ฟังก์ชันตรีโกณมิติ:

  • สำหรับความเอียง X: อาทาน(ขวาน / sqrt(ay² + az²)) × 180/π
  • สำหรับ Y-slant: อาทาน(ay / sqrt(ax² + az²)) × 180/π

ซึ่งจะให้ค่ามุมเอียงเทียบกับแกนแต่ละแกนเทียบกับระนาบแรงโน้มถ่วง แม้ว่าหากเซนเซอร์กำลังเคลื่อนที่หรือได้รับการเร่งความเร็วอื่น ค่าเหล่านี้อาจเปลี่ยนแปลงได้

การคำนวณมุมการหมุนด้วยไจโรสโคป

ไจโรสโคปช่วยให้สามารถคำนวณได้ การเปลี่ยนแปลงของมุมโดยการบูรณาการความเร็วเชิงมุม เมื่อเวลาผ่านไป ในทางคณิตศาสตร์:

  • มุมจะเท่ากับอินทิกรัลของความเร็วเชิงมุมในช่วงเวลาที่กำหนด: θ = θ0 + ∫w·dt

ในทางปฏิบัติ การคำนวณเหล่านี้สามารถทำได้ในลูปโปรแกรม โดยรวมความเร็วเชิงมุมคูณด้วยช่วงเวลาการสุ่มตัวอย่าง (dt) เพื่อให้ได้ค่าของมุมสะสม

การควบคุมข้อผิดพลาดในการรวมเป็นสิ่งสำคัญ เนื่องจากข้อผิดพลาดเล็กๆ น้อยๆ จะสะสมจนทำให้เกิด ลอยไป.

ฟิลเตอร์ฟิวชันเซ็นเซอร์: ฟิลเตอร์เสริมและฟิลเตอร์คาลมาน

เพื่อลดข้อผิดพลาดในการตีความและใช้ประโยชน์จากเซ็นเซอร์แต่ละตัวให้ได้มากที่สุด จึงมีการใช้อัลกอริทึมการรวมข้อมูล:

ตัวกรองเสริม

ตัวกรองนี้จะรวมมุมที่ประเมินโดยไจโรสโคป (ซึ่งใช้งานได้ดีในระยะสั้น) กับมุมที่คำนวณโดยเครื่องวัดความเร่ง (ซึ่งเชื่อถือได้มากกว่าในระยะยาวแต่มีสัญญาณรบกวน) สูตรทั่วไปคือ:

มุมสุดท้าย = α × (มุมก่อนหน้า + ความเร็วเชิงมุม×dt) + (1-α) × มุมวัดความเร่ง

โดยที่ α มักจะอยู่ระหว่าง 0,95 ถึง 0,99 ซึ่งช่วยให้ได้ค่าการอ่านที่เสถียรและลด ลอยไป.

ตัวกรองคาลมาน

ฟิลเตอร์นี้ล้ำหน้ากว่ามาก โดยจะรวมการวัดเข้าด้วยกันโดยคำนึงถึงความไม่แน่นอนของการวัดแต่ละครั้งและความสัมพันธ์ของการวัด ทำให้ได้การประมาณค่าที่แม่นยำในสภาวะที่มีสัญญาณรบกวน ฟิลเตอร์นี้ใช้กันอย่างแพร่หลายในระบบนำทางและหุ่นยนต์ขั้นสูง แม้ว่าจะต้องใช้พลังประมวลผลที่มากขึ้นก็ตาม

การจำลองภาพสามมิติและการแสดงทิศทาง (Yaw, Pitch, Roll)

แอปพลิเคชั่นที่น่าสนใจคือ การแสดงผลการวางแนว 3 มิติแบบเรียลไทม์ ของวัตถุ เช่น โดรน หรือ หุ่นยนต์ โดยแสดงมุม การหันเห การโยน และการกลิ้ง.

ทำได้โดยการส่งข้อมูลที่ประมวลผลแล้วไปยังซอฟต์แวร์กราฟิกโดยใช้เครื่องมือเช่น Serial Plotter หรือโปรแกรม 3D เฉพาะเพื่อตรวจสอบและวิเคราะห์การเคลื่อนไหว วิธีนี้ช่วยให้คุณเข้าใจได้ว่าระบบของคุณวางแนวในอวกาศอย่างไร

การอ่านแบบขยาย: การใช้เครื่องวัดสนามแม่เหล็กและเซ็นเซอร์ LSM9DS1

El LSM9DS1 บูรณาการเครื่องวัดความเร่ง ไจโรสโคป และเครื่องวัดสนามแม่เหล็กไว้ในชิปตัวเดียว ช่วยให้รับข้อมูลจาก ตำแหน่งและทิศทางที่แน่นอนนอกจากการวัดความเร่งและการหมุนแล้ว ยังสามารถตรวจจับสนามแม่เหล็กโลกได้อีกด้วย:

  • คำนวณ ทิศอาซิมุทสัมบูรณ์มีประโยชน์ในการนำทางและเข็มทิศดิจิทัล
  • พัฒนาระบบนำทางโดยไม่ต้องใช้เซ็นเซอร์ภายนอกเพิ่มเติม
  • ฟิวส์ข้อมูลจากเซ็นเซอร์ทั้งหมดเพื่อการประมาณตำแหน่งและทิศทางที่แม่นยำสูง (9-DoF)

เคล็ดลับเชิงปฏิบัติเพื่อการใช้ MPU6050 และ LSM9DS1 อย่างมีประสิทธิภาพ

  • ปรับเทียบเซ็นเซอร์เสมอ ก่อนใช้งานในแอปพลิเคชันที่สำคัญเพื่อปรับปรุงความแม่นยำ
  • หลีกเลี่ยงการติดตั้งโมดูลใกล้แหล่งกำเนิดสัญญาณรบกวนแม่เหล็กไฟฟ้า เช่น มอเตอร์หรือแม่เหล็ก
  • ใช้เทคนิคการกรองและควบคุมเวลาการสุ่มตัวอย่างอย่างแม่นยำ
  • สำหรับการวางแนวที่แน่นอนตามทิศเหนือ ขอแนะนำให้ใช้ LSM9DS1 หรือรวม MPU6050 เข้ากับแม็กนีโตมิเตอร์ภายนอก เช่น HMC5883L
  • การนำการแสดงภาพแบบเรียลไทม์มาใช้ช่วยให้ตีความข้อมูลที่รวบรวมได้ดีขึ้น
  • ร้านหนังสือเช่น i2cdevlib พวกเขาทำให้การทำงานง่ายขึ้นมาก ดังนั้นให้จัดลำดับความสำคัญเพื่อให้การพัฒนาสะดวกยิ่งขึ้น
LSM9DS1
บทความที่เกี่ยวข้อง:
คู่มือฉบับสมบูรณ์เกี่ยวกับเซ็นเซอร์ LSM9DS1 พร้อม Arduino: เครื่องวัดความเร่ง ไจโรสโคป และมิเตอร์แม่เหล็ก

เริ่มการสนทนา

แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา