Kazalo:

Vmesnik 3-osnega žiroskopskega senzorja BMG160 z delci: 5 korakov
Vmesnik 3-osnega žiroskopskega senzorja BMG160 z delci: 5 korakov

Video: Vmesnik 3-osnega žiroskopskega senzorja BMG160 z delci: 5 korakov

Video: Vmesnik 3-osnega žiroskopskega senzorja BMG160 z delci: 5 korakov
Video: Его воспоминания о вас 2024, November
Anonim
Image
Image

V današnjem svetu več kot polovica mladih in otrok obožuje igre na srečo, vsi tisti, ki jih imajo radi, navdušeni nad tehničnimi vidiki iger, pa se zavedajo pomena zaznavanja gibanja na tem področju. Tudi nas je presenetila ista stvar in samo zato, da bi jo prinesli na deske, smo pomislili, da bi delali na žiroskopskem senzorju, ki lahko meri kotno hitrost katerega koli predmeta. Torej, senzor, ki smo ga vzeli za reševanje naloge, je BMG160. BMG160 je 16-bitno, digitalno, triosno, žiroskopsko tipalo, ki lahko meri kotno hitrost v treh pravokotnih dimenzijah prostora.

V tej vadnici bomo prikazali delovanje BMG160 s fotonom delcev.

Strojna oprema, ki jo boste potrebovali v ta namen, je naslednja:

1. BMG160

2. Foton delcev

3. Kabel I2C

4. I2C ščit za fotone delcev

1. korak: Pregled BMG160:

Kaj rabiš..!!
Kaj rabiš..!!

Najprej bi vas radi seznanili z osnovnimi funkcijami senzorskega modula BMG160 in komunikacijskim protokolom, na katerem deluje.

BMG160 je v bistvu 16-bitno, digitalno, triosno, žiroskopsko tipalo, ki lahko meri kotne hitrosti. Sposoben je izračunati kotne stopnje v treh pravokotnih dimenzijah prostora, osi x-, y- in z, ter zagotoviti ustrezne izhodne signale. Lahko komunicira z malinovo pi ploščo z uporabo komunikacijskega protokola I2C. Ta poseben modul je zasnovan tako, da izpolnjuje zahteve za potrošniške aplikacije in industrijske namene.

Komunikacijski protokol, na katerem deluje senzor, je I2C. I2C pomeni vmesno vezje. To je komunikacijski protokol, v katerem komunikacija poteka prek linij SDA (serijski podatki) in SCL (serijska ura). Omogoča povezovanje več naprav hkrati. Je eden najpreprostejših in najučinkovitejših komunikacijskih protokolov.

Korak: Kaj potrebujete.. !

Kaj rabiš..!!
Kaj rabiš..!!
Kaj rabiš..!!
Kaj rabiš..!!
Kaj rabiš..!!
Kaj rabiš..!!

Materiali, ki jih potrebujemo za dosego našega cilja, vključujejo naslednje komponente strojne opreme:

1. BMG160

2. Foton delcev

3. Kabel I2C

4. I2C ščit za fotone delcev

3. korak: Priključitev strojne opreme:

Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme

Oddelek za priključitev strojne opreme v bistvu razlaga potrebne povezave ožičenja med senzorjem in delcem. Zagotavljanje pravilnih povezav je osnovna potreba pri delu na katerem koli sistemu za želeni izhod. Torej so potrebne povezave naslednje:

BMG160 bo deloval preko I2C. Tu je primer sheme ožičenja, ki prikazuje, kako povezati vsak vmesnik senzorja.

Plošča je že pripravljena za vmesnik I2C, zato priporočamo uporabo te povezave, če niste agnostični.

Vse kar potrebujete so štiri žice! Potrebne so le štiri povezave Vcc, Gnd, SCL in SDA, ki so povezane s kablom I2C.

Te povezave so prikazane na zgornjih slikah.

Korak: Koda delcev za merjenje 3-osnega žiroskopa:

Koda delcev za merjenje 3-osnega žiroskopa
Koda delcev za merjenje 3-osnega žiroskopa
Koda delcev za merjenje 3-osnega žiroskopa
Koda delcev za merjenje 3-osnega žiroskopa

Začnimo s kodo delcev zdaj.

Med uporabo senzorskega modula z arduinom vključujemo knjižnico application.h in spark_wiring_i2c.h. Knjižnica "application.h" in spark_wiring_i2c.h vsebuje funkcije, ki olajšajo komunikacijo i2c med senzorjem in delcem.

Za udobje uporabnika je spodaj navedena celotna koda delcev:

#vključi

#vključi

// Naslov BMG160 I2C je 0x68 (104)

#define Addr 0x68

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

void setup ()

{

// Nastavi spremenljivko

Particle.variable ("i2cdevice", "BMG160");

Delci.variable ("xGyro", xGyro);

Delci.variable ("yGyro", yGyro);

Delci.variable ("zGyro", zGyro);

// Inicializirajte komunikacijo I2C kot MASTER

Wire.begin ();

// Začetek serijske komunikacije

Serial.begin (9600);

// Zagon prenosa I2C

Wire.beginTransmission (Addr);

// Izberite register obsega

Wire.write (0x0F);

// Konfigurirajte polno merilo 2000 dps

Wire.write (0x80);

// Ustavi prenos I2C

Wire.endTransmission ();

// Zagon prenosa I2C

Wire.beginTransmission (Addr);

// Izberite register pasovne širine

Wire.write (0x10);

// Nastavi pasovno širino = 200 Hz

Wire.write (0x04);

// Ustavi prenos I2C

Wire.endTransmission ();

zamuda (300);

}

void loop ()

{

podpisani int podatki [6];

// Zagon prenosa I2C

Wire.beginTransmission (Addr);

// Izberite register podatkov

Wire.write (0x02);

// Ustavi prenos I2C

Wire.endTransmission ();

// Zahtevajte 6 bajtov podatkov

Wire.requestFrom (Addr, 6);

// Preberite 6 bajtov podatkov

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

če (Wire.available () == 6)

{

podatki [0] = Wire.read ();

podatki [1] = Wire.read ();

podatki [2] = Wire.read ();

podatki [3] = Wire.read ();

podatki [4] = Wire.read ();

podatki [5] = Wire.read ();

}

zamuda (300);

// Pretvorimo podatke

xGiro = ((podatki [1] * 256) + podatki [0]);

če (xGyro> 32767)

{

xžiroskop = 65536;

}

yGiro = ((podatki [3] * 256) + podatki [2]);

če (yGyro> 32767)

{

yGiro -= 65536;

}

zGiro = ((podatki [5] * 256) + podatki [4]);

če (zGyro> 32767)

{

zGiro -= 65536;

}

// Izhod podatkov na nadzorno ploščo

Particle.publish ("X-os rotacije:", String (xGyro));

Particle.publish ("Y-os vrtenja:", niz (yGyro));

Particle.publish ("Z-os vrtenja:", niz (zGyro));

zamuda (1000);

}

5. korak: Aplikacije:

Aplikacije
Aplikacije

BMG160 ima raznoliko število aplikacij v napravah, kot so mobilni telefoni, naprave za vmesnik človeških strojev. Ta senzorski modul je bil zasnovan tako, da izpolnjuje zahteve za potrošniške aplikacije, kot so stabilizacija slike (DSC in telefon s kamero), igralne in kazalne naprave. Uporablja se tudi v sistemih, ki zahtevajo prepoznavanje kretenj, in v sistemih, ki se uporabljajo pri navigaciji v zaprtih prostorih.

Priporočena: