Ndenge ya kosalela module ya MPU-6050 Accelerometer mpe Gyroscope
MPU-6050 ezali senseur oyo esalelaka mingi, oyo esangisi acceleromètre ya ba axes misato mpe gyroscope ya ba axes misato na kati ya emballage moko. Na boyekoli oyo, tokotalela ndenge ya kosangisa module oyo na Arduino mpo na komeka acceleration mpe vitesse angulaire. Nsuka ekozala programme moko ya pete oyo ekolakisa ba données ya tango ya sika kowuta na senseur, mpo okoka kotala mpe acceleration mpe orientation ya appareil na yo.

Na kolanda bokambi oyo, okoyekola ndenge ya kobongisa hardware, kokangisa ba composants na ndenge ya semba, mpe kokoma code oyo esengeli mpo na MPU-6050 ebanda kosala. Oyo ekopesa yo moboko mpo na ba projets mosusu oyo etali koyoka mouvement mpe koyeba orientation. Mpo na bososoli ya koleka, tala vidéo oyo ezali elongo na boyekoli oyo (na vidéo na 00:00).
Hardware Explicable
Élément principal na projet oyo ezali senseur MPU-6050, oyo epesaka ba données ya acceleromètre mpe gyroscope. Acceleromètre emekaka acceleration linéaire na ba axes X, Y, mpe Z, ntango gyroscope emekaka taux ya rotation na zingazinga ya ba axes yango. Bosangisi oyo esalaka ete MPU-6050 ezali choix ya malamu mpo na ba applications oyo esengaka kolanda mouvement.
Na kobakisa, module oyo esalelaka interface I2C mpo na communication, oyo ekitisaka ba connexions mpe epesaka nzela ete ba appareils ebele bakangama na bus moko. Senseur azwaka puissance na nzela ya pin VCC, oyo esengaka généralement tension entre 3.3V mpe 5V. Ground ekangami na ground ya commune ya Arduino.
Détails ya Datasheet
| Fabricant | InvenSense |
|---|---|
| Numéro ya partie | MPU-6050 |
| Tension ya logique/IO | 3.3 – 5 V |
| Tension ya alimentation | 3.3 – 5 V |
| Courant ya sortie (na canal) | … |
| Courant ya pointe (na canal) | … |
| Bokambi ya fréquence PWM | … |
| Seuils ya logique ya entrée | … |
| Chute ya tension / RDS(on) / saturation | … |
| Limites thermiques | … |
| Emballage | QFN |
| Notes / variantes | … |
- Kokangisa pin VCC na 3.3V to 5V.
- Kokangisa pin GND na ground.
- Salela communication I2C na nzela ya SDA (ba données) mpe SCL (horloge).
- Tá ete ba résistances ya pull-up ezala na ba lignes SDA mpe SCL.
- Vérifier ba niveaux ya tension mpo na kokima kobebisa senseur.
Bokambi ya Kokangisa Ba Fils

Mpo na kokangisa MPU-6050 na Arduino na yo, banda na kokangisa pin VCC ya MPU-6050 na pin 5V na Arduino. Na sima, kokangisa pin GND ya MPU-6050 na moko ya ba pins GND na Arduino. Mpo na communication I2C, kokangisa pin SDA ya MPU-6050 na pin A4 ya Arduino, mpe pin SCL na pin A5. Tá ete Arduino na yo ebongisami mpo na kosalela communication I2C na kolakisa ba bibliothèques oyo esengeli na code na yo.
Vérifier mbala mibale ba connexions na yo liboso ya kopesa système puissance. Soki ozali kosalela breadboard, tá ete ba connexions ezali ya makasi mpe ete ezali na ba courts-circuits te. Soki module eyanoli te ndenge ozalaki kolikia, vérifier ba fils mpe tá adresse I2C ya MPU-6050 na code na yo.
Ba Exemples ya Code & Explication
Code oyo elandi ebandisaka MPU-6050 mpe ebandi kotanga ba données kowuta na yango. Ba identifiants ya minene ezali mpu6050, oyo ezali exemple ya classe MPU6050, mpe timer, oyo esalelamaka mpo na kokamba tango ya kobimisa ba données.
MPU6050 mpu6050(Wire);
long timer = 0;
void setup() {
Serial.begin(9600);
Wire.begin();
mpu6050.begin();
mpu6050.calcGyroOffsets(true);
}
Na fonction setup oyo, tobandisaka communication série mpe senseur MPU-6050. Appel mpu6050.calcGyroOffsets(true) ezali ya ntina mingi mpo ete ecalibre ba offsets ya gyroscope, mpo na kozwa ba mesures ya semba.
Na fonction loop, tobakisaka ba données ya senseur mpe tokomaka yango na moniteur série. Code oyo elandi elakisi ndenge ya kotanga mpe kokoma température mpe ba données ya acceleration:
if(millis() - timer > 1000){
Serial.print("temp : ");Serial.println(mpu6050.getTemp());
Serial.print("accX : ");Serial.print(mpu6050.getAccX());
Serial.print("\taccY : ");Serial.print(mpu6050.getAccY());
Serial.print("\taccZ : ");Serial.println(mpu6050.getAccZ());
}
Bloc oyo etalaka soki seconde moko esili koleka banda mbala ya suka ya kobimisa. Na sima ezwaka ba valeurs ya température mpe acceleration kowuta na MPU-6050 mpe ekomaka yango na moniteur série. Okoki kotala ba valeurs oyo ezali kobongwana na tango ya sika.
Démonstration / Nini Okoki Kozela
Ntango nyonso esili kokangama mpe code etombolami, okoki kozela ete ba données ya température mpe acceleration ekomama na moniteur série na seconde nyonso. Soki otieki to omemie MPU-6050, ba valeurs ya acceleration esengeli kobongwana na ndenge yango. Tá likebi ete kokangisa ba fils na ndenge ya mabe to puissance ya malamu te ekoki komemela ba lectures ya mabe to ata ba données te (na vidéo na 01:30).
/*
*
* This code is basic usage of the MPU-6050 Accelerometer and Gyroscope.
*
* This code displays all data:
* -Gyroscope X, Gyroscope Y, Gyroscope Z
* -Gyroscope Angle X, Gyroscope Angle Y, Gyroscope Angle Z
* -Accel X, Accel Y, Accel Z
* -Accel Angle X, Accel Angle Y, Accel Angle Z,
*
* Library and code have been taken from:
* https://github.com/tockn/MPU6050_tockn
*
* Updated by Ahmad Shamshiri on July 03, 2018 in Ajax, Ontario, Canada
* for Robojax.com
* Get this code from Robojax.com
* Watch video instructions for this code at: https://youtu.be/uhh7ik02aDc
*
*/
#include <MPU6050_tockn.h>
#include <Wire.h>
MPU6050 mpu6050(Wire);
long timer = 0;
void setup() {
Serial.begin(9600);
Wire.begin();
mpu6050.begin();
mpu6050.calcGyroOffsets(true);
}
void loop() {
mpu6050.update();
if(millis() - timer > 1000){
Serial.println("=======================================================");
Serial.print("temp : ");Serial.println(mpu6050.getTemp());
Serial.print("accX : ");Serial.print(mpu6050.getAccX());
Serial.print("\taccY : ");Serial.print(mpu6050.getAccY());
Serial.print("\taccZ : ");Serial.println(mpu6050.getAccZ());
Serial.print("gyroX : ");Serial.print(mpu6050.getGyroX());
Serial.print("\tgyroY : ");Serial.print(mpu6050.getGyroY());
Serial.print("\tgyroZ : ");Serial.println(mpu6050.getGyroZ());
Serial.print("accAngleX : ");Serial.print(mpu6050.getAccAngleX());
Serial.print("\taccAngleY : ");Serial.println(mpu6050.getAccAngleY());
Serial.print("gyroAngleX : ");Serial.print(mpu6050.getGyroAngleX());
Serial.print("\tgyroAngleY : ");Serial.print(mpu6050.getGyroAngleY());
Serial.print("\tgyroAngleZ : ");Serial.println(mpu6050.getGyroAngleZ());
Serial.print("angleX : ");Serial.print(mpu6050.getAngleX());
Serial.print("\tangleY : ");Serial.print(mpu6050.getAngleY());
Serial.print("\tangleZ : ");Serial.println(mpu6050.getAngleZ());
Serial.println("=======================================================\n");
timer = millis();
}
}
/*
*
* This code is basic usage of the MPU-6050 Accelerometer and Gyroscope.
*
* This code displays:
* - Angle X, Angle Y, Angle Z,
*
* Library and code have been taken from:
* https://github.com/tockn/MPU6050_tockn
*
* Updated by Ahmad Shamshiri on July 03, 2018 in Ajax, Ontario, Canada
* for Robojax.com
* Get this code from Robojax.com
* Watch video instructions for this code at: https://youtu.be/uhh7ik02aDc
*
*/
#include <MPU6050_tockn.h>
#include <Wire.h>
MPU6050 mpu6050(Wire);
long timer = 0;
void setup() {
Serial.begin(9600);
Wire.begin();
mpu6050.begin();
mpu6050.calcGyroOffsets(true);
}
void loop() {
mpu6050.update();
if(millis() - timer > 1000){
Serial.println("=======================================================");
Serial.print("temp : ");Serial.println(mpu6050.getTemp());
Serial.print("accX : ");Serial.print(mpu6050.getAccX());
Serial.print("\taccY : ");Serial.print(mpu6050.getAccY());
Serial.print("\taccZ : ");Serial.println(mpu6050.getAccZ());
Serial.print("gyroX : ");Serial.print(mpu6050.getGyroX());
Serial.print("\tgyroY : ");Serial.print(mpu6050.getGyroY());
Serial.print("\tgyroZ : ");Serial.println(mpu6050.getGyroZ());
Serial.print("accAngleX : ");Serial.print(mpu6050.getAccAngleX());
Serial.print("\taccAngleY : ");Serial.println(mpu6050.getAccAngleY());
Serial.print("gyroAngleX : ");Serial.print(mpu6050.getGyroAngleX());
Serial.print("\tgyroAngleY : ");Serial.print(mpu6050.getGyroAngleY());
Serial.print("\tgyroAngleZ : ");Serial.println(mpu6050.getGyroAngleZ());
Serial.print("angleX : ");Serial.print(mpu6050.getAngleX());
Serial.print("\tangleY : ");Serial.print(mpu6050.getAngleY());
Serial.print("\tangleZ : ");Serial.println(mpu6050.getAngleZ());
Serial.println("=======================================================\n");
timer = millis();
}
}
Nko o na nki.
-
AmazonPurchase MPU-6050 from Amazonamzn.to
Mokili na bisika
-
L'extérieurManufacturer websiteinvensense.com
Fichiers📁
Maktabat ya Arduino (zip)
-
Arduino library for MPU9250
robojax-MPU9250-master.zip3.38 MB
Mabala a mangwe
-
MPU6050_tockn-masterArduino library for the MPU6050 accelerometer and gyroscope module. Provides functions to read acceleration, gyro, and temperature data, with calibration and angle calculation. Designed for easy integration into motion-sensing projects.
robojax-MPU6050_tockn-master.zip