Obsah:

Sledování pohybu pomocí MPU-6000 a Arduino Nano: 4 kroky
Sledování pohybu pomocí MPU-6000 a Arduino Nano: 4 kroky

Video: Sledování pohybu pomocí MPU-6000 a Arduino Nano: 4 kroky

Video: Sledování pohybu pomocí MPU-6000 a Arduino Nano: 4 kroky
Video: TOP 4 LIDÉ Z BUDOUCNOSTI, KTEŘÍ NÁS PŘIŠLI VAROVAT 2024, Listopad
Anonim
Image
Image

MPU-6000 je 6osý snímač sledování pohybu, který má zabudovaný 3osý akcelerometr a 3osý gyroskop. Tento senzor je schopen efektivně sledovat přesnou polohu a umístění objektu v trojrozměrné rovině. Může být použit v systémech, které vyžadují analýzu polohy s nejvyšší přesností.

V tomto tutoriálu bylo ukázáno propojení senzorového modulu MPU-6000 s arduino nano. Ke čtení hodnot zrychlení a úhlu rotace jsme použili arduino nano s adaptérem I2c. Tento adaptér I2C umožňuje snadné a spolehlivější připojení k modulu senzoru.

Krok 1: Požadovaný hardware:

Požadovaný hardware
Požadovaný hardware
Požadovaný hardware
Požadovaný hardware
Požadovaný hardware
Požadovaný hardware

Materiály, které potřebujeme k dosažení našeho cíle, zahrnují následující hardwarové komponenty:

1. MPU-6000

2. Arduino Nano

3. Kabel I2C

4. I2C štít pro arduino nano

Krok 2: Připojení hardwaru:

Připojení hardwaru
Připojení hardwaru
Připojení hardwaru
Připojení hardwaru

Sekce zapojení hardwaru v zásadě vysvětluje zapojení kabelů požadovaná mezi senzorem a arduino nano. Zajištění správného připojení je základní nutností při práci na jakémkoli systému pro požadovaný výstup. Požadovaná připojení jsou tedy následující:

MPU-6000 bude fungovat přes I2C. Zde je příklad schématu zapojení, které ukazuje, jak zapojit jednotlivá rozhraní senzoru.

Po vybalení je deska nakonfigurována pro rozhraní I2C, proto doporučujeme tuto přípojku použít, pokud jste jinak agnostik.

Vše, co potřebujete, jsou čtyři dráty! Jsou vyžadována pouze čtyři připojení Vcc, Gnd, SCL a SDA piny a ty jsou spojeny pomocí kabelu I2C.

Tato spojení jsou ukázána na obrázcích výše.

Krok 3: Kód pro sledování pohybu:

Kód pro sledování pohybu
Kód pro sledování pohybu

Začněme nyní arduino kódem.

Při používání senzorového modulu s arduino jsme zahrnuli knihovnu Wire.h. Knihovna „Wire“obsahuje funkce, které usnadňují komunikaci i2c mezi senzorem a deskou arduino.

Celý arduino kód je pro pohodlí uživatele uveden níže:

#zahrnout

// Adresa MPU-6000 I2C je 0x68 (104)

#define Addr 0x68

neplatné nastavení ()

{

// Inicializujte komunikaci I2C jako Master

Wire.begin ();

// Inicializace sériové komunikace, nastavení přenosové rychlosti = 9600

Serial.begin (9600);

// Spusťte přenos I2C

Wire.beginTransmission (Addr);

// Vyberte registr konfigurace gyroskopu

Wire.write (0x1B);

// Plný rozsah stupnice = 2000 dps

Wire.write (0x18);

// Zastavte přenos I2C

Wire.endTransmission ();

// Spusťte přenos I2C

Wire.beginTransmission (Addr);

// Vyberte registr konfigurace akcelerometru

Wire.write (0x1C);

// Celý rozsah stupnice = +/- 16 g

Wire.write (0x18);

// Zastavte přenos I2C

Wire.endTransmission ();

// Spusťte přenos I2C

Wire.beginTransmission (Addr);

// Vyberte registr správy napájení

Wire.write (0x6B);

// PLL s referencí xGyro

Wire.write (0x01);

// Zastavte přenos I2C

Wire.endTransmission ();

zpoždění (300);

}

prázdná smyčka ()

{

nepodepsaná int data [6];

// Spusťte přenos I2C

Wire.beginTransmission (Addr);

// Vyberte datový registr

Wire.write (0x3B);

// Zastavte přenos I2C

Wire.endTransmission ();

// Vyžádejte si 6 bajtů dat

Wire.requestFrom (Addr, 6);

// Přečíst 6 bajtů dat

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

}

// Převod dat

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

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

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

// Spusťte přenos I2C

Wire.beginTransmission (Addr);

// Vyberte datový registr

Wire.write (0x43);

// Zastavte přenos I2C

Wire.endTransmission ();

// Vyžádejte si 6 bajtů dat

Wire.requestFrom (Addr, 6);

// Přečíst 6 bajtů dat

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

}

// Převod dat

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

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

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

// Výstup dat na sériový monitor

Serial.print ("Zrychlení v ose X:");

Serial.println (xAccl);

Serial.print ("Zrychlení v ose Y:");

Serial.println (yAccl);

Serial.print ("Zrychlení v ose Z:");

Serial.println (zAccl);

Serial.print ("Osa rotace X:");

Serial.println (xGyro);

Serial.print ("Osa Y rotace:");

Serial.println (yGyro);

Serial.print ("Osa Z rotace:");

Serial.println (zGyro);

zpoždění (500);

}

V drátové knihovně Wire.write () a Wire.read () slouží k zápisu příkazů a čtení výstupu senzoru.

Serial.print () a Serial.println () se používá k zobrazení výstupu senzoru na sériovém monitoru Arduino IDE.

Výstup snímače je zobrazen na obrázku výše.

Krok 4: Aplikace:

Aplikace
Aplikace

MPU-6000 je senzor pro sledování pohybu, který nachází své uplatnění v pohybovém rozhraní chytrých telefonů a tabletů. V chytrých telefonech lze tyto senzory použít v aplikacích, jako jsou příkazy gest pro aplikace a ovládání telefonu, vylepšené hraní her, rozšířená realita, panoramatické snímání a prohlížení fotografií a navigace chodců a vozidel. Technologie MotionTracking dokáže převést sluchátka a tablety na výkonná 3D inteligentní zařízení, která lze použít v aplikacích od monitorování zdraví a kondice až po služby založené na poloze.

Doporučuje: