GY-521 - Introductie
De GY-521 is gebaseerd op de MPU6050 sensor welke een gecombineerde bewegingsmeter, versnellingsmeter en gyroscoop heeft. Het geeft waarden over beweging, versnelling en draaiing. Deze gegevens zijn erg precies. Voor ieder kanaal is er een eigen 16-bits analoog naar digitaal omvormer voor de gegevens. De waarden van de drie kanalen kunnen dan ook tegelijkertijd worden uitgelezen.
De GY-521 geeft direct spanningssignalen af. Geen weerstand. Een spanningsdeler is hier niet nodig.

Bewegings controller
Dit component bevat een XYZ-as bewegings controller. Neem het onderdeel vast, nu kun je 3 bewegingen maken. je kunt naar links/rechts. Je kunt omhoog/omlaag. En je kunt naar voren/achter. Dat zijn de 3 assen waarop is te bewegen in de ruimte. Links/rechts gaat via de X-as. Omhoog/omlaag gaat via de Y-as. En de verplaatsing voor/achter gaat via de Z-as. Ze noemen dit ook wel 6-Axis (=6 assen) beweging. Zie de figuur hieronder staat in het figuur links, de verplaatsing als er enkel positieve waarden zijn. Een positieve waarde voor verplaatsing op de X-as gaat via de groene lijn. Een positieve waarde voor verplaatsing op de Y-as via de blauwe lijn en een positieve verplaatsing naar achteren is de blauwe as. Positieve verplaatsingen zijn in beginsel van het centrum af. In het rechterfiguur zijn de lijnen doorgetrokken en geven deze ook negatieve waarden aan.

Als we een de volgnde waarden krijgen X=10, Y=0, Z=-10. Dan weten we dat het object 10 positieies naar rechts gaat, niet omhoog gaat en eenzelfde aantal posities naar voren komt (naar ons toe komt).
Het is dus een plaatsbepaling. Voorbeeld: De afstandbediening ligt 60 cm naar rechts, 40 cm omhoog en 140 cm naar achteren op een tafeltje.
Versnellingsmeter
Dit component bevat een MEMS accelerometer. De afkorting MEMS staat voor Micro-elektromechanische systemen. Dit zijn kleine ingebedde systemen die onderdeel van een ander systeem. Ofwel de de accelero meter is onderdeel van de bewegingsmeter.
De vertaling van accelerometer is in het Nederlands versnellingsmeter. Het component meet de kracht van versnelling. Vanuit stilstand begint iets opeens te bewegen, of vanuit een beweging is er een versnelling of vertraging. Een voetbal rolt kalm over een veld, totdat iemand er een joekel van een trap tegen geeft. De bal zal dan hard weg vliegen. De versnelling is dan groot. Als we de kinderwagen zachtjes duwen om die in beweging te zetten (en de baby niet wakker te maken), dan is er een hele kleine versnelling.
Hiermee kun je verplaatsing meten. Voorbeeld: We hebben 3 seconden met een snelheid van 10cm/s bewogen in een richting.
Gyroscoop
Dit component bevat een MEMS gyroscope. Wat MEMS is hebben we hierboven gezien. Een gyroscoop bevat een piëzokristal, waarop een elektrische spanning wordt gelegd. Als er nu een draaibeweging, op het kristal inwerkt, dan kan het verschil in deze elektrische spanning worden gemeten. Hieruit kan de richting en hoek van de draaibeweging worden gemeten.
Hiermee kun je richting en de kracht van een draaibeweging meten. Voorbeeld: We zijn horizontaal 30 graden gedraaid en in de lengterichting 15 graden.
Op de afbeelding bovenaan de pagina was al te zien dat er standaard geen connectoren op de printkaart zitten. Die moeten we er op solderen.
PINs
De GY-521 heeft 8 pins.
- VCC, voeding
- GND, aarde
- SCL, 12C Clock
- SDA, 12C Data
- XDA, Auxiliary 12C Data
- XCL, Auxiliary 12C Clock
- AD0, Adjusting 12C Address
- INT, Interrupt
- VCC en GND PINs
- SCL en SDA PINs
- XDA en XCL PINs
Om de voeding aan te sluiten gebruiken we de VCC en GND pins. VCC op het bord voor de positieve voeding, verbind met de Arduino 5V pin
Voor aarde, verbinden we de GND op het bord met de Arduino GND pin
Er zijn verschillende soorten Uno's. Deze Uno zijn niet allemaal helemaal gelijk. Sommige hebben namelijk extra pins, voor SCL en SDA.
Deze extra pinnen zitten meestal (virtueel doorgeteld) op pin 16 en 17 in de hoek bij de grote USB aansluiting. De codering hiervan staat meestal aan de achterkan van het kaartje.
Indien je Arduino de extra pinnen niet heeft, geen bezwaar. Je kunt hiervoor ook voor SCL pin A5 en voor SDA pin A4 gebruiken.
De XDA en XCL zijn auxiliary serial pins. Deze kun je gebruiken om hier andere MPU6050's op aan te sluiten. Ik heb hier zelf nog geen ervaring mee.
Adafruit
Om het leven gemakkelijker te maken, kun je de
Wire
en Adafruit-MPU6050 library
downloaden en opnemen in je projectScript
Hieronder een script om de module te kunnen gebruiken.
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>
Adafruit_MPU6050 mpu;
void setup(void) {Serial.begin(115200);
while (!Serial) {delay(10); // will pause Zero, Leonardo, etc until serial console opens
}
// Try to initialize!
if (!mpu.begin()) { Serial.println("Failed to find MPU6050 chip"); while (1) {delay(10);
}
}
mpu.setAccelerometerRange(MPU6050_RANGE_16_G);
mpu.setGyroRange(MPU6050_RANGE_250_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
//Serial.println(");delay(100);
}
void loop() {sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
Serial.print("Temperature:");Serial.print(temp.temperature);
Serial.print(" x-acceleration:");Serial.print(a.acceleration.x);
Serial.print("ty-acceleration:");Serial.print(a.acceleration.y);
Serial.print(" z-acceleration:");Serial.print(a.acceleration.z);
Serial.print(" x-gyro:");Serial.print(g.gyro.x);
Serial.print(" y-gyro:");Serial.print(g.gyro.y);
Serial.print(" z-gyro:");Serial.println(g.gyro.z);
delay(10);
}
