Indholdsfortegnelse:

Interfacing af 3-akset gyroskopsensor BMG160 med partikel: 5 trin
Interfacing af 3-akset gyroskopsensor BMG160 med partikel: 5 trin

Video: Interfacing af 3-akset gyroskopsensor BMG160 med partikel: 5 trin

Video: Interfacing af 3-akset gyroskopsensor BMG160 med partikel: 5 trin
Video: Leap Motion SDK 2024, November
Anonim
Image
Image

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 Particle Photon.

Hardware, som du får brug for til dette formål, er som følger:

1. BMG160

2. Partikelfoton

3. I2C -kabel

4. I2C -skærm til partikelfoton

Trin 1: BMG160 Oversigt:

Hvad du har brug for..!!
Hvad du har brug for..!!

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..

Hvad du har brug for..!!
Hvad du har brug for..!!
Hvad du har brug for..!!
Hvad du har brug for..!!
Hvad du har brug for..!!
Hvad du har brug for..!!

De materialer, vi har brug for for at nå vores mål, omfatter følgende hardwarekomponenter:

1. BMG160

2. Partikelfoton

3. I2C -kabel

4. I2C -skjold til partikelfoton

Trin 3: Hardware -tilslutning:

Hardware -tilslutning
Hardware -tilslutning
Hardware -tilslutning
Hardware -tilslutning

Hardwaretilslutningssektionen forklarer grundlæggende de ledningsforbindelser, der kræves mellem sensoren og partiklen. 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 partikelkode:

3-akset gyroskopmåling partikelkode
3-akset gyroskopmåling partikelkode
3-akset gyroskopmåling partikelkode
3-akset gyroskopmåling partikelkode

Lad os starte med partikelkoden nu.

Mens vi bruger sensormodulet med arduino, inkluderer vi application.h og spark_wiring_i2c.h bibliotek. "application.h" og spark_wiring_i2c.h biblioteket indeholder de funktioner, der letter i2c -kommunikationen mellem sensoren og partiklen.

Hele partikelkoden er angivet nedenfor for brugerens bekvemmelighed:

#omfatte

#omfatte

// BMG160 I2C -adressen er 0x68 (104)

#define Addr 0x68

int xGyro = 0, yGyro = 0, zGyro = 0;

ugyldig opsætning ()

{

// Indstil variabel

Partikel.variabel ("i2cdevice", "BMG160");

Partikel.variabel ("xGyro", xGyro);

Partikel.variabel ("yGyro", yGyro);

Partikel.variabel ("zGyro", zGyro);

// Initialiser I2C -kommunikation som MASTER

Wire.begin ();

// Initialiser seriel kommunikation

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 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

xGyro = ((data [1] * 256) + data [0]);

hvis (xGyro> 32767)

{

xGyro -= 65536;

}

yGyro = ((data [3] * 256) + data [2]);

hvis (yGyro> 32767)

{

yGyro -= 65536;

}

zGyro = ((data [5] * 256) + data [4]);

hvis (zGyro> 32767)

{

zGyro -= 65536;

}

// Output data til dashboard

Particle.publish ("X-Rotation Axis:", String (xGyro));

Particle.publish ("Y-Axis of Rotation:", String (yGyro));

Particle.publish ("Z-Axis of Rotation:", String (zGyro));

forsinkelse (1000);

}

Trin 5: Ansøgninger:

Ansøgninger
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: