วิธีใช้ Adafruit 9-DOF กับ Arduino: คู่มือฉบับสมบูรณ์

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

อดาฟรุ๊ต 9-dof

หากคุณต้องการรวมเซ็นเซอร์อิสระ 9 องศา (9-DOF) เข้ากับโปรเจ็กต์ Arduino ของคุณ คุณมาถูกที่แล้ว อุปกรณ์เหล่านี้มีประโยชน์อย่างมากในการวัดการวางแนว ความเร่ง และการหมุนในพื้นที่สามมิติ ในบทความนี้ เราจะมาสำรวจวิธีใช้ Adafruit 9-DOF อย่างละเอียด รวมถึงการเชื่อมต่อและการกำหนดค่ากับ Arduino

เซ็นเซอร์ 9-DOF รวมเซ็นเซอร์สามประเภทที่แตกต่างกัน: มาตรความเร่ง แมกนีโตมิเตอร์ และไจโรสโคป ทำให้เครื่องมือเหล่านี้เป็นเครื่องมือสำคัญในการติดตามทิศทางและการเคลื่อนไหวอย่างแม่นยำ ด้วยคำแนะนำเหล่านี้ คุณสามารถเริ่มใช้เซ็นเซอร์ Adafruit 9-DOF กับ Arduino ได้อย่างรวดเร็วและมีประสิทธิภาพ

เซ็นเซอร์อิสระ 9 องศา (9-DOF) คืออะไร

เซ็นเซอร์ 9-DOF มีเซ็นเซอร์สามตัวในหนึ่งเดียว: accelerometerเป็น เครื่องวัดค่าความเข้มข้นของสนามแม่เหล็ก และ เครื่องมือวัดการหมุนวน- มาตรความเร่งจะวัดความเร่งในสามแกน ทำให้สามารถตรวจจับการวางแนวที่สัมพันธ์กับแรงโน้มถ่วงได้ แมกนีโตมิเตอร์ตรวจจับสนามแม่เหล็ก ซึ่งมีประโยชน์ในการกำหนดทิศทางของแม่เหล็กเหนือ สุดท้ายนี้ ไจโรสโคปจะวัดการหมุนเชิงมุม

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

การเชื่อมต่อเซ็นเซอร์ 9-DOF กับ Arduino

เมื่อคุณมีเซ็นเซอร์แล้ว ขั้นตอนต่อไปคือการเชื่อมต่อกับบอร์ด Arduino หากคุณวางแผนที่จะใช้ อินเทอร์เฟซ I2Cซึ่งเป็นเรื่องปกติมากที่สุด เซ็นเซอร์ Adafruit 9-DOF มีที่อยู่ I2C เริ่มต้นเป็น 0x69 อย่างไรก็ตาม คุณสามารถเปลี่ยนเป็น 0x68 ได้โดยเชื่อมต่อหมุดที่อยู่เข้ากับ GND

การเชื่อมต่อผ่าน I2C

กระบวนการเชื่อมต่อเป็นเรื่องง่าย ด้วยการใช้ขั้วต่อ STEMMA QT หรือ เขียงหั่นขนมแบบไร้บัดกรีคุณเพียงแค่ต้องจับคู่พินกำลังและข้อมูลให้ตรงกัน หากคุณใช้ตัวเชื่อมต่อ STEMMA คุณจะต้องเชื่อมต่อกับพิน I2C เท่านั้น (SCL และ SDA)

ใช้เซ็นเซอร์ 9-DOF พร้อม SPI

หากคุณต้องการใช้อินเทอร์เฟซ SPI คุณจะต้องเปิดใช้งานพิน CS, SCK, MOSI และ MISO สำหรับการเชื่อมต่อ พร้อมทั้งระบุการตั้งค่าในโค้ด

ติดตั้งไลบรารีที่จำเป็นบน Arduino

Arduino IDE, ชนิดข้อมูล, การเขียนโปรแกรม

เพื่อให้เซ็นเซอร์ Adafruit ทำงานอย่างถูกต้องกับ Arduino คุณจะต้องติดตั้งไลบรารีหลายแห่ง สิ่งแรกที่คุณต้องการคือ ไลบรารี Adafruit ICM20Xซึ่งเข้ากันได้กับเซ็นเซอร์ ICM20948 และ ICM20649 หากต้องการติดตั้ง ให้เปิดไฟล์ ผู้จัดการห้องสมุด ใน Arduino IDE และค้นหา “Adafruit ICM20X”

นอกจากนี้คุณจะต้องติดตั้งไฟล์ ห้องสมุด Adafruit BusIO และ ไลบรารีเซ็นเซอร์แบบรวมของ Adafruit.

โค้ดตัวอย่างสำหรับเซ็นเซอร์ Adafruit 9-DOF

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

ตัวอย่างนี้จะพิมพ์ค่าต่างๆ เช่น อุณหภูมิรวมถึงค่าบนแกนด้วย X, Y และ Z ของไจโรสโคป, มาตรความเร่ง และแมกนีโตมิเตอร์ คุณสามารถตรวจสอบผลลัพธ์ได้บนมอนิเตอร์อนุกรมที่ตั้งไว้ที่ 115200 บอด

ตัวอย่างพื้นฐานสำหรับการวัดด้วย ICM20948

#include <Adafruit_ICM20X.h>#include <Adafruit_ICM20948.h>#include <Adafruit_Sensor.h>#include <Wire.h>

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

รายงานการหมุนทำงานอย่างไรกับเซ็นเซอร์ BNO085

หากนอกเหนือจากเซ็นเซอร์ ICM20948 คุณยังใช้เซ็นเซอร์ 9-DOF เช่น บีเอ็นโอ085สิ่งนี้ช่วยให้คุณสร้างได้ รายงานการหมุนเวียนสำคัญสำหรับการได้รับข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับการวางแนวในการเคลื่อนไหวที่ซับซ้อน

รายละเอียดที่สำคัญที่คุณควรจำไว้คือเซ็นเซอร์นี้ต้องใช้ไมโครคอนโทรลเลอร์ด้วย ความจุหน่วยความจำที่มากขึ้นเช่น SAMD21, SAMD51 หรือ nRF52 ไม่แนะนำให้ใช้บอร์ด Arduino ขั้นพื้นฐานเช่น Uno หรือ Leonardo เนื่องจากมี RAM ไม่เพียงพอ

นอกจากนี้ BNO085 ยังใช้การใช้งาน I2C พิเศษที่บางระบบไม่รองรับ ตัวอย่างเช่น เซ็นเซอร์นี้ทำงานไม่ถูกต้องกับชิปเช่น ESP32 หรือด้วยมัลติเพล็กเซอร์ I2C อย่างไรก็ตาม การดำเนินงานค่อนข้างเชื่อถือได้บนแพลตฟอร์มเช่น RP2040, STM32F4 หรือ SAMD51.

การออกแบบและคุณสมบัติของการฝ่าวงล้อม LSM9DS1

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

เซ็นเซอร์นี้มี อินเทอร์เฟซ I2C y SPIทำให้มีความหลากหลายสำหรับแพลตฟอร์มการพัฒนาต่างๆ คุณสามารถเชื่อมต่อกับ Arduino ได้อย่างง่ายดาย โดยให้แรงดันไฟฟ้าระหว่าง 3 ถึง 5V และเชื่อมต่อพิน I2C SCL y SDA.

ความแตกต่างกับ LSM9DS0

ความแตกต่างที่สำคัญประการหนึ่งอยู่ที่ ช่วงมาตรความเร่งซึ่งใน LSM9DS1 คือ ±2, ±4, ±8 และ ±16 g ในขณะที่เซนเซอร์อื่นๆ เช่น LSM9DS0 มีช่วงเพิ่มเติม ±6g

คุณสามารถใช้เซ็นเซอร์ Adafruit 9-DOF ทำอะไรได้บ้าง

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


เพิ่มเป็นแหล่งที่มาที่ต้องการ