Als u een sensor met 9 vrijheidsgraden (9-DOF) in uw Arduino-projecten wilt integreren, bent u bij ons aan het juiste adres. Deze apparaten zijn uiterst nuttig voor het meten van oriëntatie, versnelling en rotatie in de driedimensionale ruimte. In dit artikel gaan we grondig onderzoeken hoe je de Adafruit 9-DOF, de verbindingen en configuratie met Arduino kunt gebruiken.
9-DOF-sensoren combineren drie verschillende soorten sensoren: versnellingsmeters, magnetometers en gyroscopen. Dit maakt ze tot essentiële hulpmiddelen voor het nauwkeurig volgen van oriëntaties en bewegingen. Met deze instructies kunt u uw Adafruit 9-DOF-sensor snel en efficiënt met Arduino gaan gebruiken.
Wat is een sensor met 9 vrijheidsgraden (9-DOF)?
De 9-DOF-sensor heeft drie sensoren in één: a accelerometereen magnetometer en een gyroscoop. De versnellingsmeter meet de versnelling in drie assen, waardoor hij de oriëntatie ten opzichte van de zwaartekracht kan detecteren. De magnetometer detecteert het magnetische veld en is nuttig om de richting van het magnetische noorden te bepalen. Ten slotte meet de gyroscoop de hoekrotatie.
Deze drie sensoren vormen samen een driedimensionale perceptie van beweging en oriëntatie, waardoor het ideaal is voor toepassingen zoals robotica, drones of draagbare apparaten.
9-DOF-sensor verbinden met Arduino
Zodra je de sensor hebt, is de volgende stap het aansluiten op je Arduino-bord. Als u van plan bent gebruik te maken van de I2C-interface, wat het meest voorkomt, heeft de Adafruit 9-DOF-sensor een standaard I2C-adres van 0x69. U kunt dit echter ook wijzigen in 0x68 door de adrespin op GND aan te sluiten.
Verbinding via I2C
Het verbindingsproces is eenvoudig. Met gebruik van een STEMMA QT-connector of een soldeerloze broodplank, je hoeft alleen maar de stroom- en datapinnen op elkaar af te stemmen. Als u een STEMMA-connector gebruikt, hoeft u deze alleen op de I2C-pinnen (SCL en SDA) aan te sluiten.
Gebruik een 9-DOF-sensor met SPI
Als u liever de SPI-interface gebruikt, moet u de CS-, SCK-, MOSI- en MISO-pinnen voor de verbinding inschakelen en de instellingen in de code opgeven.
Installeer de benodigde bibliotheken op Arduino
Om uw Adafruit-sensor goed te laten werken met Arduino, moet u verschillende bibliotheken installeren. Het eerste dat je nodig hebt is de Adafruit ICM20X-bibliotheek, die compatibel is met ICM20948- en ICM20649-sensoren. Om het te installeren, opent u het Bibliotheek Manager in de Arduino IDE en zoek naar “Adafruit ICM20X”.
Daarnaast moet u ook de Adafruit BusIO-bibliotheek en Adafruit uniforme sensorbibliotheek.
Voorbeeldcode voor de Adafruit 9-DOF-sensor
Zodra je alles hebt aangesloten en de benodigde bibliotheken hebt geïnstalleerd, kun je een van de voorbeelden laden om te controleren of alles goed werkt. Ga naar Bestand -> Voorbeelden -> Adafruit ICM20X en selecteer de test die compatibel is met uw sensor.
In dit voorbeeld worden waarden afgedrukt zoals temperatuur, evenals de waarden op de assen X, Y en Z van de gyroscoop, de versnellingsmeter en de magnetometer. U kunt het resultaat controleren op de seriële monitor die is ingesteld op 115200 baud.
Basisvoorbeeld voor metingen met de ICM20948
#include <Adafruit_ICM20X.h>#include <Adafruit_ICM20948.h>#include <Adafruit_Sensor.h>#include <Wire.h>
Met de code in de bibliotheekvoorbeelden kunt u de gebeurtenissen van de verschillende sensoren verkrijgen. Voor meer geavanceerde projecten kunt u echter de instellingen voor het gevoeligheidsbereik van zowel de versnellingsmeter als de gyroscoop aanpassen aan uw behoeften.
Hoe rotatierapporten werken op de BNO085 sensor
Als u naast de ICM20948-sensoren een 9-DOF-sensor gebruikt zoals de BNO085, hiermee kunt u genereren rotatierapporten, belangrijk voor het verkrijgen van meer gedetailleerde gegevens over oriëntatie bij complexe bewegingen.
Een belangrijk detail waar je rekening mee moet houden is dat deze sensor een microcontroller nodig heeft grotere geheugencapaciteit, zoals SAMD21, SAMD51 of nRF52. Het gebruik van meer eenvoudige Arduino-borden zoals de Uno of Leonardo wordt niet aanbevolen, omdat deze niet genoeg RAM hebben.
Daarnaast maakt de BNO085 gebruik van een speciale I2C-implementatie die niet door alle systemen wordt ondersteund. Deze sensor werkt bijvoorbeeld niet correct met chips zoals ESP32 of met I2C-multiplexers. De werking ervan is echter redelijk betrouwbaar op platforms zoals RP2040, STM32F4 of SAMD51.
Ontwerp en kenmerken van de LSM9DS1 breakout
De LSM9DS9 1-DOF-sensor is ideaal voor het volgen van oriëntatie en beweging met een meer betaalbare prijs in vergelijking met andere vergelijkbare sensoren. Het integreert verschillende meetbereiken waarmee u het vereiste nauwkeurigheidsniveau voor uw project kunt aanpassen.
Deze sensor heeft een I2C-interface y SPI, waardoor het veelzijdig is voor verschillende ontwikkelingsplatforms. Je kunt hem eenvoudig aansluiten op een Arduino, waarbij hij een spanning levert tussen 3 en 5V en de I2C-pinnen aansluit SCL y SDA.
Verschillen met de LSM9DS0
Een van de belangrijkste verschillen ligt in de versnellingsmeterbereiken, die bij de LSM9DS1 ±2, ±4, ±8 en ±16 g bedragen, terwijl andere sensoren zoals de LSM9DS0 een extra bereik van ±6 g hebben.
Wat kun je doen met een Adafruit 9-DOF-sensor?
Dit type sensoren is ideaal voor het ontwikkelen van projecten zoals autonome robots, navigatiesystemen en op gebaren gebaseerde apparaten. Met de versnellings-, rotatie- en oriëntatie-informatie die het biedt, kunt u een apparaat bouwen dat complexe bewegingen nauwkeurig volgt.