Indholdsfortegnelse:

Bevægelsessporing ved hjælp af MPU-6000 og Arduino Nano: 4 trin
Bevægelsessporing ved hjælp af MPU-6000 og Arduino Nano: 4 trin

Video: Bevægelsessporing ved hjælp af MPU-6000 og Arduino Nano: 4 trin

Video: Bevægelsessporing ved hjælp af MPU-6000 og Arduino Nano: 4 trin
Video: Brilliant Smart Home Control Installation | Trin-for-trin guide! 2024, November
Anonim
Image
Image

MPU-6000 er en 6-akset bevægelsessporingssensor, der har 3-akset accelerometer og 3-akset gyroskop indlejret i det. Denne sensor er i stand til effektivt at spore den nøjagtige position og placering af et objekt i det tredimensionelle plan. Det kan bruges i de systemer, der kræver positionsanalyse til den højeste præcision.

I denne vejledning er grænsefladen mellem MPU-6000 sensormodulet og arduino nano illustreret. For at læse værdierne for acceleration og rotationsvinkel har vi brugt arduino nano med en I2c -adapter. Denne I2C -adapter gør forbindelsen til sensormodulet let og mere pålidelig.

Trin 1: Påkrævet hardware:

Hardware påkrævet
Hardware påkrævet
Hardware påkrævet
Hardware påkrævet
Hardware påkrævet
Hardware påkrævet

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

1. MPU-6000

2. Arduino Nano

3. I2C -kabel

4. I2C Shield til arduino nano

Trin 2: Hardware -tilslutning:

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

Hardwaretilslutningssektionen forklarer dybest set de nødvendige ledningsforbindelser mellem sensoren og arduino nano. 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:

MPU-6000 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 3: Kode til bevægelsessporing:

Kode til bevægelsessporing
Kode til bevægelsessporing

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:

#omfatte

// MPU-6000 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 konfigurationsregister for gyroskop

Wire.write (0x1B);

// Fuld skala = 2000 dps

Wire.write (0x18);

// Stop I2C -transmission

Wire.endTransmission ();

// Start I2C -transmission

Wire.beginTransmission (Addr);

// Vælg accelerometer -konfigurationsregister

Wire.write (0x1C);

// Fuld skala område = +/- 16g

Wire.write (0x18);

// Stop I2C -transmission

Wire.endTransmission ();

// Start I2C -transmission

Wire.beginTransmission (Addr);

// Vælg strømstyringsregister

Wire.write (0x6B);

// PLL med xGyro -reference

Wire.write (0x01);

// Stop I2C -transmission

Wire.endTransmission ();

forsinkelse (300);

}

hulrum ()

{

usignerede int -data [6];

// Start I2C -transmission

Wire.beginTransmission (Addr);

// Vælg dataregister

Wire.write (0x3B);

// Stop I2C -transmission

Wire.endTransmission ();

// Anmod om 6 bytes data

Wire.requestFrom (Addr, 6);

// Læs 6 byte data

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 ();

}

// Konverter dataene

int xAccl = data [0] * 256 + data [1];

int yAccl = data [2] * 256 + data [3];

int zAccl = data [4] * 256 + data [5];

// Start I2C -transmission

Wire.beginTransmission (Addr);

// Vælg dataregister

Wire.write (0x43);

// Stop I2C -transmission

Wire.endTransmission ();

// Anmod om 6 bytes data

Wire.requestFrom (Addr, 6);

// Læs 6 byte data

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 ();

}

// Konverter dataene

int xGyro = data [0] * 256 + data [1];

int yGyro = data [2] * 256 + data [3];

int zGyro = data [4] * 256 + data [5];

// Output data til seriel skærm

Serial.print ("Acceleration i X-akse:");

Serial.println (xAccl);

Serial.print ("Acceleration i Y-akse:");

Serial.println (yAccl);

Serial.print ("Acceleration i Z-akse:");

Serial.println (zAccl);

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

}

I trådbiblioteket bruges Wire.write () og Wire.read () til at skrive kommandoer og læse sensoroutput.

Serial.print () og Serial.println () bruges til at vise sensorens output på den serielle monitor på Arduino IDE.

Sensorens output er vist på billedet ovenfor.

Trin 4: Ansøgninger:

Ansøgninger
Ansøgninger

MPU-6000 er en bevægelsessporingssensor, som finder sin anvendelse i bevægelsesgrænsefladen på smartphones og tablets. I smartphones kan disse sensorer bruges i applikationer såsom gestuskommandoer til applikationer og telefonkontrol, forbedret spil, augmented reality, panoramafotografering og visning samt fodgænger- og køretøjsnavigation. MotionTracking-teknologi kan konvertere håndsæt og tablets til kraftfulde 3D intelligente enheder, der kan bruges i applikationer lige fra sundheds- og fitnessovervågning til lokationsbaserede tjenester.

Anbefalede: