Slik bruker du Adafruit 9-DOF med Arduino: Komplett veiledning

  • 9-DOF-sensoren tilbyr akselerometer, magnetometer og gyroskop pÃ¥ en enkelt brikke for Ã¥ oppdage 3D-bevegelser.
  • Den støtter bÃ¥de I2C og SPI-tilkobling, og krever spesifikke biblioteker installert pÃ¥ Arduino.
  • Sensorkonfigurasjon og bruk varierer avhengig av modell, men deling av nøyaktig orientering og rotasjonsinformasjon er en vanlig funksjon.

adafruit 9-dof

Hvis du ønsker å integrere en 9-graders frihetssensor (9-DOF) i Arduino-prosjektene dine, har du kommet til rett sted. Disse enhetene er ekstremt nyttige for å måle orientering, akselerasjon og rotasjon i tredimensjonalt rom. I denne artikkelen skal vi grundig utforske hvordan du bruker Adafruit 9-DOF, dens tilkoblinger og konfigurasjon med Arduino.

9-DOF-sensorer kombinerer tre forskjellige typer sensorer: akselerometre, magnetometre og gyroskoper. Dette gjør dem til viktige verktøy for nøyaktig sporing av orienteringer og bevegelser. Med disse instruksjonene kan du begynne å bruke din Adafruit 9-DOF-sensor med Arduino raskt og effektivt.

Hva er en 9 frihetsgrader (9-DOF) sensor?

9-DOF-sensoren har tre sensorer i én: a akselerometer, Un magnetometer og en gyroskop. Akselerometeret måler akselerasjon i tre akser, slik at det kan oppdage orientering i forhold til tyngdekraften. Magnetometeret oppdager magnetfeltet, og er nyttig for å bestemme retningen til magnetisk nord. Til slutt måler gyroskopet vinkelrotasjon.

Disse tre sensorene kombineres for å tilby en tredimensjonal oppfatning av bevegelse og orientering, noe som gjør den ideell for applikasjoner som robotikk, droner eller bærbare enheter.

Koble til 9-DOF-sensor med Arduino

Når du har sensoren, er neste trinn å koble den til Arduino-kortet ditt. Hvis du planlegger å bruke I2C-grensesnitt, som er den vanligste, Adafruit 9-DOF-sensoren har en standard I2C-adresse på 0x69. Du kan imidlertid også endre den til 0x68 ved å koble adressepinnen til GND.

Tilkobling via I2C

Tilkoblingsprosessen er enkel. Ved bruk av en STEMMA QT-kontakt eller en loddefri brødbrett, du må ganske enkelt matche strøm- og datapinnene. Hvis du bruker en STEMMA-kontakt, trenger du bare å koble den til I2C-pinnene (SCL og SDA).

Bruk en 9-DOF-sensor med SPI

Hvis du foretrekker å bruke SPI-grensesnittet, må du aktivere CS-, SCK-, MOSI- og MISO-pinnene for tilkoblingen, samt spesifisere innstillingene i koden.

Installer de nødvendige bibliotekene på Arduino

Arduino IDE, datatyper, programmering

For at Adafruit-sensoren din skal fungere ordentlig med Arduino, må du installere flere biblioteker. Det første du trenger er Adafruit ICM20X-bibliotek, som er kompatibel med ICM20948 og ICM20649 sensorer. For å installere den, åpne Bibliotekssjef i Arduino IDE og søk etter "Adafruit ICM20X".

I tillegg til dette må du også installere Adafruit BusIO bibliotek og Adafruit Unified Sensor Library.

Eksempelkode for Adafruit 9-DOF-sensoren

Når du har alt tilkoblet og de nødvendige bibliotekene installert, kan du laste et av eksemplene for å sjekke at alt fungerer bra. Gå til Fil -> Eksempler -> Adafruit ICM20X og velg testen som er kompatibel med sensoren din.

Dette eksemplet vil skrive ut verdier som temperatur, samt verdiene på aksene X, Y og Z av gyroskopet, akselerometeret og magnetometeret. Du kan sjekke resultatet på den serielle monitoren satt til 115200 baud.

Grunnleggende eksempel for målinger med ICM20948

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

Koden gitt i bibliotekeksemplene vil tillate deg å hente hendelsene fra de forskjellige sensorene. For mer avanserte prosjekter kan du imidlertid endre innstillingene for følsomhetsområde for både akselerometeret og gyroskopet i henhold til dine behov.

Hvordan rotasjonsrapporter fungerer på BNO085-sensoren

Hvis du i tillegg til ICM20948-sensorene bruker en 9-DOF-sensor som BNO085, dette lar deg generere rotasjonsrapporter, viktig for å få mer detaljerte data om orientering i komplekse bevegelser.

En viktig detalj som du bør huske på er at denne sensoren krever en mikrokontroller med større minnekapasitet, slik som SAMD21, SAMD51 eller nRF52. Bruk av mer grunnleggende Arduino-kort som Uno eller Leonardo anbefales ikke, siden de ikke har nok RAM.

I tillegg bruker BNO085 en spesiell I2C-implementering som ikke støttes av alle systemer. For eksempel fungerer ikke denne sensoren korrekt med brikker som f.eks ESP32 eller med I2C multipleksere. Imidlertid er driften ganske pålitelig på plattformer som f.eks RP2040, STM32F4 eller SAMD51.

Design og funksjoner til LSM9DS1 breakout

LSM9DS9 1-DOF-sensoren er ideell for å spore orientering og bevegelse med en rimeligere pris sammenlignet med andre lignende sensorer. Den integrerer flere måleområder som lar deg justere nivået av presisjon som kreves for prosjektet ditt.

Denne sensoren har en I2C-grensesnitt y SPI, noe som gjør den allsidig for forskjellige utviklingsplattformer. Du kan enkelt koble den til en Arduino, gi spenning mellom 3 og 5V og koble I2C-pinnene på SCL y SDA.

Forskjeller med LSM9DS0

En av hovedforskjellene ligger i akselerometerområder, som i LSM9DS1 er ±2, ±4, ±8 og ±16 g, mens andre sensorer som LSM9DS0 inkluderer et ekstra område på ±6g.

Hva kan du gjøre med en Adafruit 9-DOF-sensor?

Denne typen sensorer er ideelle for utvikling av prosjekter som f.eks autonome roboter, navigasjonssystemer og gest-baserte enheter. Med akselerasjons-, rotasjons- og orienteringsinformasjonen den gir, kan du bygge en enhet som sporer komplekse bevegelser nøyaktig.


Legg til som foretrukket kilde