Sisällysluettelo:

Liitäntä 3-akseliseen gyroskooppianturiin BMG160 hiukkasen kanssa: 5 vaihetta
Liitäntä 3-akseliseen gyroskooppianturiin BMG160 hiukkasen kanssa: 5 vaihetta

Video: Liitäntä 3-akseliseen gyroskooppianturiin BMG160 hiukkasen kanssa: 5 vaihetta

Video: Liitäntä 3-akseliseen gyroskooppianturiin BMG160 hiukkasen kanssa: 5 vaihetta
Video: Yuneec Typhoon H Advanced -heksakopteri (Tuote: 869551) 2024, Heinäkuu
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 toiminnan hiukkasfotonin kanssa.

Tähän tarkoitukseen tarvittavat laitteet ovat seuraavat:

1. BMG160

2. Hiukkasfotoni

3. I2C -kaapeli

4. I2C -suoja hiukkasfotonille

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. Hiukkasfotoni

3. I2C -kaapeli

4. I2C -suoja hiukkasfotonille

Vaihe 3: Laitteiston kytkentä:

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

Laitteiston kytkentäosio selittää periaatteessa anturin ja hiukkasen 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 mittaushiukkaskoodi:

3-akselinen gyroskoopin mittauspartikkelikoodi
3-akselinen gyroskoopin mittauspartikkelikoodi
3-akselinen gyroskoopin mittauspartikkelikoodi
3-akselinen gyroskoopin mittauspartikkelikoodi

Aloitetaan nyt hiukkaskoodista.

Kun käytät anturimoduulia arduinon kanssa, sisällytämme hakemistoon application.h ja spark_wiring_i2c.h. "application.h" ja spark_wiring_i2c.h -kirjasto sisältävät toiminnot, jotka helpottavat i2c -tiedonsiirtoa anturin ja hiukkasen välillä.

Koko hiukkaskoodi annetaan alla käyttäjän mukavuuden vuoksi:

#sisältää

#sisältää

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

#define Addr 0x68

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

mitätön asennus ()

{

// Aseta muuttuja

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

Particle.variable ("xGyro", xGyro);

Particle.variable ("yGyro", yGyro);

Particle.variable ("zGyro", zGyro);

// Alusta I2C -viestintä MASTERiksi

Wire.begin ();

// Alusta sarjaliikenne

Sarja.alku (9600);

// Käynnistä I2C -lähetys

Wire.beginTransmission (Addr);

// Valitse aluerekisteri

Wire.write (0x0F);

// Määritä koko mittakaava 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 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

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

jos (xGyro> 32767)

{

xGyro -= 65536;

}

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

jos (yGyro> 32767)

{

yGyro -= 65536;

}

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

jos (zGyro> 32767)

{

zGyro -= 65536;

}

// Tulosta tiedot kojelautaan

Particle.publish ("X-Axis of Rotation:", Jono (xGyro));

Particle.publish ("Y-pyörimisakseli:", Jono (yGyro));

Particle.publish ("Z-Axis of Rotation:", Jono (zGyro));

viive (1000);

}

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: