Sisällysluettelo:

Liikkeen seuranta MPU-6000: n ja Arduino Nanon avulla: 4 vaihetta
Liikkeen seuranta MPU-6000: n ja Arduino Nanon avulla: 4 vaihetta

Video: Liikkeen seuranta MPU-6000: n ja Arduino Nanon avulla: 4 vaihetta

Video: Liikkeen seuranta MPU-6000: n ja Arduino Nanon avulla: 4 vaihetta
Video: Digital Motion Processing test on MPU 2024, Marraskuu
Anonim
Image
Image

MPU-6000 on 6-akselinen liikkeenseuranta-anturi, johon on upotettu 3-akselinen kiihtyvyysanturi ja 3-akselinen gyroskooppi. Tämä anturi pystyy tehokkaasti seuraamaan kohteen tarkan sijainnin ja sijainnin kolmiulotteisessa tasossa. Sitä voidaan käyttää järjestelmissä, jotka edellyttävät sijainnin analysointia mahdollisimman tarkasti.

Tässä opetusohjelmassa on kuvattu MPU-6000-anturimoduulin liitäntä arduino nanoon. Kiihtyvyys- ja kiertokulman arvojen lukemiseen olemme käyttäneet arduino nanoa ja I2c -sovitinta. Tämä I2C -sovitin tekee yhteyden anturimoduuliin helppoa ja luotettavaa.

Vaihe 1: Tarvittava laitteisto:

Tarvittava laitteisto
Tarvittava laitteisto
Tarvittava laitteisto
Tarvittava laitteisto
Tarvittava laitteisto
Tarvittava laitteisto

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

1. MPU-6000

2. Arduino Nano

3. I2C -kaapeli

4. I2C Shield arduino nanolle

Vaihe 2: Laitteiston kytkentä:

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

Laitteiston kytkentäosio selittää periaatteessa anturin ja arduino nanon väliset tarvittavat johdot. 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:

MPU-6000 toimii I2C: n kautta. 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 3: Liikkeentunnistuksen koodi:

Liikkeentunnistuksen koodi
Liikkeentunnistuksen 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:

#sisältää

// MPU-6000 I2C-osoite on 0x68 (104)

#define Addr 0x68

mitätön asennus ()

{

// Alusta I2C -viestintä päällikkönä

Wire.begin ();

// Alusta sarjaliikenne, aseta baudinopeus = 9600

Sarja.alku (9600);

// Aloita I2C -lähetys

Wire.beginTransmission (Addr);

// Valitse gyroskoopin määritysrekisteri

Wire.write (0x1B);

// Koko asteikon alue = 2000 dps

Wire.write (0x18);

// Pysäytä I2C -lähetys

Wire.endTransmission ();

// Aloita I2C -lähetys

Wire.beginTransmission (Addr);

// Valitse kiihtyvyysmittarin määritysrekisteri

Wire.write (0x1C);

// Koko asteikon alue = +/- 16 g

Wire.write (0x18);

// Pysäytä I2C -lähetys

Wire.endTransmission ();

// Aloita I2C -lähetys

Wire.beginTransmission (Addr);

// Valitse virranhallintarekisteri

Wire.write (0x6B);

// PLL xGyro -viitteellä

Wire.write (0x01);

// Pysäytä I2C -lähetys

Wire.endTransmission ();

viive (300);

}

tyhjä silmukka ()

{

allekirjoittamattomat int -tiedot [6];

// Aloita I2C -lähetys

Wire.beginTransmission (Addr);

// Valitse tietorekisteri

Wire.write (0x3B);

// Pysäytä I2C -lähetys

Wire.endTransmission ();

// Pyydä 6 tavua dataa

Wire.requestFrom (Addr, 6);

// Lue 6 tavua dataa

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

}

// Muunna tiedot

int xAccl = data [0] * 256 + data [1];

int yAccl = data [2] * 256 + data [3];

int zAccl = data [4] * 256 + data [5];

// Aloita I2C -lähetys

Wire.beginTransmission (Addr);

// Valitse tietorekisteri

Wire.write (0x43);

// Pysäytä I2C -lähetys

Wire.endTransmission ();

// Pyydä 6 tavua dataa

Wire.requestFrom (Addr, 6);

// Lue 6 tavua dataa

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

}

// Muunna tiedot

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

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

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

// Tulostustiedot sarjamittarille

Serial.print ("Kiihtyvyys X-akselissa:");

Sarja.println (xAccl);

Serial.print ("Kiihtyvyys Y-akselilla:");

Sarja.println (yAccl);

Serial.print ("Kiihtyvyys Z-akselissa:");

Sarja.println (zAccl);

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

}

Johdinkirjastossa Wire.write () ja Wire.read () käytetään komentojen kirjoittamiseen ja anturilähdön lukemiseen.

Serial.print () ja Serial.println () käytetään anturin lähdön näyttämiseen Arduino IDE: n sarjamonitorissa.

Anturin lähtö näkyy yllä olevassa kuvassa.

Vaihe 4: Sovellukset:

Sovellukset
Sovellukset

MPU-6000 on liikkeenseuranta-anturi, joka löytää sovelluksensa älypuhelimien ja tablettien liikerajapinnassa. Älypuhelimissa näitä antureita voidaan käyttää sovelluksissa, kuten sovellusten elekomennot ja puhelimen ohjaus, parannettu pelaaminen, lisätty todellisuus, panoraamakuvien sieppaus ja katselu sekä jalankulkijoiden ja ajoneuvojen navigointi. MotionTracking-tekniikka voi muuttaa puhelimet ja tabletit tehokkaiksi 3D-älylaitteiksi, joita voidaan käyttää sovelluksissa terveydestä ja kuntotarkkailusta sijaintiin perustuviin palveluihin.

Suositeltava: