Autor Tema: mpu6050 como interpretar los datos recibidos  (Leído 30692 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado diego_z

  • PIC16
  • ***
  • Mensajes: 225
mpu6050 como interpretar los datos recibidos
« en: 27 de Mayo de 2013, 16:44:57 »
solucionado

« Última modificación: 15 de Junio de 2013, 16:26:20 por diego_z »
,,,,option,,,,,,,,,,,explicit,,,,,,,

DR800 big a la venta ,solo argentina por privado

Desconectado diego_z

  • PIC16
  • ***
  • Mensajes: 225
Re: mpu6050 como interpretar los datos recibidos
« Respuesta #1 en: 15 de Junio de 2013, 16:23:59 »
bueno gente , veo que a nadie le intereso , ni mi pregunta ni nada , de igual manera , pongo un video del aparatito funcionando , muchas gracias


,,,,option,,,,,,,,,,,explicit,,,,,,,

DR800 big a la venta ,solo argentina por privado

Desconectado julioJF

  • PIC10
  • *
  • Mensajes: 25
Re: mpu6050 como interpretar los datos recibidos
« Respuesta #2 en: 16 de Junio de 2013, 06:30:58 »
Muy bueno .

una pregunta. has utilizado el dmp que trae el chip? qué lenguaje de programación has utilizado?

Desconectado diego_z

  • PIC16
  • ***
  • Mensajes: 225
Re: mpu6050 como interpretar los datos recibidos
« Respuesta #3 en: 16 de Junio de 2013, 21:27:36 »
hola , si te refieres con dmp al hardware que trae el chip ? si  , el lenguaje es assembler
,,,,option,,,,,,,,,,,explicit,,,,,,,

DR800 big a la venta ,solo argentina por privado

Desconectado Vtronic

  • PIC16
  • ***
  • Mensajes: 121
Re: mpu6050 como interpretar los datos recibidos
« Respuesta #4 en: 19 de Junio de 2013, 01:38:20 »
Saludos, creo que el DMP no esta activado, el DMP te da salidas en angulos Euler o cuaterniones, el activarlo es algo mas complejo y según pruebas que he hecho el firmware no cabe en un PIC16F

Desconectado julioJF

  • PIC10
  • *
  • Mensajes: 25
Re: mpu6050 como interpretar los datos recibidos
« Respuesta #5 en: 19 de Junio de 2013, 04:06:57 »
Hola Vtronic .

Cuánta memoria necesitas para activar el DMP ?

Desconectado diego_z

  • PIC16
  • ***
  • Mensajes: 225
Re: mpu6050 como interpretar los datos recibidos
« Respuesta #6 en: 19 de Junio de 2013, 11:19:07 »
bien , ahora entiendo la pregunta , te referias al fifo del chip , si esta habilitado
,,,,option,,,,,,,,,,,explicit,,,,,,,

DR800 big a la venta ,solo argentina por privado

Desconectado Vtronic

  • PIC16
  • ***
  • Mensajes: 121
Re: mpu6050 como interpretar los datos recibidos
« Respuesta #7 en: 19 de Junio de 2013, 15:55:11 »
tengo 27336 bytes aproximadamente en un PIC24FJ,  y 24038 bytes en un PIC18 la diferencia es porque en el primero tengo mas memoria que en el segundo, así que puedo usar mas funciones pero es solo lo básico, con salida en cuaterniones, el PIC24FJ con C30 y el otro con C18


El DMP, digital motion processor, es una caracteristica del chip que te da la salida en cuaterniones o en ángulos euler, no hay necesidad de hacer calcularlos en un pic el chip lo hace internamente pero es algo complicado hacerlo funcionar por falta de documentación de parte del fabricante pero las prestaciones que da hace que valga la pena el esfuerzo, hay varios videos en Youtube sobre el funcionamiento del DMP con arduino, Yo ya tengo las librerías funcionando para Microchip pero esperare completarlas mas para publicarlas

La FIFO es una buena opción para la lectura de datos porque evitas tomar la lectura en tiempos diferentes, lo que te afecta en los cálculos, si la estas usando te recomiendo emplear la interrupción, aunque sea a nivel software, y emplear la lectura burst en el I2C

Desconectado julioJF

  • PIC10
  • *
  • Mensajes: 25
Re: mpu6050 como interpretar los datos recibidos
« Respuesta #8 en: 19 de Junio de 2013, 16:07:24 »
Hola,

yo también estoy intentando controlar el MPU pero utilizando un AVR de 8 bits. La tarea en la que estoy actualmente es escribir el código en C basándome en el proyecto ejemplo que publica el fabricante (driver5.1 para un MSP430). Mi intención final es obtener la orientación actual del chip, y lo que me gustaría es poder leer en un instante determinado que se requiera el valor de la orientación actual en cuaterniones. No necesito estar constantemente leyendo la orientación por lo que en principio no utilizaré las interrupciones. ¿Vosotros estáis utilizando interrupciones? ¿Con qué finalidad?

Un saludo.

Desconectado Vtronic

  • PIC16
  • ***
  • Mensajes: 121
Re: mpu6050 como interpretar los datos recibidos
« Respuesta #9 en: 19 de Junio de 2013, 21:51:23 »
Yo utilizo las interrupciones cuando empleo la lectura en modo burst en la FIFO, para leer todas las variables y que todas las variables pertenezcan a un mismo tiempo de toma de datos, en el DMP todavía no la he activado ya que según he entendido ya no se dan  este tipo de errores

el tamaño que di para la librería es pequeño porque fue extraída utilizando los datos del trafico I2C el cual se utiliza en arduino no de las librerías dadas por el fabricante, con el driver5.1 para MSP430 lo que no tengo claro es que si podemos usar ese código sin restricciones?

Desconectado julioJF

  • PIC10
  • *
  • Mensajes: 25
Re: mpu6050 como interpretar los datos recibidos
« Respuesta #10 en: 20 de Junio de 2013, 05:22:34 »
Hola Vtronic, perdona mi ignorancia pero soy nuevo con este tipo de sensores.

Con respecto a la lectura Burst, a ver si me aclaras un poco esto. Yo entiendo que el MPU va llenando su FIFO con los datos que va procesando y cuando esté llena te lanza una interrupción (a través de su pin 12 INT) y tú entonces lees todos esos datos almacenados en esa FIFO y la vacías y se vuelve a repetir la historia. ¿Es así? Y con respecto a la FIFO, ¿qué pasa si se llena y tú no lees los datos? ¿Se sobreescriben los valores o no se escribe nada hasta que se vacie?

¿Qué tipo de errores dices que se daban antes?

y en cuanto a las restriciones del código yo tampoco me he parado todavía, pero parece que hay un revuelo enorme por las restricciones impuestas por el fabricante.

Desconectado Vtronic

  • PIC16
  • ***
  • Mensajes: 121
Re: mpu6050 como interpretar los datos recibidos
« Respuesta #11 en: 21 de Junio de 2013, 22:15:23 »
la lectura Burst creo que se puede decir que es cuando lees los datos en una solo secuencia, es decir entablas una lectura en el I2C y en esa misma lectura lees toda la FIFO, 1024 bytes, sin necesidad de finalizar y empezar una nueva lectura para los 1024 bytes

en la pagina 36 del documento MPU60X0 Specifications.pdf proporcionado por el fabricante explica la secuencia para hacer este tipo de lectura y escritura

si tienes la interrupción configurada para FIFO overflow, si es como dices, pero la FIFO contiene 1024 bytes y si lees los datos del acelerometro, giroscopio y de temperatura solo necesitas 14 bytes osea que configurando la interrupción para FIFO overflow se estarían perdiendo varias muestras en lo que se llenan los 1024 bytes, tendrias que configurar la interrupción para que se active cuando se tengan datos nuevos, seria la opción data ready

y con la FIFO no se si se sobrescriben los datos lo que si se es que si no se lee se produce una interrupción del tipo FIFO overflow, se puede leer o se vacia la FIFO por medio de los registros, esto me sucedía cuando fallaba el DMP

el tipo de error es leer los sensores en tiempos diferentes, supongamos que se efectuá la lectura del acelerometro y del giroscopio, se lee el acelerometro en un t=0 y el giroscopio en un t=1 ambos son datos validos pero en tiempos diferentes, al querer procesar una ecuación con los datos anteriores tendremos un error porque las muestras no pertenecen a un mismo tiempo




Desconectado julioJF

  • PIC10
  • *
  • Mensajes: 25
Re: mpu6050 como interpretar los datos recibidos
« Respuesta #12 en: 22 de Junio de 2013, 04:21:48 »
Hola Vtronic,

desde mi punto de vista creo que también se emplea el término Burst para la lectura o escritura continuada en un proceso I2C, pero cuando el MPU se refiere a una lectura Burst de la FIFO no creo que se refiera a eso, o por lo menos eso espero, ya que sino sólo para leer la FIFO debes tener libres 1KB de memoria de datos !!, y me parece una burrada, aunque todo puede ser.

Con respecto al funcionamiento de la FIFO, creo que ya estoy a punto de acabar un programilla para empezar a experimentar con ella y te seguiré contando para comparar nuestros resultados.

Desconectado Vtronic

  • PIC16
  • ***
  • Mensajes: 121
Re: mpu6050 como interpretar los datos recibidos
« Respuesta #13 en: 23 de Junio de 2013, 13:31:42 »
Que tal

Si se refiere a lo mismo, pero no es necesario que se llene toda la FIFO para que la leas, con los registros 0x72 y el 0x73 puedes saber el numero de datos que hay almacenados en la FIFO aunque esta tenga el tamaño de 1024 bytes la puedes leer antes que llegue a ese valor, por ejemplo cuando se activa el DMP se espera a que la FIFO tenga 42 bytes, o 44 no recuerdo bien,  y se esta en constante monitoreo

Aunque puedes leerla cuando ocurra el overflow y se dispare la interrupción pero como comentaste tendrías que tener esta cantidad de bytes libres aunque pueda que en algunos proyectos sea necesaria utilizarla, y ahora que recuerdo si ocurre un overflow los datos se sobre escriben ya que es una FIFO

Desconectado julioJF

  • PIC10
  • *
  • Mensajes: 25
Re: mpu6050 como interpretar los datos recibidos
« Respuesta #14 en: 03 de Julio de 2013, 16:49:24 »
Hola de nuevo,

ya he conseguido obtener los datos en cuaterniones utilizando el DMP del chip y puedo también configurar la velocidad de envío de datos que me entrega el DMP. Bueno, parece que funciona bastante bien. Mi siguiente gran problema es que ahora he substituido el MPU-6050 por el MPU-9150 y todo va igual de bien excepto que no soy capaz de que el DMP me entregue los cuaterniones teniendo en cuenta ya el magnetómetro.

¿Alguien ha probado a utilizar un MPU-9150 con el DMP y el magnetómetro? Agún aporte??

Un saludo.


 

anything