https://github.com/albert-alvarez/roboticsub-imu
Librería Arduino simplificada para la IMU MPU-9250
https://github.com/albert-alvarez/roboticsub-imu
arduino imu library mpu-9250
Last synced: about 2 months ago
JSON representation
Librería Arduino simplificada para la IMU MPU-9250
- Host: GitHub
- URL: https://github.com/albert-alvarez/roboticsub-imu
- Owner: Albert-Alvarez
- License: gpl-3.0
- Created: 2020-10-19T13:33:56.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-11-06T11:12:36.000Z (over 5 years ago)
- Last Synced: 2025-02-22T20:16:48.960Z (over 1 year ago)
- Topics: arduino, imu, library, mpu-9250
- Language: C
- Homepage:
- Size: 87.9 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Librería de Arduino para MPU-9250
Esta librería encapsula la librería original de [Sparkfun](https://github.com/sparkfun/SparkFun_MPU-9250-DMP_Arduino_Library) con tal de ofrecer nuevos métodos que simplifiquen el desarrollo con la IMU MPU-9250 durante las clases de Robótica del Grado de Ingeniería Biomédica de la Universitat de Barcelona. De igual modo, siguen estando disponibles las funciones avanzadas que ofrece la librería original de [Sparkfun](https://github.com/sparkfun/SparkFun_MPU-9250-DMP_Arduino_Library).
## Instalación
### Método 1
- Descargar el repositorio en una carpeta local.
- Descomprimir los contenidos del archivo descargado en una carpeta con el mismo nombre que el archivo principal del proyecto de Arduino. En este caso, `roboticsub-imu`.
- Modificar el archivo `roboticsub-imu.ino` a conveniencia.
### Método 2
- Descargar el repositorio en una carpeta local.
- Descomprimir los contenidos del archivo descargado.
- Copiar la carpeta `src` en la carpeta que contiene nuestro proyecto de Arduino.
- Hacer el *include* pertinente en el *sketch* principal de Arduino:
```c++
#include "src/RoboticsUB.h"
```
## Uso
A ser una expansión de la librería de Sparkfun, el uso es exactamente el mismo que el descrito en la [página oficial](https://learn.sparkfun.com/tutorials/9dof-razor-imu-m0-hookup-guide#using-the-mpu-9250-dmp-arduino-library). La única diferencia es que debemos de crear un objeto de tipo `IMU`.
```c++
IMU imu;
```
A continuación, se describen las funciones añadidas.
#### Install()
Inicia la comunicación con la IMU y configura sus registros.
```c++
imu.Install();
```
#### ReadSensor()
Realiza la lectura de los valores de la IMU.
```c++
imu.ReadSensor();
```
#### GetQuaternion()
Devuelve un puntero a un vector con el cuaternión de la orientación de la IMU. Los valores devueltos corresponden a los últimos obtenidos mediante la función `ReadSensor()`.
```c++
float * q;
q = imu.GetQuaternion();
```
Los elementos `0`, `1`, `2` y `3` del vector corresponden a los componentes `w`, `x`, `y` y `z`, respectivamente, del cuaternión `q = w + xi + yj + zk`.
#### GetRPY()
Devuelve un puntero a un vector con el *roll*, *pitch* y *yaw* de la orientación de la IMU. Los valores devueltos corresponden a los últimos obtenidos mediante la función `ReadSensor()`.
```c++
float * rpy;
rpy = imu.GetRPY();
```
Los elementos `0`, `1` y `2` del vector corresponden a los componentes *roll*, *pitch* y *yaw*, respectivamente.
#### Otros
El pin de interrupciones `INT` del MPU-9250 está activado para su uso.
## Ejemplo
El ejemplo incluido para Arduino envía el RPY vía serie para interactuar con el simulador RoboDK. El repositorio también contiene el archivo python utilizado en el simulador RoboDK en `_roboDK/RoboticsUB-TCP_Endowrist_from_IMU.py`.
## Licencia
Copyright (c) Albert Álvarez Carulla. Todos los derechos reservados.
Licenciado bajo licencia [GNU GPLv3](./LICENSE).