Primjer 1

Primjer 1.

Za početak, spajanje…

Na slici 1 prikazan je način spajanja MPU6050 modula s Arduino Uno mikroupravljačkim sučeljem.

[if !vml]

Slika 1, spajanje MPU6050 s ArduinoUno mikroupravljačkim sučeljem

Za spajanje i očitavanje podataka koristit ćemo samo 4 izvoda MPU 6050 modula (VCC, GND, SDA i SCL). Izvod VCC spajamo na izvod napajanja na Arduino Uno pločici (modul ima ugrađen regulator napona pa možemo koristiti 3,3 V ili 5 V napajanje). Izvod GND s modula spajamo na bilo koji GND izvod na Arduino Uno pločici. SDA izvod s modula spajamo na izvod A4 na Arduinu i konačno izvod SCL s modula spajamo na izvod A5. I to je to što se tiče spajanja.

Sad krećemo s pisanjem koda:

Na početku…

#include <Wire.h> //Ovaj redak služi za uključivanje I2C biblioteke, kako bi Arduino razgovarao s MPU6050.

#include <GY6050.h> //Ovaj redak služi se za uključivanje glavne biblioteke za MPU6050.

GY6050 mojziro (0x68); //“nekoime“ je proizvoljni naziv našeg modula MPU6050, a Ox68" je I2C adresa MPU6050, ali ponekad može biti drugačija. To možemo provjeriti jednostavnim skenerom sabirnice I2C koji možemo pronaći na internetu.

Sada u "void setup" upisujemo:

mojziro.inicijalizacija(); //Ova linija inicijalizira MPU6050 i omogućuje da pravilno razgovara s našim Arduinom.

I sada glavni dio našeg programa:

U "void loop" upisujemo:

PrilagođenaVarijabla = mojziro.refresh([Argument1], [Argument2]);

Napomena: Budući da biblioteka vraća cjelobrojnu vrijednost, možemo je pohraniti u drugu cjelobrojnu vrijednost (ovdje PrilagođenaVarijabla), ali ovaj parametar možemo koristiti i kao: Serial.println(gyro.refresh([Argument1], [Argument2]); . Naravno, prije trebamo u početnom dijelu programa deklarirati tu varijablu, na primjer „X“: int X=0; Sada bi naša funkcija izgledala ovako:

x = mojziro.refresh([Argument1], [Argument2]);

[Argument1] se koristi za "uređaj" koji želimo koristiti:

'A': akcelerometar,

'T': temperatura,

'G' : Žiroskop.

[Argument2] se koristi za os (ili jedinicu, za temperaturu) koju želimo koristiti:

Akcelerometar i žiroskop: 'X', 'Y' i 'Z'

Temperatura: 'C' : Celzijus; 'F' : Farenhajt

Napomena: Ova slova moraju biti između apostrofa ('), poput: mojziro.refresh('A', 'X');

Ako želimo očitavati pomak po osi x, naša će funkcija izgledati ovako:

x = mojziro.refresh('A', 'X');

Argument 'A' označava akcelerometar, a 'X' označava os x, što znači da očitavamo pomak po osi x s akcelerometra.

Vrijednosti očitane s osi akcelerometra trebale bi biti između -90 i 90 (kutni stupanj), ali mogu biti i 110 ili -110, zbog inercije "pokretnih dijelova" unutar akcelerometra.

Vrijednosti za žiroskop trebale bi biti između -120 i 120 (bez određene jedinice), ali može biti i malo više, sve ovisi o brzini rotacije.

Eto i kako bi naš kod trebao izgledati:

#include "GY6050.h"

#include "Wire.h"

GY6050 mojziro(0x68);

int X;

void setup() {

  Serial.begin(9600);

  Wire.begin();

  mojziro.initialisation();  

}

void loop() {

  X=mojziro.refresh('A','X');

  Serial.println(X);

  delay(100);

}

Pokrenemo li program, na serijskom monitoru bismo trebali dobiti očitavanja sa MPU6050 modula. Kako zakrećemo naš modul po osi x, tako se i mijenjaju očitane vrijednosti. 

vrh stranice