Inhoudsopgave:
Video: MPU6050-Versnellingsmeter + gyroscoopsensor Basisprincipes - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
De MPU6050 is een zeer bruikbare sensor.
De mpu 6050 is een IMU: een traagheidsmeeteenheid (IMU) is een elektronisch apparaat dat de specifieke kracht van een lichaam, de hoeksnelheid en soms de oriëntatie van het lichaam meet en rapporteert, met behulp van een combinatie van versnellingsmeters en gyroscopen.
Het is een apparaat met 6 assen
3 van de as kunnen versnelling meten en de andere 3 zijn voor hoekversnellingsmetingen.
Met behulp van de versnelling en hoekversnelling is het mogelijk om een vrij nauwkeurige schatting van de hoek te krijgen
In deze tutorial zullen we onderzoeken hoe we de MPU6050 kunnen gebruiken met een bibliotheek om dingen een stuk eenvoudiger te maken.
Benodigdheden
- Arduino-bord
- MPU6050
- Doorverbindingsdraden
- Breadboard
Stap 1: Voltooi het circuit
De sensor gebruikt een protocol dat bekend staat als I2c om met de Arduino te communiceren om de waarden te verzenden.
De A4-pin wordt gebruikt voor SCL-seriële klok en moet worden aangesloten op SCL van de sensor en, A5 naar SDA-seriële datalijn.
De Vcc is verbonden met 5v en de Gnd is verbonden met aarde
Stap 2: Coderen
#include #include
Voordat ik begin, is deze bibliotheek niet door mij geschreven, ik denk gewoon dat het de eenvoudigste is en ik gebruik het graag.
Dit zijn de header-bestanden ^^, wire.h wordt gebruikt om een i2c-communicatie tot stand te brengen
MPU6050 mpu6050 (draad);
hier noemen we onze gyroscoop, of maken we een object voor degenen die bekend zijn met OOP's.
ongeldige setup() {
Serieel.begin(9600); Draad.begin(); mpu6050.begin(); mpu6050.calcGyroOffsets(true); }
In eerste instantie berekenen we offsets omdat alle hoekmetingen ten opzichte van de initiële oriëntatie zullen zijn.
lege lus() {
mpu6050.update(); Serial.print("angleX: "); Serial.print(mpu6050.getAngleX()); Serial.print("\tangleY: "); Serial.print(mpu6050.getAngleY()); Serial.print("\tangleZ: "); Serial.println(mpu6050.getAngleZ()); }
Elk geeft ons de maat van de hoek.
Stap 3: Andere functies
De bibliotheek bevat andere functies
Leuk vinden:
mpu6050.getTemp()//geeft de temperatuur (niet erg nauwkeurig)
mpu6050.getAccX()//Lineaire versnelling in X-richting
(vergelijkbare functies zijn mpu6050.getAccY(), mpu6050.getAccZ())
mpu6050.getGyroX()//Hoekversnelling rond de x-as
(vergelijkbare functies zijn mpu6050.getGyroY(), mpu6050.getGyroZ())