Indholdsfortegnelse:
- Trin 1: BMG160 Oversigt:
- Trin 2: Hvad du har brug for..
- Trin 3: Hardware -tilslutning:
- Trin 4: 3-akset gyroskopmåling Arduino-kode:
- Trin 5: Ansøgninger:
Video: Interfacing af 3-akset gyroskopsensor BMG160 med Arduino Nano: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
I dagens verden er mere end halvdelen af de unge og børn glad for spil, og alle dem, der er vilde med det, fascineret af de tekniske aspekter ved spil, kender vigtigheden af bevægelsesføling på dette område. Vi var også overrasket over det samme, og bare for at bringe det på tavlerne tænkte vi på at arbejde på en gyroskopsensor, som kan måle vinkelfrekvensen for ethvert objekt. Så den sensor, vi tog op for at håndtere opgaven, er BMG160. BMG160 er en 16-bit, digital, triaksial, gyroskopsensor, der kan måle vinkelfrekvensen i tre vinkelrette rumdimensioner.
I denne vejledning vil vi demonstrere, hvordan BMG160 fungerer med Arduino Nano.
Hardware, som du får brug for til dette formål, er som følger:
1. BMG160
2. Arduino Nano
3. I2C -kabel
4. I2C -skjold til Arduino Nano
Trin 1: BMG160 Oversigt:
Først og fremmest vil vi gerne gøre dig bekendt med de grundlæggende funktioner i sensormodulet, der er BMG160, og kommunikationsprotokollen, som det fungerer på.
BMG160 er dybest set en 16-bit, digital, triaksial, gyroskopsensor, der kan måle vinkelhastigheder. Den er i stand til at beregne vinkelhastigheder i tre vinkelrette rumdimensioner, x-, y- og z-aksen og levere de tilsvarende udgangssignaler. Det kan kommunikere med hindbær pi -kortet ved hjælp af I2C -kommunikationsprotokollen. Dette særlige modul er designet til at opfylde krav til forbrugerapplikationer såvel som industrielle formål.
Kommunikationsprotokollen, som sensoren fungerer på, er I2C. I2C står for det interintegrerede kredsløb. Det er en kommunikationsprotokol, hvor kommunikationen finder sted gennem SDA (serielle data) og SCL (serielle ur) linjer. Det tillader tilslutning af flere enheder på samme tid. Det er en af de enkleste og mest effektive kommunikationsprotokoller.
Trin 2: Hvad du har brug for..
De materialer, vi har brug for for at nå vores mål, omfatter følgende hardwarekomponenter:
1. BMG160
2. Arduino Nano
3. I2C -kabel
4. I2C Shield til Arduino Nano
Trin 3: Hardware -tilslutning:
Hardwaretilslutningssektionen forklarer grundlæggende de ledningsforbindelser, der kræves mellem sensoren og Arduino. At sikre korrekte forbindelser er den grundlæggende nødvendighed, mens du arbejder på et hvilket som helst system til den ønskede output. Så de nødvendige forbindelser er som følger:
BMG160 fungerer over I2C. Her er eksemplet på ledningsdiagram, der viser, hvordan du tilslutter hver grænseflade på sensoren.
Out-of-the-box er tavlen konfigureret til en I2C-grænseflade, som sådan anbefaler vi at bruge denne tilslutning, hvis du ellers er agnostiker.
Alt du behøver er fire ledninger! Der kræves kun fire tilslutninger Vcc, Gnd, SCL og SDA ben, og disse er forbundet ved hjælp af I2C kabel.
Disse forbindelser er vist på billederne ovenfor.
Trin 4: 3-akset gyroskopmåling Arduino-kode:
Lad os starte med arduino -koden nu.
Mens vi bruger sensormodulet med arduino, inkluderer vi Wire.h -bibliotek. "Wire" -biblioteket indeholder de funktioner, der letter i2c -kommunikationen mellem sensoren og arduino -kortet.
Hele arduino -koden er angivet nedenfor for brugerens bekvemmelighed:
#include // BMG160 I2C -adressen er 0x68 (104)
#define Addr 0x68
ugyldig opsætning ()
{
// Initialiser I2C -kommunikation som MASTER
Wire.begin ();
// Initialiser seriel kommunikation, indstil baudhastighed = 9600
Serial.begin (9600);
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Vælg Range register
Wire.write (0x0F);
// Konfigurer fuld skala 2000 dps
Wire.write (0x80);
// Stop I2C -transmission
Wire.endTransmission ();
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Vælg båndbredderegister
Wire.write (0x10);
// Indstil båndbredde = 200 Hz
Wire.write (0x04);
// Stop I2C -transmission
Wire.endTransmission ();
forsinkelse (300);
}
hulrum ()
{
usignerede int -data [6];
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Vælg Gyrometer dataregister
Wire.write (0x02);
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 6 bytes data
Wire.requestFrom (Addr, 6);
// Læs 6 bytes data
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb
hvis (Wire.available () == 6)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
data [2] = Wire.read ();
data [3] = Wire.read ();
data [4] = Wire.read ();
data [5] = Wire.read ();
}
forsinkelse (300);
// Konverter dataene
int xGyro = ((data [1] * 256) + data [0]);
int yGyro = ((data [3] * 256) + data [2]);
int zGyro = ((data [5] * 256) + data [4]);
// Output data til den serielle skærm
Serial.print ("X-rotationsakse:");
Serial.println (xGyro); Serial.print ("Y-aksen for rotation:");
Serial.println (yGyro); Serial.print ("Z-aksen for rotation:");
Serial.println (zGyro);
forsinkelse (500);
}
Trin 5: Ansøgninger:
BMG160 har et varieret antal applikationer på enheder som mobiltelefoner, grænsefladeenheder til mennesker. Dette sensormodul er designet til at opfylde krav til forbrugerapplikationer såsom billedstabilisering (DSC og kameratelefon), spil og pegeudstyr. Det bruges også i systemer, der kræver gestusgenkendelse og de systemer, der bruges til indendørs navigation.
Anbefalede:
Interfacing kapacitiv fingeraftrykssensor med Arduino UNO: 7 trin
Interfacing kapacitiv fingeraftrykssensor med Arduino UNO: Hey, hvad sker der, fyre! Akarsh her fra CETech. I dag vil vi tilføje et beskyttende lag til vores projekter. Bare rolig, vi kommer ikke til at udpege nogen livvagter til det samme. Det bliver en sød lille flot fingeraftrykssensor fra DFRobot.Så
Interfacing Ultrasonic Ranging Module HC-SR04 Med Arduino: 5 trin
Interfacing Ultrasonic Ranging Module HC-SR04 With Arduino: Hey, hvad sker der, fyre! Akarsh her fra CETech. Dette projekt af mig er lidt på den enklere side, men lige så sjovt som de andre projekter. I dette projekt skal vi interface et HC-SR04 ultralyds afstandssensormodul. Dette modul fungerer ved at generere
Arduino LCD 16x2 Tutorial - Interfacing 1602 LCD -display med Arduino Uno: 5 trin
Arduino LCD 16x2 Tutorial | Interfacing 1602 LCD -display med Arduino Uno: Hej fyre, da mange projekter har brug for en skærm for at vise dataene, uanset om det er en diy meter eller YouTube -abonnementstæller eller en lommeregner eller et tastaturlås med display, og hvis alle denne slags projekter er lavet med arduino vil de helt sikkert
Interfacing enhver Arduino med en mobiltelefon: 6 trin (med billeder)
Grænseflade for enhver Arduino med en mobiltelefon: Når du bruger en Arduino, kan det resultere ganske irriterende i ikke at kunne bruge den, bare fordi du ikke har en computer til rådighed. Måske er Windows eller Mac OS ikke kompatibelt, du har slet ingen computer, eller du vil bare have mere frihed til int
Interfacing 8051 Microcntroller Med 16*2 Lcd i Proteus Simulation: 5 trin (med billeder)
Interfacing 8051 Microcntroller Med 16*2 Lcd i Proteus Simulation: Dette er et meget grundlæggende projekt på 8051. I dette projekt vil vi fortælle dig om, hvordan vi kan interface 16*2 lcd til 8051 microcontroller. Så her bruger vi fuld 8 bit tilstand. I den næste vejledning fortæller vi også om 4 bit -tilstand