Arduino Forum

International => Español => Software => Topic started by: JotaStar on Nov 06, 2014, 09:30 pm

Title: ITG3205 + ADXL335 + Processing
Post by: JotaStar on Nov 06, 2014, 09:30 pm
Hola,

Alguien ha logrado hacer funcionar estos dos componentes sin ningún tipo de error / deriva con processing?

Explayándome más diré que llevo un par de semanas pegándome con estos dos componentes en una PCB.

He logrado ponerlos juntos y programar la típica cajita de processing que gira según detecta la velocidad angular del gyro y el acelerómetro, pasándole antes el filtro complementario.

He seguido bastantes guías y la pregunta más básica que me surge esq estos modelos, cerca de un ángulo de 90º falla, cierto? Es decir, del Yaw "me olvido" pq solo con el gyro estoy vendido a tener deriva ya que hasta donde sé, no puedo "filtrarlo" ya que el acelerómetro no me sirve de mucho en ese eje... Pero en cuanto al pitch y el roll, cuando llego en uno de los dos ejes cerca de 90º, al cambiar el ángulo del acelerómetro en ese eje se "vuelve" loco...

He pedido un IMU de 9DOF para hacer pruebas, pero tenía estos dos componentes por casa y quería ver si podía conseguir hacer una rotación completa en pitch & roll... y no lo logro...

Alguien tiene experiencia con estos componentes?

Decir q el ITG3205 + ADXL335 es muy parecido al MPU6050 (éste tiene el ADXL345 pero creo q es básicamente lo mismo) y usando código de este IMU tampoco he conseguido hacer los 360º en X / Y sin problemas...

Pongo unos cuantos links que me sirvieron de referencia... O si alguien quiere código no tengo problemas en ponerlo aquí o pasarlo.

Gracias.

https://github.com/TKJElectronics/Example-Sketch-for-IMU-including-Kalman-filter/tree/master/IMU/MPU6050
http://www.pieter-jan.com/node/11
https://sites.google.com/site/myimuestimationexperience/filters/complementary-filter
http://www.geeetech.com/forum/viewtopic.php?f=8&t=1884

Title: Re: ITG3205 + ADXL335 + Processing
Post by: surbyte on Nov 06, 2014, 10:03 pm
Usas filtro de Kalman (http://robottini.altervista.org/kalman-filter-vs-complementary-filter#comments)?

Yo se que no se pueden usar asi como estan. Tengo muchos enlaces que lo demuestran

Lee esto

The use of accelerometer and gyroscope to build little robots, such as the self-balancing, requires a math filter in order to merge the signals returned by the sensors.
The gyroscope has a drift and in a few time the values returned are completely wrong. The accelerometer, from the other side,  returns a true value when the acceleration is progressive but it suffers much the vibrations, returning values of the angle wrong.

Title: Re: ITG3205 + ADXL335 + Processing
Post by: JotaStar on Nov 06, 2014, 10:44 pm
He usado el filtro complementario y el filtro kalman para ver cual era el mejor resultado...

Como bien dices, el acelerómetro coge mucha vibración y encima te tienes que desprender de los acelerones grandes que puedas pegar... y por otro lado el gyro es bueno para obtener el ángulo pero genera mucha deriva... para eso se usan estos filtros, para desprenderte de esas derivas.

Pero, básicamente la pregunta es si con estos dos componentes puedes obtener un moviento de 360º en ambos ejes (x e y)... yo, por lo q he leido... no.

El no viene de que con el acelerómetro, en estado estacionario (sobre la mesa), sufre 1G en el eje Z como es de esperar... y conforme lo vas girando (por ejemplo hacia un lado (pitch)) la fuerza G va hacia ese eje... el problema es cuando llegas al ángulo cercano a 90º, donde el eje Z deja de tener 1G de fuerza (ya q lógicamente está ahora sobre el eje Y... por lo que las funciones de atan2 te da un valor erróneo...

No sé si me explico bien...

Fíjate en este vídeo como en la demo que hace no pasa de los 90º https://www.youtube.com/watch?v=qmd6CVrlHOM


En este otro se me bien lo que comento de la fuerza G, en los valores ACC, cuando rota, el tercero (Z) baja en función sobre el eje q rota... fíjate nuevamente que de 90º no pasa...


Y yo lo que quiero conseguir es esto, aunque sea solo en dos ejes (sin el yaw / y): https://www.youtube.com/watch?v=-UKBL-VDs14

... que como dije... creo que no es posible.

En resumidas cuentas, he conseguido implementar un sistema que me diga la posición (usando filtro kalman o complementario, incluso otro más rudimentario q hice q también me vale), pero la duda me viene el si es posible hacerlo más allá de los 90º.

Gracias por tu respuesta.

Title: Re: ITG3205 + ADXL335 + Processing
Post by: surbyte on Nov 07, 2014, 12:29 am
Fijate en MPU6050 (http://forum.arduino.cc/index.php?topic=276940.0)
me parece que estan sintonizados en el mismo problema.
Title: Re: ITG3205 + ADXL335 + Processing
Post by: JotaStar on Nov 07, 2014, 11:04 am
Gracias, continuo allí.