MPU-9250 Accéléromètre, Gyroscope, et Magnétomètre Code
Na boyekoli oyo, tokotalela ndenge ya kosalela sensor ya MPU-9250, oyo esangisi acceleromètre, gyroscope mpe magnétomètre na module moko ya moké. Na suka ya boyekoli oyo, okokoka kotanga ba données ya sensor mpe kososola ntina na yango na ba projets na yo. Sensor oyo esalaka mingi mpo na ba applications lokola robotique mpe drones, epai orientation mpe suivi ya mouvement ezali makambo ya ntina mingi. Okoki kotala vidéo mpo na ndimbola ya kobakisa na mise en place mpe code (na vidéo na 00:20).
Hardware Explicado
Module ya MPU-9250 esangisi ba capteurs misato: accéléromètre, gyroscope mpe magnétomètre. Accéléromètre emekelaka ba forces ya accélération, mpo na koyeba vitesse mpe orientation. Gyroscope epesaka vitesse angulaire, mpo na kososola ndenge orientation ebongwanaka na eleko. Na suka, magnétomètre ezali lokola boussole, epesaka ba données ya champ magnétique mpo na navigation.
Kosangisa ba capteurs oyo ezali na ntina mingi na ba applications epai suivi ya mouvement ezali nécessité, lokola na ba drones to ba smartphones. MPU-9250 elobelaka na I2C to SPI, mpo na kosalela na ba microcontrôleurs ndenge na ndenge.
Détails ya Datasheet
| Fabricant | InvenSense |
|---|---|
| Numéro ya pièce | MPU-9250 |
| Tension ya logique/IO | 1.8 V (I/O), 3.3 V (alimentation) |
| Tension ya alimentation | 2.4 - 3.6 V |
| Courant ya sortie (na canal) | 3.2 mA (fonctionnement normal) |
| Courant ya pointe (na canal) | 19.8 mA (max) |
| Guidance ya fréquence PWM | N/A |
| Seuils ya logique ya entrée | 0.3 * VDD (bas), 0.7 * VDD (haut) |
| Chute ya tension / RDS(on) / saturation | N/A |
| Limites thermiques | -40 to 85 °C |
| Paquet | QFN |
| Notes / variantes | Ezali na régulateur ya tension interne |
- Kokamba tension ya alimentation (2.4 - 3.6 V) mpo na kobuka module te.
- Salela résistance ya pull-up mpo na ba lignes SDA mpe SCL soki ezali te na breakout board na yo.
- Vérifier adresse I2C (défaut ezali 0x68) mpe kobongola pin ADO mpo na ba adresses mosusu.
- Kotala ba connexions mpo na stabilité mpo na koboya ba erreurs ya lecture.
- Calibrer ba capteurs régulièrement mpo na ba mesures ya semba.
Instructions ya Câblage


Mpo na kokanga MPU-9250 na Arduino na yo, banda na kokangisa pin VCC ya MPU-9250 na pin 5V ya Arduino. Module ezali na régulateur interne, yango wana ezali sécurité ya kopésa yango 5V. Na nsima, kokangisa pin GND na terre (GND) ya Arduino. Mpo na communication ya données, kokangisa pin SDA na pin A4 ya Arduino mpe pin SCL na pin A5. Configuration oyo ezali standard mpo na ba Arduino mingi.
Soki ozali kosalela Arduino Mega, ba pins SDA mpe SCL ezali na ba pins 20 mpe 21, respectivement. Kotala ete ba connexions ezali solide mpo na koboya ba erreurs ya communication. Soki osengeli kobongola adresse I2C ya MPU-9250, kokangisa pin ADO na 5V mpo na kotia yango na 0x69. Kokabola yango ekozongisa yango na 0x68.
Ba Exemples ya Code & Explication
Na sketch ya Arduino, tobandaka na kosangisa bibliothèque ya MPU9250 mpe kosala exemple ya sensor:
#include "MPU9250.h"
MPU9250 IMU(Wire,0x68);
Code ebandisaka sensor mpe ebandi communication na fonction setup():
void setup() {
Serial.begin(115200);
status = IMU.begin();
if (status < 0) {
Serial.println("IMU initialization unsuccessful");
while(1) {}
}
}
Na fonction loop(), tozali kotanga mpe kopanza ba données ya sensor na tango nyonso:
void loop() {
IMU.readSensor();
Serial.print("AccelX: ");
Serial.print(IMU.getAccelX_mss(),6);
// Ba déclarations mosusu ya impression mpo na ba axes mosusu
}
Section oyo etangaka ba valeurs ya accéléromètre, gyroscope mpe magnétomètre, mpe ezali kolakisa yango na Serial Monitor. Kotala ete okotala code mobimba oyo ezali na nsé ya article mpo na implémentation complète.
Démonstration / Nini Okoki Kozela
Ntango okosalela code, okomona ba valeurs ya sensor ezali kobongwana na temps réel na Serial Monitor. Ba valeurs ya accéléromètre ekobongwana ntango okomema sensor, kasi ba valeurs ya gyroscope ekolakisa taux ya rotation. Magnétomètre ekopésa yo force ya champ magnétique na ba axes misato, oyo ekoki kosalelama mpo na koyeba orientation. Kozala na bokebi na ba entrées ya flottement, mpo ebele esengeli te mpo na ba lectures ya semba (na vidéo na 12:30).
Ba Chapitres
- Libosɔlɔ (00:00)
- Esaleli ya bisaleli (01:30)
- Malakisi ya kokangisa (04:00)
- Bilakisi ya kode & kolakisa (06:00)
- Elakiseli (10:00)
/*
* Library: https://github.com/bolderflight/MPU9250
Basic_I2C.ino
Brian R Taylor
brian.taylor@bolderflight.com
Copyright (c) 2017 Bolder Flight Systems
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/*
* Updated by Ahmad Shamshiri on July 9, 2018 for Robojax.com
* in Ajax, Ontario, Canada
* Watch instruction video for this code:
For this sketch you need to connect:
VCC to 5V and GND to GND of Arduino
SDA to A4 and SCL to A5
S20A is 3.3V voltage regulator MIC5205-3.3BM5
*/
#include "MPU9250.h"
// An MPU9250 object with the MPU-9250 sensor on I2C bus 0 with address 0x68
MPU9250 IMU(Wire,0x68);
int status;
void setup() {
// Serial to display data
Serial.begin(115200);
while(!Serial) {}
// Start communication with IMU
status = IMU.begin();
if (status < 0) {
Serial.println("IMU initialization unsuccessful");
Serial.println("Check IMU wiring or try cycling power");
Serial.print("Status: ");
Serial.println(status);
while(1) {}
}
}
void loop() {
// Read the sensor
IMU.readSensor();
// Display the data
Serial.print("AccelX: ");
Serial.print(IMU.getAccelX_mss(),6);
Serial.print("\t");
Serial.print("AccelY: ");
Serial.print(IMU.getAccelY_mss(),6);
Serial.print("\t");
Serial.print("AccelZ: ");
Serial.println(IMU.getAccelZ_mss(),6);
Serial.print("GyroX: ");
Serial.print(IMU.getGyroX_rads(),6);
Serial.print("\t");
Serial.print("GyroY: ");
Serial.print(IMU.getGyroY_rads(),6);
Serial.print("\t");
Serial.print("GyroZ: ");
Serial.println(IMU.getGyroZ_rads(),6);
Serial.print("MagX: ");
Serial.print(IMU.getMagX_uT(),6);
Serial.print("\t");
Serial.print("MagY: ");
Serial.print(IMU.getMagY_uT(),6);
Serial.print("\t");
Serial.print("MagZ: ");
Serial.println(IMU.getMagZ_uT(),6);
Serial.print("Temperature in C: ");
Serial.println(IMU.getTemperature_C(),6);
Serial.println();
delay(200);
}
Mokili na bisika
-
L'extérieurDatasheet for MPU-9250invensense.com
-
L'extérieurGet the MPU-9250 library from GitHubgithub.com
-
L'extérieurMPU-9250 register mapinvensense.com
Fichiers📁
Aucun fichier disponible.