Obsah:

Rozhranie 3-osového gyroskopického senzora BMG160 s časticou: 5 krokov
Rozhranie 3-osového gyroskopického senzora BMG160 s časticou: 5 krokov

Video: Rozhranie 3-osového gyroskopického senzora BMG160 s časticou: 5 krokov

Video: Rozhranie 3-osového gyroskopického senzora BMG160 s časticou: 5 krokov
Video: Rozhranie #3 - Pospíš & Sillay, Nany Hudák, Veronika Kostková a Veronika Jarábková, FI 2024, Júl
Anonim
Image
Image

V dnešnom svete viac ako polovica mládeže a detí miluje hry a všetci, ktorí ju majú radi, fascinovaní technickými aspektmi hrania, poznajú dôležitosť snímania pohybu v tejto oblasti. Boli sme tiež ohromení rovnakou vecou a len aby sme to uviedli na dosky, napadlo nás pracovať na gyroskopickom senzore, ktorý dokáže merať uhlovú rýchlosť akéhokoľvek objektu. Senzor, ktorý sme použili pri riešení tejto úlohy, je BMG160. BMG160 je 16-bitový, digitálny, trojosový, gyroskopický senzor, ktorý dokáže merať uhlovú rýchlosť v troch kolmých rozmeroch miestnosti.

V tomto tutoriáli ukážeme, ako funguje BMG160 s časticovým fotónom.

Hardvér, ktorý budete na tento účel potrebovať, je nasledujúci:

1. BMG160

2. Fotón častíc

3. Kábel I2C

4. I2C štít pre fotón častíc

Krok 1: Prehľad BMG160:

Čo potrebuješ..!!
Čo potrebuješ..!!

V prvom rade by sme vás chceli zoznámiť so základnými funkciami senzorového modulu BMG160 a komunikačným protokolom, na ktorom funguje.

BMG160 je v zásade 16-bitový, digitálny, trojosový, gyroskopický snímač, ktorý dokáže merať uhlové rýchlosti. Je schopný vypočítať uhlové rýchlosti v troch kolmých rozmeroch miestnosti, osi x, y a z, a poskytovať zodpovedajúce výstupné signály. S komunikačnou doskou Raspberry Pi môže komunikovať pomocou komunikačného protokolu I2C. Tento konkrétny modul je navrhnutý tak, aby spĺňal požiadavky na spotrebiteľské aplikácie aj na priemyselné účely.

Komunikačný protokol, na ktorom senzor funguje, je I2C. I2C znamená interintegrovaný obvod. Ide o komunikačný protokol, v ktorom komunikácia prebieha prostredníctvom liniek SDA (sériové údaje) a SCL (sériové hodiny). Umožňuje pripojenie viacerých zariadení súčasne. Je to jeden z najjednoduchších a najefektívnejších komunikačných protokolov.

Krok 2: Čo potrebujete.. !

Čo potrebuješ..!!
Čo potrebuješ..!!
Čo potrebuješ..!!
Čo potrebuješ..!!
Čo potrebuješ..!!
Čo potrebuješ..!!

Materiály, ktoré potrebujeme na dosiahnutie nášho cieľa, obsahujú nasledujúce hardvérové komponenty:

1. BMG160

2. Fotón častíc

3. Kábel I2C

4. I2C štít pre fotón častíc

Krok 3: Pripojenie hardvéru:

Pripojenie hardvéru
Pripojenie hardvéru
Pripojenie hardvéru
Pripojenie hardvéru

Časť zapojenia hardvéru v zásade vysvetľuje zapojenie potrebné medzi senzorom a časticou. Zabezpečenie správneho pripojenia je základnou potrebou pri práci na akomkoľvek systéme s požadovaným výstupom. Potrebné spojenia sú teda tieto:

BMG160 bude fungovať cez I2C. Tu je príklad schémy zapojenia, ktorá ukazuje, ako prepojiť každé rozhranie snímača.

Hneď po vybalení je doska nakonfigurovaná na rozhranie I2C, preto vám toto pripojenie odporúčame použiť, ak ste inak agnostik.

Všetko, čo potrebujete, sú štyri drôty! Vyžadujú sa iba štyri pripojenia Vcc, Gnd, SCL a SDA piny, ktoré sú prepojené pomocou kábla I2C.

Tieto spojenia sú znázornené na obrázkoch vyššie.

Krok 4: Časticový kód merania gyroskopu s 3 osami:

Časticový kód merania 3-osového gyroskopu
Časticový kód merania 3-osového gyroskopu
Časticový merací systém 3-osového gyroskopu
Časticový merací systém 3-osového gyroskopu

Začnime teraz s časticovým kódom.

Pri použití senzorového modulu s arduino zahrnujeme knižnicu application.h a spark_wiring_i2c.h. Knižnica "application.h" a spark_wiring_i2c.h obsahuje funkcie, ktoré uľahčujú i2c komunikáciu medzi senzorom a časticou.

Celý kód častíc je pre pohodlie užívateľa uvedený nižšie:

#zahrnúť

#zahrnúť

// Adresa BMG160 I2C je 0x68 (104)

#define Addr 0x68

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

neplatné nastavenie ()

{

// Nastavenie premennej

Premenná častica ("i2cdevice", "BMG160");

Častica.proměnná ("xGyro", xGyro);

Častica.proměnná ("yGyro", yGyro);

Častica.proměnná ("zGyro", zGyro);

// Inicializujte komunikáciu I2C ako MASTER

Wire.begin ();

// Inicializácia sériovej komunikácie

Serial.begin (9600);

// Spustite prenos I2C

Wire.beginTransmission (Addr);

// Vyberte Register rozsahu

Wire.write (0x0F);

// Konfigurácia v plnom rozsahu 2 000 dps

Wire.write (0x80);

// Zastavte prenos I2C

Wire.endTransmission ();

// Spustite prenos I2C

Wire.beginTransmission (Addr);

// Vyberte register šírky pásma

Wire.write (0x10);

// Nastaviť šírku pásma = 200 Hz

Wire.write (0x04);

// Zastavte prenos I2C

Wire.endTransmission ();

oneskorenie (300);

}

prázdna slučka ()

{

nepodpísané int údaje [6];

// Spustite prenos I2C

Wire.beginTransmission (Addr);

// Vyberte dátový register

Wire.write (0x02);

// Zastavte prenos I2C

Wire.endTransmission ();

// Požiadajte o 6 bajtov údajov

Wire.requestFrom (Addr, 6);

// Prečítajte 6 bajtov údajov

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

ak (Wire.available () == 6)

{

data [0] = Wire.read ();

údaje [1] = Wire.read ();

údaje [2] = Wire.read ();

údaje [3] = Wire.read ();

údaje [4] = Wire.read ();

údaje [5] = Wire.read ();

}

oneskorenie (300);

// Previesť údaje

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

ak (xGyro> 32767)

{

xGyro -= 65536;

}

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

ak (yGyro> 32767)

{

yGyro -= 65536;

}

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

ak (zGyro> 32767)

{

zGyro -= 65536;

}

// Výstup údajov na informačný panel

Particle.publish ("Osa X rotácie:", reťazec (xGyro));

Particle.publish („Os otáčania Y:“, reťazec (yGyro));

Particle.publish ("Osa Z rotácie:", reťazec (zGyro));

oneskorenie (1000);

}

Krok 5: Aplikácie:

Aplikácie
Aplikácie

BMG160 má rôzny počet aplikácií v zariadeniach, ako sú mobilné telefóny, zariadenia s rozhraním človek -stroj. Tento senzorový modul bol navrhnutý tak, aby spĺňal požiadavky na spotrebiteľské aplikácie, ako je stabilizácia obrazu (DSC a telefón s fotoaparátom), herné a ukazovacie zariadenia. Používa sa tiež v systémoch, ktoré vyžadujú rozpoznávanie gest a v systémoch používaných vo vnútornej navigácii.

Odporúča: