Obsah:

Rozhraní 3osého gyroskopického senzoru BMG160 s Arduino Nano: 5 kroků
Rozhraní 3osého gyroskopického senzoru BMG160 s Arduino Nano: 5 kroků

Video: Rozhraní 3osého gyroskopického senzoru BMG160 s Arduino Nano: 5 kroků

Video: Rozhraní 3osého gyroskopického senzoru BMG160 s Arduino Nano: 5 kroků
Video: e-Learning kurz Fusion 360 - programování 3osých frézovacích center (CAM) 2024, Listopad
Anonim
Image
Image

V dnešním světě více než polovina mládeže a dětí má ráda hry a všichni, kteří ji mají rádi, fascinováni technickými aspekty hraní her vědí, jak důležité je v této oblasti snímání pohybu. Byli jsme také ohromeni stejnou věcí a jen aby to bylo na deskách, napadlo nás pracovat na gyroskopickém senzoru, který dokáže měřit úhlovou rychlost jakéhokoli objektu. Senzorem, který jsme vzali k řešení tohoto úkolu, je BMG160. BMG160 je 16bitový, digitální, triaxiální gyroskopický senzor, který dokáže měřit úhlovou rychlost ve třech kolmých rozměrech místnosti.

V tomto tutoriálu předvedeme fungování BMG160 s Arduino Nano.

Hardware, který budete pro tento účel potřebovat, je následující:

1. BMG160

2. Arduino Nano

3. Kabel I2C

4. I2C štít pro Arduino Nano

Krok 1: Přehled BMG160:

Co potřebuješ..!!
Co potřebuješ..!!

Nejprve bychom vás chtěli seznámit se základními funkcemi senzorového modulu BMG160 a komunikačním protokolem, na kterém funguje.

BMG160 je v podstatě 16bitový, digitální, triaxiální gyroskopický senzor, který dokáže měřit úhlové rychlosti. Je schopen vypočítat úhlové rychlosti ve třech kolmých rozměrech místnosti, osách x, y a z, a poskytovat odpovídající výstupní signály. Může komunikovat s deskou Raspberry Pi pomocí komunikačního protokolu I2C. Tento konkrétní modul je navržen tak, aby splňoval požadavky na spotřebitelské aplikace i průmyslové účely.

Komunikační protokol, na kterém senzor funguje, je I2C. I2C je zkratka pro interintegrovaný obvod. Jedná se o komunikační protokol, ve kterém probíhá komunikace prostřednictvím linek SDA (sériová data) a SCL (sériové hodiny). Umožňuje připojení více zařízení současně. Je to jeden z nejjednodušších a nejefektivnějších komunikačních protokolů.

Krok 2: Co potřebujete..

Co potřebuješ..!!
Co potřebuješ..!!
Co potřebuješ..!!
Co potřebuješ..!!
Co potřebuješ..!!
Co potřebuješ..!!

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

1. BMG160

2. Arduino Nano

3. Kabel I2C

4. I2C štít pro Arduino Nano

Krok 3: 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 Arduinem. 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í:

BMG160 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 4: Měření 3osého gyroskopu Arduino Kód:

Měření 3osého gyroskopu Arduino Kód
Měření 3osého gyroskopu Arduino Kód
Měření 3osého gyroskopu Arduino Kód
Měření 3osého gyroskopu Arduino Kód

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:

#include // Adresa BMG160 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 rozsahu

Wire.write (0x0F);

// Konfigurace plného rozsahu rozsahu 2000 dps

Wire.write (0x80);

// Zastavte přenos I2C

Wire.endTransmission ();

// Spusťte přenos I2C

Wire.beginTransmission (Addr);

// Vyberte registr šířky pásma

Wire.write (0x10);

// Nastavit šířku pásma = 200 Hz

Wire.write (0x04);

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

Wire.write (0x02);

// Zastavte přenos I2C

Wire.endTransmission ();

// Vyžádejte si 6 bajtů dat

Wire.requestFrom (Addr, 6);

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

// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb

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

}

zpoždění (300);

// Převod dat

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

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

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

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

Serial.print ("Osa otáčení X:");

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

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

Serial.println (zGyro);

zpoždění (500);

}

Krok 5: Aplikace:

Aplikace
Aplikace

BMG160 má různorodý počet aplikací v zařízeních, jako jsou mobilní telefony, zařízení rozhraní člověk -stroj. Tento senzorový modul byl navržen tak, aby splňoval požadavky spotřebitelských aplikací, jako je stabilizace obrazu (DSC a fotoaparát-telefon), herní a polohovací zařízení. Používá se také v systémech, které vyžadují rozpoznávání gest, a v systémech používaných ve vnitřní navigaci.

Doporučuje: