INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Die MPU6050 is 'n baie nuttige sensor.
Die mpu 6050 is 'n IMU: 'n traagheidseenheid (IMU) is 'n elektroniese toestel wat 'n liggaam se spesifieke krag, hoeksnelheid en soms die oriëntasie van die liggaam meet en gebruik deur 'n kombinasie van versnellingsmeters, gyroskope.
Dit is 'n 6 -as toestel
3 van die as kan versnelling meet en die ander 3 is vir hoekversnellingsmetings.
Deur die versnelling en hoekversnelling te gebruik, is dit moontlik om 'n redelike akkurate skatting van die hoek te kry
In hierdie handleiding gaan ons ondersoek hoe ons die MPU6050 met 'n biblioteek kan gebruik om dinge baie makliker te maak.
Voorrade
- Arduino bord
- MPU6050
- Springdrade
- Broodbord
Stap 1: Voltooi die kring
Die sensor gebruik 'n protokol bekend as I2c om met die Arduino te kommunikeer om die waardes aan hom te stuur.
Die A4-pen word gebruik vir SCL-seriële horlosie en moet gekoppel word aan SCL van die sensor en, A5 na SDA-Seriële data lyn.
Die Vcc is gekoppel aan 5v en die Gnd is aan die aarde gekoppel
Stap 2: Kodering
#include #include
Voordat ek begin, is hierdie biblioteek nie deur my geskryf nie, ek dink net dit is die eenvoudigste daar en gebruik dit graag.
Dit is die koplêers ^^, wire.h word gebruik om 'n i2c -kommunikasie tot stand te bring
MPU6050 mpu6050 (draad);
hier noem ons ons gyroscoop, of skep 'n voorwerp vir diegene wat bekend is met OOP's.
ongeldige opstelling () {
Serial.begin (9600); Wire.begin (); mpu6050.begin (); mpu6050.calcGyroOffsets (waar); }
Aanvanklik bereken ons verrekenings, aangesien al die hoekmetings ten opsigte van die aanvanklike oriëntasie sal wees.
leemte -lus () {
mpu6050.update (); Serial.print ("hoekX:"); Serial.print (mpu6050.getAngleX ()); Serial.print ("\ tangleY:"); Serial.print (mpu6050.getAngleY ()); Serial.print ("\ tangleZ:"); Serial.println (mpu6050.getAngleZ ()); }
Elkeen gee ons die maat van die hoek.
Stap 3: Ander funksies
Die biblioteek bevat ander funksies
soos:
mpu6050.getTemp () // gee die temperatuur (nie baie akkuraat nie)
mpu6050.getAccX () // Lineêre versnelling in X -rigting
(soortgelyke funksies is mpu6050.getAccY (), mpu6050.getAccZ ())
mpu6050.getGyroX () // Hoekversnelling om die x -as
(soortgelyke funksies is mpu6050.getGyroY (), mpu6050.getGyroZ ())