Helicopteros Radio Control - RC - Radiocontrol Helicopteros Radio Control - RC - Radiocontrol Helicopteros Radio Control - RC - Radiocontrol
Noticias: Bienvenidos a Helicopteros RC / Radiocontrol
 
*
Bienvenido(a), Visitante. Por favor, ingresa o regístrate. 09 de Mayo de 2024, 09:01:47


Ingresar con nombre de usuario, contraseña y duración de la sesión


Páginas: [1] 2
  Imprimir  
Autor Tema: Nuevo Firmware Multiwii 2.0  (Leído 12396 veces)
0 Usuarios y 1 Visitante están viendo este tema.
xanon
Estacionarios
**

Reputacion: +1/-0
Desconectado Desconectado

Mensajes: 68



WWW
« : 01 de Abril de 2012, 21:42:26 »

Hola a todos, Alex y compañia han sacado la version final 2.0 para multiwii. Ya se que quedamos pocos seguidores del sistema multiwii, pero este fin de semana he actualizado el quad a la 2.0 y se ha vuelto loco, hasta me ha pegado con una hélice!

A parte de las supuestas mejoras en cuanto a estabilización, GPS, control de altura, etc., que creo que es donde estan trabajando, alguien sabe si hay alguna modificación de motores, orientación de sensores, no se, yo he revisado el código y no he sido capaz de ver ningún cambio tan drástico para que el bicho se vuelva loco.

En el GUI lo único que he visto es que me ha cambiado el PITC por el ROLL y no se porque!

Aguien ha probado esta versión?

Saludos
En línea

   
mgros
Estacionarios
**

Reputacion: +0/-0
Desconectado Desconectado

Mensajes: 218


Zaragoza


« Respuesta #1 : 01 de Abril de 2012, 21:52:14 »

La he probado con mi QUAD y mi HEXA y funciona correctamente, pero ojo, usando sensores individuales (no una placa que contenga varios) hay que cambiar las orientaciones.
Por ejemplo si usas el WMP y BMA180, tienes que cambiar los ajustes del acelerómetro.

Código:
//if you want to change to orientation of individual sensor 
#define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  =  -X; accADC[PITCH]  = -Y; accADC[YAW]  = Z;}
//#define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  =  Y; accADC[PITCH]  = -X; accADC[YAW]  = Z;} original
//#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = -Y; gyroADC[PITCH] =  X; gyroADC[YAW] = Z;}
//#define MAG_ORIENTATION(X, Y, Z)  {magADC[ROLL]  = X; magADC[PITCH]  = Y; magADC[YAW]  = Z;}
« Última modificación: 01 de Abril de 2012, 21:56:29 por mgros » En línea
CAYESA
Hago de todo
********

Reputacion: +44/-1
Desconectado Desconectado

Mensajes: 4.504


Volando por Barcelona


WWW
« Respuesta #2 : 02 de Abril de 2012, 08:06:14 »

Pocos pero fieles... La probaré estas vacaciones en el avatar-copter a ver si realmente tiene mejoras de estabilización.

Un saludo
En línea
xanon
Estacionarios
**

Reputacion: +1/-0
Desconectado Desconectado

Mensajes: 68



WWW
« Respuesta #3 : 02 de Abril de 2012, 10:29:25 »

OK gracias, revisare la orientación. Yo llevo el WMP, el BMA180 y el HCM5083 orientados tal como marca en la serigrafia de la placa, pero claro puede ser que esten todos girados. Lo mirare y ya os comento.
En línea

   
mgros
Estacionarios
**

Reputacion: +0/-0
Desconectado Desconectado

Mensajes: 218


Zaragoza


« Respuesta #4 : 02 de Abril de 2012, 17:29:40 »

Con lo que comentas seguro que tienmes que cambiar la orientación, para WMP y BMA180 pon lo que he pasado en el post anterior y verifica el funcionamiento en el GUI, para el magnetometro tendras que hace pruebas con este criterio en los valores que tre marca el GUI.

How should be the sensor axis directionsTILT the MULTI to the RIGHT (left side up):
  • MAG_ROLL, ACC_ROLL and GYRO_ROLL goes up
  • MAG_Z and ACC_Z goes down
TILT the MULTI forward (tail up):
  • MAG_PITCH, ACC_PITCH and GYRO_PITCH goes up
  • MAG_Z and ACC_Z goes down
Rotating the copter clockwise (YAW):
  • GYRO_YAW goes up
The copter stays level:
  • MAG_Z is positive ; ACC_Z is positive
En línea
xanon
Estacionarios
**

Reputacion: +1/-0
Desconectado Desconectado

Mensajes: 68



WWW
« Respuesta #5 : 02 de Abril de 2012, 20:53:37 »

Bueno, a falta de prueba de vuelo, en el GUI ya veo que ahora funciona bien. Ha quedado asi:

//if you want to change to orientation of individual sensor
#define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  =  X; accADC[PITCH]  = Y; accADC[YAW]  = Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = Y; gyroADC[PITCH] =  -X; gyroADC[YAW] = -Z;}
//#define MAG_ORIENTATION(X, Y, Z)  {magADC[ROLL]  = X; magADC[PITCH]  = Y; magADC[YAW]  = Z;}

Otra cosa que he visto y no se su significado es el PASSTRHU y el HEADFREE   

Mañana intentare hacer alguna prueba de vuelo. Gracias por la ayuda.
En línea

   
mgros
Estacionarios
**

Reputacion: +0/-0
Desconectado Desconectado

Mensajes: 218


Zaragoza


« Respuesta #6 : 02 de Abril de 2012, 23:02:58 »

Bueno, a falta de prueba de vuelo, en el GUI ya veo que ahora funciona bien. Ha quedado asi:

//if you want to change to orientation of individual sensor
#define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  =  X; accADC[PITCH]  = Y; accADC[YAW]  = Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = Y; gyroADC[PITCH] =  -X; gyroADC[YAW] = -Z;}
//#define MAG_ORIENTATION(X, Y, Z)  {magADC[ROLL]  = X; magADC[PITCH]  = Y; magADC[YAW]  = Z;}

Otra cosa que he visto y no se su significado es el PASSTRHU y el HEADFREE   

Mañana intentare hacer alguna prueba de vuelo. Gracias por la ayuda.

 
PASSTRHU es para si lo usas con aviones "bypassear" el HW y que las ordenes de la radio vayan directas a los servos (PASAR A TRAVES)
HEADFREE es la opción que usando magnetometro te permite que una vez activada (y con el magnetometro bien calibrado) indepedientemente de hacia donde mire el multicoptero se mantenga en la emisora la funcion de adelante-atras-izquierda-derecha de la misma manera que cuando la has activado. Es decir si adelante era alejarse de ti, segira siendo lo mismo independiente de haciadonde mire el bicho, lo que facilita su manejo ya no tienes que invertir los mandos cuando el morro te mira a ti. En otros SW creo se llama CAREFREE.
En línea
bitman
Estacionarios
**

Reputacion: +2/-0
Desconectado Desconectado

Mensajes: 88



« Respuesta #7 : 22 de Abril de 2012, 16:52:32 »

La he probado con mi QUAD y mi HEXA y funciona correctamente, pero ojo, usando sensores individuales (no una placa que contenga varios) hay que cambiar las orientaciones.
Por ejemplo si usas el WMP y BMA180, tienes que cambiar los ajustes del acelerómetro.

Código:
//if you want to change to orientation of individual sensor 
#define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  =  -X; accADC[PITCH]  = -Y; accADC[YAW]  = Z;}
//#define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  =  Y; accADC[PITCH]  = -X; accADC[YAW]  = Z;} original
//#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = -Y; gyroADC[PITCH] =  X; gyroADC[YAW] = Z;}
//#define MAG_ORIENTATION(X, Y, Z)  {magADC[ROLL]  = X; magADC[PITCH]  = Y; magADC[YAW]  = Z;}


Yo tengo el WMP (chino, pero siempre fue bien) y el bma180. Activé el BMA en la parte donde correspondiente, pero no me queda claro el tema de la orientación. He añadido esa línea a las 3 que había, dejándolo tal que así:

//if you want to change to orientation of individual sensor
#define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  =  -X; accADC[PITCH]  = -Y; accADC[YAW]  = Z;}
//#define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  =  Y; accADC[PITCH]  = -X; accADC[YAW]  = Z;}
//#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = -Y; gyroADC[PITCH] =  X; gyroADC[YAW] = Z;}
//#define MAG_ORIENTATION(X, Y, Z)  {magADC[ROLL]  = X; magADC[PITCH]  = Y; magADC[YAW]  = Z;}

Pero en el GUI se me vuelve loco, después se estabiliza, después vuelve a írsele la olla...descarto sensores ya que acabo de meterle la 1.9 y vuela perfect.

¿Alguien sabe qué pasa?

Saludos
En línea
mgros
Estacionarios
**

Reputacion: +0/-0
Desconectado Desconectado

Mensajes: 218


Zaragoza


« Respuesta #8 : 22 de Abril de 2012, 20:32:44 »

¿Has calibrado los acelerometros despues de cambiar de versión?
 
Es muy importante en cada cambio de version antes de probar calibrar ACC y MAG (si existen)
 
Espero resuelva tu problema.
 
En línea
xanon
Estacionarios
**

Reputacion: +1/-0
Desconectado Desconectado

Mensajes: 68



WWW
« Respuesta #9 : 22 de Abril de 2012, 20:55:41 »

Siento no haber dado señales de vida antes , la prueba de vuelo fue casi perfecta (he de bajar algunos valores porque "aletea" un poco.

Yo tenia el mismo problema de BITMAN, no se porque en esta versión han cambiado la orientación de los sensores, siguiendo los consejos del experto MGROS, cambie la configuració en las lineas que me dijo y despues de un rato haciendo pruebas conseguí que funcionara correctamente. BITMAN te recomiendo que empieces por los giros y luego los acelerómetros o al reves, porque si los vas cambiando todos a la vez te vas a vover loco (es lo que me paso a mi).

Con el barómetro y el control de altura no lo tengo muy claro, creo entender (aunque no se si es asi) que cuando se activa desde la radio el BMA, este memoriza la altura y deberia mantenerla dentro de unos límites??? La cosa es, que subo el quad a una cierta altura y se muestra super estable, pero si le quito motor baja. No se si me explico, no actua como un bloqueo de cola como tal y no se si debe ser asi.

En mi humilde opinión, creo que esta versión ha mejorado bastante el comportamiento del quad y es muy estable. La funcion del HEADFREE es una pasada cuando pierdes la orientación, aunque para volar normalmente no sea muy recomendable.

Saludos
En línea

   
bitman
Estacionarios
**

Reputacion: +2/-0
Desconectado Desconectado

Mensajes: 88



« Respuesta #10 : 23 de Abril de 2012, 14:07:45 »

Hola,

Pero donde se cambia la config de los gyros? solo toqué el acelerómetro añadiendo la línea que puse arriba.

#define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  =  -X; accADC[PITCH]  = -Y; accADC[YAW]  = Z;}

Lo de calibrar siempre lo hago desde el GUI cuando hago cualquier cambio (calibrate ACC) y como digo, se mantiene estable, pero al cabo del rato empieza como a girar solo sin control...

Saludos.
En línea
mgros
Estacionarios
**

Reputacion: +0/-0
Desconectado Desconectado

Mensajes: 218


Zaragoza


« Respuesta #11 : 23 de Abril de 2012, 16:55:05 »

Hola,

Pero donde se cambia la config de los gyros? solo toqué el acelerómetro añadiendo la línea que puse arriba.

#define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  =  -X; accADC[PITCH]  = -Y; accADC[YAW]  = Z;}

Lo de calibrar siempre lo hago desde el GUI cuando hago cualquier cambio (calibrate ACC) y como digo, se mantiene estable, pero al cabo del rato empieza como a girar solo sin control...

Saludos.

los giros se cambian con la línea //#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = -Y; gyroADC[PITCH] = X; gyroADC[YAW] = Z;}
para ello debes seguir estos criterios:

How should be the sensor axis directions
TILT the MULTI to the RIGHT (left side up):

  • MAG_ROLL, ACC_ROLL and GYRO_ROLL goes up
  • MAG_Z and ACC_Z goes down
TILT the MULTI forward (tail up):

  • MAG_PITCH, ACC_PITCH and GYRO_PITCH goes up
  • MAG_Z and ACC_Z goes down
Rotating the copter clockwise (YAW):

  • GYRO_YAW goes up
The copter stays level:

  • MAG_Z is positive ; ACC_Z is positive
No obstante no es normal que en GUI empiece estable y de pronto empiece a hacer giros, comprueba que tienes todo correctamente configurado, que no tienes errores I2C, que estas usando el GUI adecuado con la versión.

Pon un video con lo que te sale el GUI para ver que podria ser.
« Última modificación: 23 de Abril de 2012, 17:16:35 por mgros » En línea
bitman
Estacionarios
**

Reputacion: +2/-0
Desconectado Desconectado

Mensajes: 88



« Respuesta #12 : 23 de Abril de 2012, 20:42:51 »

Hola, te voy a poner los cambios que hice en el código:

#define QUADP => vuela en + y no en x.
#define BMA180 => tengo este acelerómetro.
#define MOTOR_STOP => para que no me arranque las manos cuando estoy haciendo pruebecillas en mi casa.

#define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  =  Y; accADC[PITCH]  = -X; accADC[YAW]  = Z;} => orientación acelerómetro
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = -Y; gyroADC[PITCH] = X; gyroADC[YAW] = Z;} => orientación gyro.

Y aquí el vídeo que acabo de hacer. Como ves le doy 2 veces al acc calibrate y esta vez incluso sucede más rápido que la anterior vez (antes eran varios segundos, ahora es casi al momento).


<a href="http://www.youtube.com/v/br3-SZr3uBE&amp;ap=%2526fmt%3D18&amp;rel=0" target="_blank">http://www.youtube.com/v/br3-SZr3uBE&amp;ap=%2526fmt%3D18&amp;rel=0</a>



No tiene sentido que fueran de sensores, con la 1.9 se mantiene estable y bien...tiene que ser algo de configuración, pero no tengo ni idea.

Gracias! Saludos.
En línea
xanon
Estacionarios
**

Reputacion: +1/-0
Desconectado Desconectado

Mensajes: 68



WWW
« Respuesta #13 : 23 de Abril de 2012, 20:59:18 »

Yo veo que no te lee el gyro, lo tienes desactivado? Podria ser que el arduino estubiera esperando datos del gyro y al no tenerlos haga eso No se, es solo una idea.
En línea

   
bitman
Estacionarios
**

Reputacion: +2/-0
Desconectado Desconectado

Mensajes: 88



« Respuesta #14 : 23 de Abril de 2012, 21:05:01 »

Si pero como lo habilito? que yo sepa hasta ahora no tuve que habilitarlo en el código, ya que lo cogía "por defecto". Si muevo el quad si que se mueve, pero claro no como debería porque desborda, aunque si para el lado correcto,
EDITO: Vale, parece que el gyro no recibe puesto que está a 0,0,0 pero es que no muevo el quad...si lo muevo si que varían esos valores.

Gracias, Saludos.
« Última modificación: 23 de Abril de 2012, 21:18:35 por bitman » En línea
Páginas: [1] 2
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.4 | SMF © 2006, Simple Machines LLC
TinyPortal v0.9.8 © Bloc


Copyright ©2007-2023 www.HelicopterosRC.net
XHTML 1.0 válido! CSS válido! Dilber MC Theme by HarzeM modified by Madcortina