Sisällysluettelo:

3-akselisen gyroskooppi-anturin liitäntä BMG160 Arduino Nanon kanssa: 5 vaihetta
3-akselisen gyroskooppi-anturin liitäntä BMG160 Arduino Nanon kanssa: 5 vaihetta

Video: 3-akselisen gyroskooppi-anturin liitäntä BMG160 Arduino Nanon kanssa: 5 vaihetta

Video: 3-akselisen gyroskooppi-anturin liitäntä BMG160 Arduino Nanon kanssa: 5 vaihetta
Video: How to use MPU-9250 Gyroscope, Accelerometer, Magnetometer for Arduino 2024, Marraskuu
Anonim
Image
Image

Nykymaailmassa yli puolet nuorista ja lapsista pitää pelaamisesta ja kaikki, jotka pitävät siitä ja ovat kiinnostuneita pelaamisen teknisistä näkökohdista, tietävät liikkeen tunnistamisen tärkeyden tällä alalla. Olimme myös hämmästyneitä samasta asiasta ja vain tuodaksemme sen taululle, ajattelimme työskennellä gyroskooppianturin kanssa, joka voi mitata minkä tahansa kohteen kulmanopeuden. Joten anturi, jonka otimme tehtävän käsittelyyn, on BMG160. BMG160 on 16-bittinen, digitaalinen, kolmiaksiaalinen gyroskooppianturi, joka voi mitata kulmanopeuden kolmessa kohtisuorassa huoneen ulottuvuudessa.

Tässä opetusohjelmassa aiomme osoittaa BMG160: n työskentelyn Arduino Nanon kanssa.

Tähän tarkoitukseen tarvittavat laitteet ovat seuraavat:

1. BMG160

2. Arduino Nano

3. I2C -kaapeli

4. I2C -kilpi Arduino Nanolle

Vaihe 1: Yleiskatsaus BMG160:

Mitä tarvitset..!!
Mitä tarvitset..!!

Ensinnäkin haluamme tutustua BMG160 -anturimoduulin perusominaisuuksiin ja tiedonsiirtoprotokollaan, jolla se toimii.

BMG160 on pohjimmiltaan 16-bittinen, digitaalinen, kolmiaksiaalinen gyroskooppianturi, joka voi mitata kulmanopeuksia. Se pystyy laskemaan kulmanopeudet kolmella kohtisuoralla huonemitalla, x-, y- ja z-akselilla, ja tuottamaan vastaavat lähtösignaalit. Se voi kommunikoida vadelmapi -levyn kanssa I2C -yhteyskäytännön avulla. Tämä moduuli on suunniteltu täyttämään kuluttaja- ja teollisuuskäyttöön liittyvät vaatimukset.

Viestintäprotokolla, jolla anturi toimii, on I2C. I2C tarkoittaa integroitua piiriä. Se on viestintäprotokolla, jossa tiedonsiirto tapahtuu SDA- (sarjatiedot) ja SCL (sarjakello) -linjojen kautta. Se mahdollistaa useiden laitteiden yhdistämisen samanaikaisesti. Se on yksi yksinkertaisimmista ja tehokkaimmista viestintäprotokollista.

Vaihe 2: Mitä tarvitset..

Mitä tarvitset..!!
Mitä tarvitset..!!
Mitä tarvitset..!!
Mitä tarvitset..!!
Mitä tarvitset..!!
Mitä tarvitset..!!

Tavoitteemme saavuttamiseen tarvittavat materiaalit sisältävät seuraavat laitteistokomponentit:

1. BMG160

2. Arduino Nano

3. I2C -kaapeli

4. I2C -kilpi Arduino Nanolle

Vaihe 3: Laitteiston kytkentä:

Laitteiston kytkentä
Laitteiston kytkentä
Laitteiston kytkentä
Laitteiston kytkentä

Laitteiston kytkentäosio selittää periaatteessa anturin ja Arduinon väliset tarvittavat johdotukset. Oikeiden liitosten varmistaminen on perustarve, kun työskentelet minkä tahansa järjestelmän kanssa halutun lähdön saavuttamiseksi. Tarvittavat liitännät ovat siis seuraavat:

BMG160 toimii I2C: n yli. Tässä on esimerkki kytkentäkaaviosta, joka osoittaa, miten anturin jokainen liitäntä kytketään.

Valmis levy on konfiguroitu I2C-rajapintaa varten, joten suosittelemme käyttämään tätä kytkentää, jos olet muuten agnostikko.

Tarvitset vain neljä johtoa! Tarvitaan vain neljä liitäntää Vcc, Gnd, SCL ja SDA, ja ne on kytketty I2C -kaapelin avulla.

Nämä yhteydet on esitetty yllä olevissa kuvissa.

Vaihe 4: 3-akselinen gyroskoopin mittaus Arduino-koodi:

3-akselinen gyroskoopin mittaus Arduino-koodi
3-akselinen gyroskoopin mittaus Arduino-koodi
3-akselinen gyroskoopin mittaus Arduino-koodi
3-akselinen gyroskoopin mittaus Arduino-koodi

Aloitetaan nyt arduino -koodilla.

Kun käytät anturimoduulia arduinon kanssa, sisällytämme Wire.h -kirjaston. "Wire" -kirjasto sisältää toiminnot, jotka helpottavat i2c -tiedonsiirtoa anturin ja arduino -kortin välillä.

Koko arduino -koodi on annettu alla käyttäjän mukavuuden vuoksi:

#include // BMG160 I2C -osoite on 0x68 (104)

#define Addr 0x68

mitätön asennus ()

{

// Alusta I2C -viestintä MASTERiksi

Wire.begin ();

// Alusta sarjaliikenne, aseta baudinopeus = 9600

Sarja.alku (9600);

// Käynnistä I2C -lähetys

Wire.beginTransmission (Addr);

// Valitse aluerekisteri

Wire.write (0x0F);

// Määritä koko asteikon alue 2000 dps

Wire.write (0x80);

// Pysäytä I2C -lähetys

Wire.endTransmission ();

// Käynnistä I2C -lähetys

Wire.beginTransmission (Addr);

// Valitse kaistanleveysrekisteri

Wire.write (0x10);

// Aseta kaistanleveys = 200 Hz

Wire.write (0x04);

// Pysäytä I2C -lähetys

Wire.endTransmission ();

viive (300);

}

tyhjä silmukka ()

{

allekirjoittamattomat int -tiedot [6];

// Käynnistä I2C -lähetys

Wire.beginTransmission (Addr);

// Valitse Gyrometrin tietorekisteri

Wire.write (0x02);

// Pysäytä I2C -lähetys

Wire.endTransmission ();

// Pyydä 6 tavua dataa

Wire.requestFrom (Addr, 6);

// Lue 6 tavua dataa

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

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

}

viive (300);

// Muunna tiedot

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

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

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

// Tulostustiedot sarjamonitorille

Serial.print ("X-Axis of Rotation:");

Sarja.println (xGyro); Serial.print ("Y-pyörimisakseli:");

Sarja.println (yGyro); Serial.print ("Z-Axis of Rotation:");

Sarja.println (zGyro);

viive (500);

}

Vaihe 5: Sovellukset:

Sovellukset
Sovellukset

BMG160: lla on monenlaisia sovelluksia laitteissa, kuten matkapuhelimissa, ihmisen ja koneen rajapintalaitteissa. Tämä anturimoduuli on suunniteltu täyttämään kuluttajasovellusten, kuten kuvanvakautuksen (DSC ja kamera-puhelin), peli- ja osoitinlaitteiden vaatimukset. Sitä käytetään myös järjestelmissä, jotka edellyttävät eleiden tunnistusta, ja järjestelmissä, joita käytetään sisäisessä navigoinnissa.

Suositeltava: