MultiWii Mi home made quadx

Tema en 'Arduino / Multiwii' iniciado por rortega, 9 Jun 2012.

  1. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    Os presento oficialmente mi proyecto personal de quadcopter completamente artesanal (tanto chasis como controladora). Está basado en multiwii con mi propio clone de arduino + wii motion plus + nunchuk.


    [​IMG]

    Empecé hace unos cuatro meses, comprando y esamblando varias piezas de aluminio ligero en forma te T y tornillos en el Leroy M., usando como soporte central un disco metálico extraido de una unidad de disco duro barracuda de 20 GB, con 4 motores Turnigy 2632 Brushless Motor 1000kv (ojo estos motores no son pusher, no los compréis para quad) y 4 variadores Hobbyking SS Series 18-20A ESC (no he tenido problema alguno con ellos), batería lipo 2200 mah 3s y radio Hobby King 2.4Ghz 6Ch Tx & Rx V2 (Mode 1) (ojo, lo normal es comprar Mode2, yo compré Mode1 porque no había en stock y tenía pensado empezar con algo barato para continuar con algo mejor más adelante, sólo necesitaba algo barato con lo que poder gobernar el invento), hélices de plástico, … , comprados de hobbyking. Las bancadas tuve construirlas en tubo de aluminio de 25x25 mm porque los motores los compré por error invertidos. Como controladora usba un Arduino UNO alque conecté los distintos elementos siguiendo los diagramas para un Arduino Pro Mini.


    [​IMG]

    El sistema funcionaba, tras muchas pruebas indoor (en el garaje) con el quadcopter amarrado a una tabla, conectado por cable usb y alimentado con una fuente ATX vieja de ordenador (que terminé quemando), decidí realizar los primeros despegues en campo abierto.




    http://youtu.be/tGfw6fSziW0


    Despegaba, pero en uno de ellos se fué de repente hacia un lado, se giró y calló empicado al suelo. Usaba por aquel entonces la versión 2.0 de multiwii y parece ser que tenía algún bug (supongo ya estará corregido). El resultado fue el chasis destrozado, era muy endeble por ser tan ligero.

    Desarrollé la segunda versión de chásis, esta vez con tubos de 16x16mm y como soporte central dos piezas en forma de estrella sacadas de una tabla de cortar de cocina de esas que venden los chinos. Y fabriqué sobre placa perforada una IMU para el Arduino sobre la que coloqué el WMP y el NCHK, amortiguados por una fina capa de goma de bicicleta. Como software usaba la versión 1.9 de multiwii.


    [​IMG]



    El invento ya volaba, aunque el piloto era nefasto y por falta de práctica lo estrellaba con bastante frecuencia, rompiendo muchas hélices de esas malas de plástico que venden en hobbyking que, por cierto, hay que taladrar para poder pasar el eje por ellas (no las compréis nunca que ni tan siguiera están balanceadas).



    http://youtu.be/P2Pl6FQfIkM


    Entre los primero problemas que detecté estaban el tren de aterrizaje, que estaba hecho con láminas de aliminio compradas también en Leroy M. y que, debido a los aporrizajes, no aguantó. Pero ese no era el más grave, lo peor eran los golpes que se llevaban los motores, debido a que estaban al aire, al extremo... así que tenía un plan con ellos, tirarlos y comprar motores pusher o invertirlos.



    Invertí los ejes de los motores y, de paso, construí el tercer chásis, nuevamente con tubos de 16x16mm, sólo que esta vez ya podía colocarlo con sus bancadas sobre los brazos de aluminio. Como soporte central utilicé un material compuesto de dos finísimas capas de aluminio y, entre ambas, un material similar a un contrachapado que desconozco, siendo muy ligero y resistente a la vez.


    [​IMG]


    En este diseño situé la batería sobre el soporte central, entre los dos brazos traseros. Creo que este es uno de los lugares más seguros para que la batería no se lleve ningún golpe.


    Y puse especial interés en el sistema de distribución de la alimentación para los variadores, emplenado par ello placa perforada y estaño:


    [​IMG]


    Tanto este chásis como el anterior soportaban muy bien los golpes y no han tenido deformación alguna, y han sido muchos los golpes. Decidí no usar tren de aterrizaje y, en su lugar, puse gomaespuma de las que llevan algunas cajas de componentes informáticos (soy del gremio de la informática). De esta forma , con los aterrizajes forzosos no sufrirían demasiados daños. Le añadí también un módulo bluetooth comprado en DEALEXTREME (JY-MCU Arduino Bluetooth Wireless Serial Port Module ) que va muy bien con la aplicación de configuración para Android, que en su última versión hasta se puede ver las gráficas de los gyros y acc.


    El sistema volaba de p.m., y con el level activado le daba muchísima estabilidad. Despegaba y volaba sin problemas tanto en acro como en modo acc, debidamente trimados.



    http://youtu.be/QeyXkWb5V1w


    Volar mejor sólo era cuestión de aprender a pilotar bien, por lo que le metí bastantes horas al simulador FMS (ojo, con la emisora hk-t6a no es posible almacenar configuraciones en la propia emisora, por lo que cada vez que usaba el FMS tenía que trimar y al volver al quad físico me veía obligado a trimar nuevamente, una lata). Digo que volava porque tras unos cuantos aporrizajes dejó de hacerlo correctamente. El principal problema estaba en la IMU, se soltaban las soldaduras por culpa de los golpes, pues la tapa de la caja de CDs presionaba sobre los cables y entre tanto abrir y cerrar y tanto aporrizaje. Además un cable que conecta el wmp al nchk también estaba suelto, por el mismo problema. Otro problema que tenía era que las bancadas originales se deformaban por lo que los motores se inclinaban ligeramente y había que cambiar trimado de la radio, parámetros PID...


    Así que había que realizar un cambio profundo. Me resistía y me resisto a comprar una placa de control, pudiendo y siendo capaz de construir la mía propia. Tenía gran parte de los componentes necesarios a mi alcance, sacándolos de tarjetas y fuentes de alimentación antiguas. Sólo me faltaba un cristal de 16MHZ y dos condensadores de 22pf, así que aprobeché y los compré junto a un atmega328 y un zócalo de 28pines por unos 6 € y me puse manos a la obra.


    [​IMG]



    El invento está acabado y funcionando, aunque sólo he realizado unas pruebas indoor de levantar el quad unos cms del suelo, sin trimar ni nada, por no tener disponibles suficientes hélices, ya que de tanto aporrizaje las había machacado casi todas y me he limitado a usar las rotas pegándolas con superglue. Además aún tengo que reconfigurar algún variador que se ha debido desconfigurar al usar una fuente de alimentación de 18 voltios en unas pruebas preliminares de conexionado, y posiblemente modificar algún parámetro básico del código fuente del multiwii. En la placa he contemplado el espacio y conexión necesarias para añadir una placa con el barómetro y el compas comprada por eBay que estoy esperando.


    Y esta es la prueba de que funciona, test realizado esta misma mañana:



    http://youtu.be/q1SL-yLhH-A


    En cuanto tenga hélices nuevas realizaré pruebas en espacio abierto.
     

    Adjuntos:

  2. Japanx Maestro FPV

    Japanx
    Registrado:
    16 Mar 2012
    Mensajes:
    2.179
    Me Gusta recibidos:
    0
    Bravo! Menudo documental más chulo, menuda evolución.
    Estoy empezando a pillar manía a los pilotos de multis... esto cada día me gusta más. Enhorabuena por los diseños y las mejoras.

    Ánimo y sigue contándonos tus aventuras.

    Japanx.
     
  3. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    Recientmente le he añadido una pequeña IMU que lleva integrados los sensores barométricos y magnetómetro. Había dejado preparado el hueco y el conector.

    Así que ha sido llegar los sensores, soldarle el conector macho y pincharla. Y la configuración ha sido también muy simple, tan solo descomentar un par de líneas del codigo fuente compiar y subir.

    Ya os contaré como me ha ido.
     

    Adjuntos:

  4. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    También he incorporado a la placa principal el sistema encargado de la alimentación de los futuros leds que le pondré al quadx.

    Básicamente se trata de un transistor y 5 resistencias, tomando la señal de activado/desctivado que proviene del atmega a través de la base del transistor. Al colector llegan 12 voltios a traves de 4 resistencias para limentar a cada una de las 4 tiras de leds que añadiré más adelante.

    En el archivo config.h es necesario comentar la línea

    #define RCAUXPIN12

    Con esto se indica que el auxiliar2 de la emisora entrará por la patilla D12.

    Además hay que realizar una serie de modificaciones para entregar la señal de la patilla que se usa como triger de la cámara para activar los leds.

    El "hack" seguido es este: http://www.multiwii.com/forum/viewtopic.php?f=15&t=1198
     

    Adjuntos:

    #4 rortega, 6 Jul 2012
    Última edición: 7 Jul 2012
  5. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    En las dós últimas semanas he introducido cambios muy importantes en el Quad que han implicado una mejora sustancial en el comportamiento:

    • Cambio de motores y variadores.
    • Modificación del distribuidor de corriente.
    • Actualización a Multiwii 2.1.
    • Integración de un sonar.
    Tenía un problema que no sabía por atacarle para poder solucionarlo, y es que un motor arrancaba más tarde que el resto, o bien se paraba alguno, etc... Había probado ya de todo, cambiar motores de sitio, cambiar variadores de sitio, sustituirlos los variadores por dos que tenía de respuesto, modificaciones en el código ...



    Los motores no es que estuvieran rotos, pero invertirles los ejes y colocarles los presidiarios al extremo implicaba rozamiento, pérdida de balanceo... Y los variadores no es que me hayan dado problemas, pero por ser plug and play no permiten configurar casi nada.


    A lo que se le unía la placa de distribución de corriente, que la había fabricado con una placa perforada haciendo dos cuadrados concéntricos con estaño, uno para el negativo y el otro para el positivo, donde tenía conectado los ESC y la controladora, lo que podría implicar tambíen interferencias en toda la electrónica. Y para colmo las hélices que tenía pedidas no me llegaban, estaba funcionando con hélices rotas pegadas con Superglue.





    A mí me daba el pálpito de que todo era un cúmulo de cosas y debía de tomar medidas drásticas o estaría toda mi como la pescadilla que se muerde la cola...
     
  6. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    My homemad QuadX: Cambio de Motores y Variadores:

    Por los problemas comentados en el post anterior y pensando en convertirlo en un hexa más adelante, he adquirido de Hobbiking 6 motres, 6 variadores una tarjeta programadora para los esc y varios juegos de hélices, todo de Turnigy

    D2830-11 1000kv Brushless Motor
    TURNIGY Plush 30amp Speed Controller
    TURNIGY BESC Programming Card
    Slow Fly Electric Prop 1045 SF

    La primera impresión al abrir el paquete fue bastante buena, todos los componentes (menos las hélices) llevaban su manaul.

    [​IMG]

    La programación de los variadores ha sido sencillísima con la tarjeta programadora. Con la ayuda del manual y siguiendo la configuración realizada por otros que usan esos mismos ESC, ha sido coser y cantar, ha funcionado a la primera. Nada de pelearse con los pitidos de la emisora... ahí os dejo una imágen de la configuración realizada (esta foto no es mía, la he tomado de otra web que ya no recuerdo cual):


    [​IMG]

    Los motores venían con sus conectores soldados y los cables llevan la camisa de silicona, cosa que se agradece bastante porque su flexibilidad facilita el manejo para el conexionado. Además el adaptador de hélice que traen tiene su capucha y apretarlo es muy facil usando un destornillador, un clavo, etc, y no hay que andar con las llaves inglesas/fijas. Quizás el inconveniente que tienen esos adaptadores es que tienen el agujero poco profundo y queda mucho eje libre, lo que puede implicar vibraciones, pero bueno, más adelante los cambiaré por otros de los que van atornillados, porque este motor incorpora 4 agujeros en la cápsula para tal fin, lo que eliminará un montón de vibraciones.

    [​IMG]

    La verdad que la primera vez que he armado los motores la sensación ha sido buenísima, una pasada el sonido que hacían y la fuerza con la que elevaba el quad. Un lujo en comparación a los motores anteriores y por fín unos motores que pueda colocar sobre los brazos del quad sin tener que modificarlos.

    Y las hélices yo diría que son exactamente (excepto el color) las mismas que compraba en Model Expert en Sevilla, que las venden como EMAX por 2,50 € la pareja. Son idénticas, llevan la inscripción GF y 1045R. Las he comprobado antes de ponerla y están más o menos bien balanceadas y no he notado vibraciones desde el primer momento, no teniendo que tocar los PID el multiwii para corregir vibraciones.

    Las primeras pruebas han sido con el Multiwii 1.9 y han sido muy satisfactorias. Lástima que no he grabado ningún vídeo de las pruebas en el exterior, de momento.
     

    Adjuntos:

  7. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    My homemade QuadX: Actualización a Multiwii 2.1 e integración del sonar

    Con los nuevos motores y variadores y con la versión 1.9 de Multiwii, esta semana he realziado las priemras pruebas del uso del barómetro para intentar mantener la altitud fija.

    Los resultados no han sido muy buenos que digamos, en especial a baja altura, como era de esperar. El Quad se pone a dar botes, es decir estando a cierta altitud, baja de repente, toca el suelo y vuelve a subir, una y otra vez, siendo imposible que mantenga la altitud.

    Tal y como le explicaba a Nuki en este post, este tipo de sensores no son demasiado precisos, aunque últimamente los están mejorando, por lo que no podemos dejar el control de la altitud unicamente al barómetro, siendo necesario la incorporación de sensores adicionales, como es el caso del sensor de ultrasonidos.

    Yo compré uno serie en su día, que me costó muy barato. Concretamente un HC-SR04, que no es el más acertado comprar por varios motivos.

    • Este tipo de sensores requiere dos patillas, una para que lance una señal de ultrasonidos y otra para recoger el tiempo transcurrido en recepcionar "rebotada". Y como se sabe la velocidad del sonido, con un simple cálculo es fácil obtener la distancia en centímetros. Hasta ahí bién, pero muchas de las controladoras llevan como microprocesador un atmega328, lo que supone no disponer de suficientes pines libres para trabajar con sensores tipo serie, ya que hacemos uso de emisoras de más de 4 canales, queremos controlar luces, cámaras, etc....
    • Además manejar el dispositivo requeire un tiempo de proceso del que la conroladora no se puede permitir, un tiempo precioso para dedicarlo a otras tareas mucho más delicada, como procurar que el quad se mantenga en el aire.
    La solución pasaba por adquirir un nuevo sonar tipo I2C, como los de la serie SRF0x (que son caritos), o convertir le que ya tengo en un dispositivo esclavo por bus I2C, que se encargue el solito de gestionar las señales de ultrasonido y hacer los cálculos, devolviéndole a la placa controladora el dato de distancia ya masticado cuando esta se lo solicite.

    Para la segunda opción, la de remangarse, que es de las que a mí me gustan, existe una solución bastante buena y asequible económicamente hablando: Tiny GPS.

    [​IMG]

    Se trata de una implementación de un dispositivo I2C esclavo para gestionar un GPS y un SONAR (serie ambos) con la ayuda de un microprocesador Attiny2313 (los Attiny son muy populares en el mundo de los AVR). Ya está integrado en Multiwii 2.1, junto a otros sensores I2C de ultrasonido.

    Nota: en el momento de escribir este post, en Multiwii 2.1 tan sólo se hace uso del sonar para propósitos de visualización en la interfaz gráfica, no teniendo ningún efecto sobre la función de la altitud del barómetro.
    No obstante, hay quien ya ha incluido algún parche en el código para integrarlo, como se indica en este post del foro oficial de multiwii:
    http://www.multiwii.com/forum/viewtopic.php?f=7&t=1033&hilit=sonar&start=100

    Tengo pedido el pricroprocesador, pero tardará un més más o menos en llegar...y no puedo esperar, así que empecé a darle vueltas al melón.

    He construido mi esclavo I2C con un Arduino UNO, el que uso para mis "experimentos" y que hizo en su día las veces de controladora para el quad. Incorpora un microprocesador atmega328, que va sobrado para lo que queremos hacer, es más, demasiado procesador para algo tan sencillo...

    Lo he conectado de la siguiente forma:

    Pin D8 del Arduino: Señal de disparo (Pin trigger) del HC-SR04.
    Pin D9 del Arduino: Señal de repeción envío datos (Pin Echo) del HC-SR04.

    Pin A4 del Arduino (SDA): Conectado a la señal datos del bus I2C de mi placa controladora.
    Pin A5 del Arduino: (SCL): Conectado a la señal de reloj del bus I2C de mi placa controladora.

    Además, he sacado de la placa controladora los cables de con la tensión y masa ya estabilizada para alimentar al Arduino uno (pines 5V y GND).

    El sonar lo he cogido a un brazo y el Arduino uno lo he colocado en la parte de delante, en la bandeja que había dejado preparada para conlocar una cámara u otra batería... Así es como queda montado todo ...

    [​IMG]

    ... un poco pachanguero, sí, pero estamos en fase experimental.

    Al arduino uno he subido un sketch con el código fuente que he creado a partir de ideas que he ido tomando de aquí y de allá, en especial de:

    http://diydrones.com/profiles/blogs/creating-an-i2c-sonar-for
    http://www.oscardelossantos.es/robo...tancias-hc-sr04-por-ultrasonidos-en-multiwii/

    Simplemente gestiona la señal del sonar, calcula la distancia
    constantemente, y atiende a la petición del maestro (la placa controladora) para entregarle el último valor de distancia. El cálculo de distancia lo perfeccionaré más adelante, para qué haga algún cálculo medio o filtre los valores para no entregar valores erróneos (al final de el post pongo el código fuente):

    Además, en el Multiwii 2.1 he hecho 3 modificaciones para integrar mi sonar:

    • En el archivo config.h he puesto esto:
    Insertar CODE, HTML o PHP:
    ...
    ...
             #define HCSR04_I2C // Este es el sonar serie gestionado por un     Arduino UNO como esclavo I2C
             #define HCSR04_I2C_ADDRESS 0x11 // La dirección para que      Multiwii le pida datos. Le he puesto la misma que al TinyGPS
        ...
    ...
    • En el archivo sensors.ino he metido esto otro:
    Insertar CODE, HTML o PHP:
    ...
    ...
    /////////////////////////////////////////////////////////////////////////////////////
        // AQUÍ EMPIEZA EL CODIGO PARA GESTIONAR EL SONAR HCSR04 POR I2C CON     EL ARDUINO UNO//
    /////////////////////////////////////////////////////////////////////////////////////
        
        #elif defined(HCSR04_I2C)
        inline void Sonar_init() {}
        void Sonar_update() {
          HCSR04_I2C_query();
        }
        void HCSR04_I2C_query(void) {
          int16_t i2c_errors = i2c_errors_count;
          int16_t HCSR04_I2C_Distance_cm;
          /* copy GPS data to local struct */
          i2c_read_to_buf(HCSR04_I2C_ADDRESS, &HCSR04_I2C_Distance_cm,     sizeof(HCSR04_I2C_Distance_cm));
          /* did we generate any errors? */
          if (i2c_errors == i2c_errors_count) {
                sonarAlt = HCSR04_I2C_Distance_cm;
                
                
          }
        }
    /////////////////////////////////////////////////////////////////////////////////////
        ...
    ...
    
    • En el define.h he añadido lo que se marca en negriga para que reconozca mi sonar y así sepa que tiene un sonar I2C conectado.
    Insertar CODE, HTML o PHP:
    I #if defined(SRF02) || defined(SRF08) || defined(SRF10) ||       defined(SRC235) || defined(TINY_GPS_SONAR) || [B]defined(HCSR04_I2C[/B])
            #define SONAR 1
          #else
            #define SONAR 0
          #endif
    Tan sólo me falta modificar el código para que realmente haga uso del dato de altitud reportado por el esclavo y use esta en lugar de la altitud reportada por el barómetro.

    -------------------------------
    -------------------------------
    -------------------------------

    CÓDIGO FUENTE PARA EL ARDUINO UNO COMO ESCLAVO I2C GESTIONANDO UN SONAR HC-SR04

    Insertar CODE, HTML o PHP:
    //###########################################################################
    //# SENSOR DE ULTRASONIDOS HC-SR04 CON ARDUINO UNO HACIENDO DE ESCLAVO I2C  #
    //###########################################################################
    #include <Wire.h>
    #define I2CSonar_ADDRESS 0x11  //Dirección del dispositivo dentro el bus I2C
    
    #define CM 1      //Céntimetros
    #define INC 0     //Pulgadas
    #define TP 8      //Trig_pin conectado al pint D8 del Arduino uno
    #define EP 9      //Echo_pin conectado al pin D9 del Arduino uno
    
    //#define DEBUG    //Para permitir ejecución de sentencias que muestren datos por el puerto serie hacia la consola.
    
    byte* distance_cmPtr;  // Puntero a la variable distance_cm
    int16_t distance_cm;   // Almacena la distancia
    byte dataRx = 0;       // Datos recibidos del maestro i2c
    boolean cmdReady = false;  // Aún no lo uso, es para controlar cuando se han terminado de leer las ordenes del maestro.
    
    void setup()
    {
        distance_cmPtr = (byte*) &distance_cm; 
        Wire.begin(I2CSonar_ADDRESS);               // Conectarse al bus i2c bus con la dirección definida en I2CSonar_ADDRESS
        Wire.onRequest(requestEvent);               // evento de solicitud que hace el maestro
        Wire.onReceive(receiveEvent);               // evento de recepción de datos desde el maestro
           
        pinMode(TP,OUTPUT);    // Configura el pin TP (Trigger en el sonar) del arduino uno para salida
        pinMode(EP,INPUT);     // Configura el pin TP (Echo en el sonar) del arduino uno para entrada
        #if defined(DEBUG) 
        Serial.begin(9600);    // Inicializa el puerto serie
        Serial.println("------------------- Sensor de Ultrasonidos ---------------------------------");
        #endif
    }
    
    void loop()
    {
        if (cmdReady) {
          cmdReady = false;
        }
        
        long microseconds = TP_init();   // Orden de disparo y recepción
        
        distance_cm = Distance(microseconds, CM); // Cálculo de distancia
        
        #if defined(DEBUG) 
        Serial.print("distance_cm = ");
        Serial.println(distance_cm);   // Envía datos por puerto serie a la consola (para visualización en el monitor del IDE de Arduino por ejemplo)
        delay(25);  // Un pequeño retraso para poder ver lo que se muestra en el consola
        #endif
        
        
    }
    
    long Distance(long time, int flag)
    
    {
        long distacne;
        if(flag)
            distacne = time /29 / 2 ;  // Distance_CM  = ((Duration of high level)*(Sonic :340m/s))/2
                                       // = ((Duration of high level)*(Sonic :0.034 cm/us))/2
                                       // = ((Duration of high level)/(Sonic :29.4 cm/us))/2
        else
            distacne = time / 74 / 2;      // INC
        return distacne;
    
    }
    
    long TP_init()
    
    {
             digitalWrite(TP, LOW);                  // Pone el pin TP a nivel bajo
             delayMicroseconds(2);                   // Espera dos microsegundos
             digitalWrite(TP, HIGH);                 // Pone el pin TP a nivel alto durante 10 microsegundos (impulso)
             delayMicroseconds(10);                  // Espera los 10 microsegundos
             digitalWrite(TP, LOW);                  // Pone el pin TP a nivel bajo
             long microseconds = pulseIn(EP,HIGH);   // Espera a que el pin EP se ponga a HIGH, y devuelve la duración del puls en microsegundos.
             return microseconds;                    // return microseconds
    }
    
    // Llamada para la solicidutd de dtos realziada por el maestro I2C
    void requestEvent()
    {
      digitalWrite(13, HIGH);                     // Activa el LED conectado a la patilla 13 del arduino uno para indicar que el esclavo se dispone a responder enviando datos (aún no lo uso)
      Wire.write(distance_cmPtr, 2);              // El esclavo envía al maestro dos bytes que empiezan en un puntero que apunta a la variable de memoria donde está almacenado el último valor de distancia registrado.
    }
    
    
    // Esta función es ejecutada cuando el maestro I2C envía datos de comando al esclavo (aún no la uso)
    void receiveEvent(int numBytes) 
    {
      for (int i=0;i<numBytes;i++)                // only expecting one byte commands in this implementation but just to be sure lets read all of them
          dataRx = Wire.read();
      cmdReady = true;
    }
    
    
     
    #7 rortega, 11 Ago 2012
    Última edición: 11 Ago 2012
  8. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    Primeras pruebas de vuelo

    Bueno, despúes de todos los cambios que he introducido en mi Quad con motores nuevos, esc, etc...a falta de completar la integración del sonar, se puede decir que los resultados son muy satisfactorios.

    Os dejo aquí un corto vídeo de algunas de las pruebas de vuelo que hice ayer, en el que activo el barómetro para intentar volar horizontalmente mientras se mantiene la altitud.

     
  9. JotaParro Miembro

    JotaParro
    Registrado:
    6 Oct 2011
    Mensajes:
    114
    Me Gusta recibidos:
    0
    Un proyecto muy interesante, enhorabuena por el logro, una pasada...
    :ansioso::ansioso:
     
  10. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    LUCES en Multiwii 2.1

    La experiencia con Multiwii 2.1 de momento está siendo bastante agradable, son bastantes y muy interesantes las mejoras que se han incorporado, entre ellas el control de las luces a base de LEDS.

    En el código de la versión 2.1 de Multiwii se han integrado 3 funciones diferentes e independientes (que pueden convivir perfectamente) para hacer que nuestros leds parpadeen:

    • Luces de aterrizaje (LANDING_LIGHTS)
    • Secuencia de parpadeo al armar motores (LED_FLASHER_SEQUENCE_ARMED)
    • Secuencia de parpadeo activada manualmente desde canal aux de la emisora (LED_FLASHER_SEQUENCE_MAX)
    Implementación hardware

    Todo lo podemos hacer con los mismos leds, aunque si alguno quiere siempre puede montarse su implementación para tener las luces por separado para cada cosa distintas.

    La implementación más simple sería montar una tira de leds mediante un transistor y una resistencia, según la foto (que no es mía, la he tomado de del hack correspondiente del foro oficial de multiwii http://www.multiwii.com/forum/viewtopic.php?f=15&t=1198)

    [​IMG]

    El emisor del transistor (patilla E) iría soldada a tierra. El positivo de los leds se conectaría al positivo de la batería (12 voltios aprox.) y el negativo de los leds al colector del transistor (patilla C). La resistencia se conecta a la base del transistor (patilla B) y a ella le mandamos la señal de activación a través de uno de los pines del atmega328.

    En mi caso, como ya expliqué en su día cuando usaba Multiwii 1.9, he conectado a la base del transistor el pin analógico A2 (en el arduino) que se corresponde con la patilla 25 (PC2) del atmega328 que es el que se suele usar para el camtrig por defecto. Gracias a como han integrado estas funciones del flasher de leds en la versión 2.1, no he tenido que modificar nada en el hardware.

    [​IMG]

    En la foto se ven 5 resistencias. Una, la que está pegada al transistor se corresponde con la del esquema anterior. Las otras 4 resistencia las he puesto porque no estoy usando tiras de leds, que ya vienen con sus correspondientes resistencias, sino que utilizo 4 leds, uno al extremo que cada brazo del quad.

    Configuración de las luces de aterrizaje


    Las luces de aterrizaje se activarían automáticamente a partir de una altitud mínima indicada por el sonar. Bastaría con descomentar en el config.h estas líenas e indicar el valor de altitud mínima, que por defecto está a 50 cm. (Está perfectamente explicado en en http://www.rcgroups.com/forums/showthread.php?t=1261382&page=1827 )



    Insertar CODE, HTML o PHP:
      #define LANDING_LIGHTS_DDR DDRC
    #define LANDING_LIGHTS_PORT PORTC
    #define LANDING_LIGHTS_BIT PORTC2
    /* altitude above ground (in cm) as reported by sonar */
    #define LANDING_LIGHTS_AUTO_ALTITUDE 50
    
      
    Secuencias de parpadeo

    Para que se active la secuencia de flahs al armar los motores tan sólo se necesita descomentar estas líneas e indicar los valores correspondientes al registro y pin utilizado (el mismo que para landing lights en mi caso):

    Insertar CODE, HTML o PHP:
    /********************************    LED FLASHER    ***********************************/
        #define LED_FLASHER
        #define LED_FLASHER_DDR DDRC   // el original era DDRB
        #define LED_FLASHER_PORT PORTC //el original era PORTB
        #define LED_FLASHER_BIT PORTC2 //el original era PORTB4 (PORTC2 se corresponde con el pin analógico A2, al cual tengo conectada la base del transistor que enciende los leds)
        #define LED_FLASHER_SEQUENCE ( (uint8_t) 0 )
        // create double flashes
        #define LED_FLASHER_SEQUENCE_ARMED ( (uint8_t) (1<<0 | 1<<2) )
        // full illumination
        #define LED_FLASHER_SEQUENCE_MAX 0xF0//el original era 0xFF
    
    
    En el parámetro LED_FLASHER_SEQUENCE_ARMED definimos como queremos que sea la secuencia de parpadeo al armar motores, de modo que tenemos 8 bits que podemos poner a 0 o a 1, correspondiendo cada bit activado a 1 a 0.125 segundos los leds encendidos. Tal cual está por defecto genera unos destellos similare a los que vemos en los aviones.

    En el parámetro LED_FLASHER_SEQUENCE_MAX definimos como queremos que sea la secuencia de parpadeo al activar de forma manual desde el canal auxiliar de la radio (esto hay que indicarlo también a través de la interfaz gráfica de usuario de Multiwii marcando la casilla correspondiente a "LED MAX"). Por defecto hace que las luces se queden fijas. Yo lo he modificado cambiando una F por un 0 (0xF0) para que parpade cada medio segundo, es decir, medio segundo encendido, medio segundo apagado (la secuencia de bit es 11110000). Lo tengo asociado al mismo canal que tengo el baro, el mag y el level, así podré distinguir si estoy volando en acro o en automático.

    Canal auxiliar de la emisora

    Además debemos tener conectado el canal auxiliar de la radio al pin correspondiente. Yo de momento estoy usando el pin D12 (en el arduino) que se corresponde con la patilla 14 (PB0) del atmega328 (también se puede hacer con el pin D8) y lo he definido en el config.h de Multiwii 2.1 de la siguiente forma:

    Insertar CODE, HTML o PHP:
    #define RCAUXPIN12
    
     

    Adjuntos:

    #10 rortega, 20 Ago 2012
    Última edición: 20 Ago 2012
  11. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    Probando el sonar con Multiwii 2.1

    Como he comentado en un post anterior, he integrado el sonar para poder volar cerca del suelo manteniendo la altitud, por debajo de los 4.5 metros. Es un sonar serie HC-SR04 que he implementado, de forma experimental, con un ARDUINO UNO haciendo de esclavo I2C. Funciona muy, pero que muy bien. He aquí las primeras pruebas sobre asfalto.


    Las derivas se producen por culpa del viento, sobre todo porque al tener puesto los pirulos de los chinos para amortiguar los aporrizajes, la más mínima corriente de aire influye bastante y se hace complicado el pilotaje. Tengo pendiente quitarlas en los próximos vuelos porque, además, provoca un flujo de aire extraño por el giro de las hélices que hace que pierda la estabilidad.
     
  12. Jaskarma Nuevo Miembro

    Jaskarma
    Registrado:
    14 Dic 2010
    Mensajes:
    47
    Me Gusta recibidos:
    0
    intenta no ponerlos debajo de las helices le pueden restar algo de sustentacion

    me refiero a los pirulos de los chinos Saludos
     
  13. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    Tren de aterrizaje modificado

    Efectivamente el problema de la estabilidad eran los pirulos. Lo he modificado y ahora si que va bien. Y con la implementación del sonar estoy muy contento.

     
  14. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    Nuevo tren de aterrizaje

    He mejorado el tren de aterrizje instalando los puentes de un tren de aterrizaje para helicópteros. Los pirulos de los chinos van cogidos con una varilla de aluminio que encaja perfectamente en los puentes y hacen las veces de patines. Dejo aquí una foto del montaje y otra ya montado:

    [​IMG]


    [​IMG]
     

    Adjuntos:

  15. LuisFPV Miembro

    LuisFPV
    Registrado:
    21 Nov 2011
    Mensajes:
    331
    Me Gusta recibidos:
    0
    ¡SUPER PEDAGÓGICO!

    Enhorabuena

    :ansioso:
     
  16. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    Modificación en las luces

    El otro día me pasé por la macro tienda que tienen los chinos en el pueblo y compré una tira de leds blancos (no tenían otros colores) de 60 cm por menos de 4 €. La troceé en cuatro, le puse sus conectores y tal y adapté la placa controladora para que tomara la tensión de 12 voltios de la batería a través las cuatro resistencias que llegan al colector del transistor. El resultado es espectacular, en especial en vuelo. Aquí os dejo un vídeo con las luces activadas, pero sin volar:

     
    #16 rortega, 28 Ago 2012
    Última edición: 28 Ago 2012
  17. nuki Miembro Activo

    nuki
    Registrado:
    27 Abr 2012
    Mensajes:
    1.241
    Me Gusta recibidos:
    0
    Y yo sin ver este post!!!! :eek::eek:

    Impresionante tutorial y muy didáctico...aunque me queda lejos por falta de conocimientos....:redface2:

    De todas formas este tipo de posts son una gozada....

    Felicidades!
     
  18. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    Integración de GPS + SONAR

    Estos días he estado trabajando, junto con un amigo, en la integración completamente experimental de un GPS y un SONAR, ambos controlados con la ayuda de un Arduino UNO que actua como esclavo I2C. La idea, básicamente, es utilizr el atmega238 de la placa Arduino para que se encarge de la gesitón del GPS y del SONAR, liberando al procesador (otro atmega328) de la controladora principal de ese trabajo, dedicándole el tiempo de procesamiento a su principal tarea, la de mantener el quad en el aire.

    La controladora principal actua como maestro para solicitar la información requerida: datos de posicion del GPS y datos de distancia del sonar. Para ello se pone en contacto con el esclavo (el arduino uno) que está todo el tiempo procesando los mensajes que recibe del GPS por puerto serie y enviando pulsos y recibiendo tiempos de respuesta al sonar para calcular la distancia.

    Había comentado en otro post la idea de implementarlo usando TinyGPS, pero sigo a la espera del chip Atiny que aun no me ha llegado, así que de modo experimental lo estoy haciendo con el Atmega238, que seguramente, si funciona bien como es de esperar, termine por implementarlo así definitivamente (diseñando una placa para ello).

    HARDWARE


    [​IMG] [​IMG]

    Lleva un chip UBLOX NEO-6M-0-001 y viene sin software, hay que descargarlo de la página del fabricante, concretametne el u-center v.7 . El software es muy útil para ver como funciona nuestro GPS, pero especialmente para poder configurarlo.

    No es que sea un gran GPS, pero al menos puede recibir señal de hasta 50 satélites, trabajar por puerto serie hasta 115200 baudios (aún no lo he probado a esa veolcidad) y, según algún forero de Multiwii, configurarse para que actualice hasta 10Hz, y funciona tanto a 3.3v como a 5v de tensión de alimentación. Yo lo tengo trabajando, de momento, a 38400 baudios y a 5 Hz y 3.3v. El precio es bastante razonable. Por un poquito más (39$) se podrían adquirir otros modelos de GPS que ya llevan integrado el bus I2C en la placa, pero no me voy a extender aquí.
    [​IMG]

    • Hay poco que decir de él, tan sólo que necesitamos dos pines del atmega, además de vcc y tierra, para poder gestionarlo y que puede medir distancias hasta un máximo de 450 cm.

    • Atmega328 (de Atmel): Concretamente yo estoy usando el Atmega328-PU, el que incorpora la placa ARDUINO UNO. Para fabricar una pequeña placa se puede adquirir el procesador por separado junto a un cristal de 16mhz, dos condensadores de 22uf y un zócalo para pincharlo por 6,19 $ en ebay (este es el mismísimo que compré para facbricar la placa controladora del quadx).
    [​IMG]



    [​IMG]
    Esixte una alternativa económica, aunque no menos compleja, que es la de adquirir un módulo que venden en rctimer por 6,99$ (Multiwii FC I2C-GPS NAV Module). Se trata precisamente de una placa implementada con un atmega328, con otro tipo de encapsulado, con las mismas prestaciones. Además trae sus cables y conectores para conectar por un lado el gps y por otro a la placa controladora (por emplo una CRIUS). Y lleva precisamente en el mismo software I2C_NAV utilizado en mi implementación (expecto mis modificaciones para gestionar además un sonar).

    [​IMG]
    SOFTWARE


    El software que ejecuta el esclavo (en mi caso el arduino uno) está basado en el código fuente de I2C_NAV de EOSBandi. Se trata de una implementación de un esclavo I2C para gestionar GPS que se integra con Multiwii 2.1.

    Hemos incluido nuestro granito de arena integrando el código necesario para gestionar el SONAR y devolver la distancia al maestro, además de instrucciones específicas para configurar el GPS CRIUS cada vez que se pone en marcha el esclavo, basándonos en la misma solución que EOSBandi.

    Esto último se debe a que este GPS tiene una memoria en la que sólo se mantiene la configuración guardada el tiempo que dura la carga de la pila que lleva. Si se gasta la pila, se pierde la configuración, lo cual es un problema porque hay que conectar el GPS a un adaptador USB a TTL (FTDI), para configurarlo con con u-center. Imagina que estás en mitad del campo volando tu quad, se gasta la pila, desconectas la batería y, cuando te dispones a conectarla nuevamente el GPS ha perdido su configuraicón. ¿Te llevas el portátil contigo?...

    El código del sonar está basado en la librería NewPing para Arduino, y lo hemos integrado en el código de I2C_NAV.

    Pondré los detalles del código más adelante, cuando esté completamente depurado. Actualmente funciona, sobre la mesa, pero no lo he probado en vuelo.

    En el lado de Multiwii, hay que cambiar algunos parámetros de configuración y añadir también algo de código para integrar el SONAR. Algo ya adelanté en su día, pero prometo poner las versiones definitivas de todo cuando esté depurado y probado.

    IMPLEMENTACIÓN

    Os dejo aquí una imágen de como lo he implementado, de momento. Es totalmente experimental y usando el ARDUINO UNO. Si la cosa funciona, compraré un atmega328 suelto y montaré una placa perforada para que sea muchísimo menos voluminoso y pesado.

    [​IMG]


    Tenemos 3 conexiones. Arriba a la izda vemos la conexión que llega del bus I2C desde la controladora del quad. Arriba a la derecha tenemos la conexión al GPS, que está cogido en un brazo. Delante nuestro, abajo en el centro, está la conexión hacia el sonar, que está colocado bajo el quad, en el puente del tren de aterrizaje.

    Los jumpers los utilizo para que sea el GPS el que usa el puerto serie o el cable usb para conectar al ordenador.

    Continuara...
     

    Adjuntos:

    #18 rortega, 2 Sep 2012
    Última edición: 2 Sep 2012
  19. chebari Miembro

    chebari
    Registrado:
    26 Abr 2011
    Mensajes:
    220
    Me Gusta recibidos:
    0
    hola buena.estoy mas pegado que un caracol en un espejo.
    Me acaba de llagar el gps u-blox y el modulo i2c de rctime.
    Yo tengo crius se v2.0.El gps ya lo tengo trabajando 115200 blaudios 5 hz.
    pero el modulo me esta calentando un poco mas la cabeza por que no se si ya viene programado para 115200bl 5hz o hay que instalarlo.
    Me decido a programarlo yo con arduiro1.0.1 por medio de ftdi y me da error.
    De Programar el modulo es por el lado del GPS o de lado FC?
    Conectando supongo gnd,vcc,rx,tx al modulo?
     
    #19 chebari, 22 Sep 2012
    Última edición: 23 Sep 2012
  20. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    Te he contestado en otro post en el que también has preguntado sobre este mismo tema.
     
  21. evasion Nuevo Miembro

    evasion
    Registrado:
    17 Oct 2012
    Mensajes:
    42
    Me Gusta recibidos:
    0
    Gps

    [​IMG] [​IMG]

    Lleva un chip UBLOX NEO-6M-0-001 y viene sin software, hay que descargarlo de la página del fabricante, concretametne el u-center v.7 . El software es muy útil para ver como funciona nuestro GPS, pero especialmente para poder configurarlo.

    He comprado el GPS que figura en el link
    http://www.goodluckbuy.com/gps-rece...ic-antenna-for-flight-control-controller.html

    veo que chip es lo mismo y me ha sorprendido al leer que no lleva software, asi que me he bajado el que indicas y por favor me podrias responder a estas preguntas, ya que veo que dominas el tema;
    1º Lleva dos archivos, cual se le pone el mas pequeño o mas grande
    2º se puede leer y grabar con el FTDI de la placa, conectando las patillas correspondientes.
    3º sirve este gps para vuelta a casa? ¿como se hace?
    Saludos y perdona que sea pesado





     
  22. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    El GPS que has comprado en goodlookbuy te sirve perfectamente para multiwii, tanto para hold position como return to home.

    Ese GPS tiene tanto conexión serie como conexión I2C en la misma placa, pero como I2C por sí sólo no puedes usarlo pues Multiwii no está programado para poder trabajar con él GPS directamente sin ningún intermediario. Tendrías que remangarte y ponerte a modificar el código fuente para tal fin.

    En multiwii tienes básicamente 3 posibilidades:

    • Trabajar con el GPS por puerto serie.
    • Trabajar por bus I2C con un módulo I2C NAV basado en microprocesador atmega 328, que se encargue de gestionar el GPS.
    • Trabajar por bus I2C con un módulo basado en miocroprocesador Atiny (TinyGPS) que se encargue de gestionar el GPS.
    En el primer caso, con una controladora de vuelo como CRIUS Multiwii SE (no se cual es la tuya), no puedes trabajar por puerto serie, porque el único puerto serie que tiene se utiliza para comunicarse con el GUI principalmente, y aunque pudieras, el microprocesador estaría tan ocupado trabjando con el GPS que tendría muy poco tiempo de proceso para dedicarle a mantener el multicóptero en el aire.



    La solución tiene que pasar casi forzosamente por una de las otras dos opciones. Lo más lógico, si ya tienes una controladora de vuelo basada en atmega 328, es que te compres el módulo I2C NAV (en rctimer, por ejemplo) que es muy barato y trabaja con el código fuente de EOSBandi. Conectas el puerto serie del GPS al puerto serie del módulo I2C NAV y el puerto I2C del módulo al puerto I2C de la controladora de vuelo.


    Si eres un manitas de la electrónica y la programación, podrías usar la tercera opción y, de paso, comprarte un sonar serie para matar dos pájaros de un tiro. Pero te puedes complicar mucho la vida.



    Hay una cuarta opción, que es la de adquirir una controladora de vuelo basada en microprocesador Atmega2560. Estas traen varios puertos serie y el micro es mucho más potente, por lo que se puede dedicar un puerto serie para gestionar el GPS sin necesidad de intermediarios. Por ejemplo la ALL IN ONE PRO Flight Controller v1.1 que venden en rctimer (la venden también en otras webs incluso a menor precio, y no es la única basada en el chip atmega2560). Y de paso, si te aburres de Multiwii y quieres convertir tu quad en un sistema de vuelo autónomo, le puedes cargar el código de Megapirates, una versión del conocido software Arducopter que se ha portado para trabajar con este tipo de microprocesadores. Precisamente estoy esperando que me llegue esta controladora para otro proyecto que estoy empezando.
     
  23. evasion Nuevo Miembro

    evasion
    Registrado:
    17 Oct 2012
    Mensajes:
    42
    Me Gusta recibidos:
    0
    gps

    Respuesta rapida e ulustrativa, asi se aprende, te comento, la placa es la MWC multiwi Crius SE, por encima del puerto del FTDI lleva otro de 4 pines que indica para LCD, bluetooth, GPS, por eso pensaba que conectando los pines gnd, vcc, tx y rx, podria servir no solamente de comunicacion usando el FTDI, sino tambien de GPS.¿Que opinas?
    De electronica me atrevo, pero de programación nada y de los dos archivos cual es el correcto el U-blox5.NMA o el UBX.
    Saludos
     
  24. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    Son dos conecetores físicamente distiontos, pero es el mismo puerto serie, los atmega328 sólo tienen un puerto serie. Cuando lo usas con el adaptador FTDI no podrás usarlo para bluetooth y biceversa.
     
  25. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    De todos modos, antes de tomar ninguna decisión, investiga la posibilidad de usar el GPS directamente en ese conector. Leí en alguna ocasión que con CRIUS Multiwii SE alguien lo hacía, pero tenía que desactivar la función del GUI. Se realizaba una modificación que no tenía mucha complicación, pero para poder volver a usar el GUI tenías que volver a modificar el código fuente y volver a cargarlo en la placa. Funcionaba pero era una chapuza, y estar quita y pon cada dos por tres... creo que alguien del este foro lo usa así.
     
  26. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    El archivo NMA que me comentas no se de donde procede ¿A qué software acompaña? Y por cierto, el GPS antes de poder usarlo tienes que configurarlo convenientemente con u-center para poder trabajar con las tramas NMEA... y si la plia del GPS no aguanta lo suficiente o no tiene memoria eeprom para guardar la configuración, tendrás que configurarlo con u-blox cada dos por tres.
     
  27. evasion Nuevo Miembro

    evasion
    Registrado:
    17 Oct 2012
    Mensajes:
    42
    Me Gusta recibidos:
    0
    GPS

    Gracias por la ayuda que estoy recibiendo, pues ya lo tengo casi a punto a falta de ajustar motores y alguna cosilla que salga.

    x Rortega, tus valiosas informaciones me estan animando y de hecho ya tengo pedido el I2CNAV y me he bajado el archivo I2CGPS de EOSBANDI, entiendo que al GPS se le pone el archivo NMEA con el U-center y al I2CNAV el de eosbandi, mi preguna es la siguiente:
    Como se pasan ambos achivos, que programas hay que usar y si es a traves de FTDI, sobre todo al de eosbandi,
    Yo he programado eprom y micros, el icprog y otros parecidos, pero estos no se por donde van.
    El I2CGPS lleva implantado el regreso a casa?
    Perdona que sea pesado, pero estoy leyendo por ahi todo lo que pillo, pero hay pocas explicaciones claras y el ingles a traves del google. Saludos
     
  28. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    Se supone que el módulo I2C NAV ya lleva el código subido. Si no es así, tendrás que soldar los pines (supongo que te vendrán junto al módulo) para poder conectarlo con el adaptador USB-FTDI-TTL. Para subir el código necesitas el entorno de desarrollo (IDE) de Arduino. Con las versiones 1.0 y 1.1 de Arduino podrás hacerlo.

    Para configura el GPS, debes subirle con ayuda del u-center un archivo de texto que acompaña al código fuente I2C GPS NAV, concretamente se trata de este "u-blox-config.ublox.txt". Ese archivo lleva todo lo necesario para que el GPS trabaje con el protocolo UBLOX y lo configura de modo que es capaz de enviar las tramas extrictamente necesarias al módulo I2C NAV.

    Cómo supongo que la pila del GPS no te va a aguantar, vas a tener que subirle la configuración con u-Center una y otra vez. Eso es un latazo, pero existe la posibilidad de añadir al código fuente del I2C NAV de EOSBandi las instrucciones necesarias para que suba trama a trama los mismos códigos hexadecimales que contiene el archivo de texto. Esto lo haría en cada arranque, es decir, cada vez que el módulo I2C NAV recibe alimentación y se pone en funcionamiento. Es decir, que cada vez que conectes la alimentación lo primero que se va a hace es configura el GPS.

    Yo lo tengo ya integrado, así que cuando llegue el momento pregúntamelo y te paso las instrucciones para que las añadas, sin compromiso alguno.

    Los que compramos los GPS CRIUS hace unos meses tenemos ese problema. Por lo visto rctimer ya está vendiendo la versión 2.0 del GPS que incorpora una EEPROM, en la que se guarda la configuracion una sóla vez y ya no es necesario volver a subirla. El propio GPS se comunica con le EEPROM para leerla.

    Ten presente, que si usas el módulo I2C GPS NAV tal cual te llegue, tendrás que configurar el GPS para que trabaje a 115200 baudios y 5hz con u-Center. Cada vez que se gaste la pila, cuando enciendas el GPS lo más probable es que trabaje a 9600 baudios y con tramas NMEA, por lo que no se va aentender con el módulo I2C.
     
  29. evasion Nuevo Miembro

    evasion
    Registrado:
    17 Oct 2012
    Mensajes:
    42
    Me Gusta recibidos:
    0
    He medido la pila y estaba gastada, asi que le he hecho este injerto, ya que el voltaje es el mismo y al parecer el archivo NMEA lo tiene, lo que no puedo es cambiar en u-center los baudios del puerto, los tengo configurado en el ordenador pero al pasarlo al u-center me da discontinuo y tengo que volver a 9600, de todas maneras ya voy leyendo el ubox. Lo que no estoy seguro que me coja el archivo u-blox-config.ublox.txt, pero creo que voy avanzando.
    El hecho de que la pila este conectada continuamente, aparte que vaya gastando algo, puede perjudicar, o le desueldo un polo hasta que vaya a usarla.
     

    Adjuntos:

  30. evasion Nuevo Miembro

    evasion
    Registrado:
    17 Oct 2012
    Mensajes:
    42
    Me Gusta recibidos:
    0
    gps

    se me olvidaba, los pines van asi
    FTDI GPD
    GND gnd
    5v 5v
    Tx Rx
    Rx Tx

    metiendole caña a la neurona que me queda, al final aprendo:biggrin2:
    Saludos
     
  31. jackob Miembro

    jackob
    Registrado:
    3 Ene 2012
    Mensajes:
    375
    Me Gusta recibidos:
    0
    Hola Evasion, a ver si con este link te ayuda a actualizar el gps. Yo lo he hecho esta tarde y me va bien según el u-center. Eso si los satelites los coge ya que en el google heart me da la ubicación pero no lo hace igual que antes:confused:.

    Te paso tambien este Link para colocarle la memoria epprom, cosa que yo no descarto en ponersela.

    Un saludo
     
  32. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    El tutorial que te indica Jackob es muy bueno, está pensado para configurar el GPS para el software de control de vuelo de Ardupirates. No obstante, el control de GPS para Multiwii está basado en el de Ardupirates, en parte, por lo que el viene muy bien.

    Lo de la pila... Cuando se descargue por completo vuelta a empezar. Yo optaría (y opté) por incluir en el código fuente de I2C GPS NAV las instrucciones para configurar el GPS, como te expliqué.
     
  33. evasion Nuevo Miembro

    evasion
    Registrado:
    17 Oct 2012
    Mensajes:
    42
    Me Gusta recibidos:
    0
    configurar gps

    x Jacob y Rortega, asi da gusto, bueno lo de la pila es un asuntillo provisional que use en un medidor de temperatura del helicoptero al que se le iba la pila frecuentemente y con esto te olvidas,
    No obstante como tenia que pedir unas cosillas mas, y tras leer a eosbandi como colocar una eprom, por el precio que tiene he pedido la V.2, al que habra que colocarle el programa correspondiente que ya le he visto a eosbandi, asi que a la espera de que llegue, hare practicas con este, ademas salgo de viaje. Lo dicho asi da gusto, saludos.
     
  34. evasion Nuevo Miembro

    evasion
    Registrado:
    17 Oct 2012
    Mensajes:
    42
    Me Gusta recibidos:
    0
    pila y conexion I2C

    mirando por esos foros de Dios, os pongo soluciones que dan para la pila no se agote y sacar una conexion I2C de la crius multiwii SE, que no lleva, a ver que opinais

    [​IMG]

    puerto I2c
     

    Adjuntos:

  35. evasion Nuevo Miembro

    evasion
    Registrado:
    17 Oct 2012
    Mensajes:
    42
    Me Gusta recibidos:
    0
    la pila

    para que no se agote
    [​IMG]
     
  36. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    Illo, eso te lo puse yo ayer en otro hilo de Multiwii cuando preguntabas que donde estaba el conector I2C de tu placa ... y eso no soluciona nada sobre lo de la pila, salvo que ese GPS lleve una eeprom, que por cierto ya la integran los GPS CRIUS v2 (los vende rctimer).

    Te lo puse también en otro pots, y si te lees los tres hilos de Multiwii, verás que también comento las soluciones que existen para lo de la pérdida de configuración por culpa de la poca duración de la pila. Recuerda, en la própia página de descarga del código fuente I2C GPS NAV de EOSBandi, tienes incluso un link a un pdf donde explica como añadir una eeprom al gps. Y, como alternativa, modificar el código fuente para inclur las instrucciones que configuren de forma automática el gps en cada arranque.

    No se cuantas veces habré explicado esto ya ...
     
  37. evasion Nuevo Miembro

    evasion
    Registrado:
    17 Oct 2012
    Mensajes:
    42
    Me Gusta recibidos:
    0
    Bueno, lo siento el haber sido repetitivo, la verdad es que no lo he visto, sino no hubiera posteado, estoy fuera de España y me entretengo con leer posst, hacer recopilaciones, para despues cuando me llegue lo que me falta me pondré a practicar, si molesto, me retiro.Saludos
     
  38. monzon Maestro FPV

    monzon
    Registrado:
    24 Feb 2011
    Mensajes:
    2.352
    Me Gusta recibidos:
    0
    No te enojes , molestia ninguna .saudos
     
  39. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    No, no molestas, solo quería decirte que estabas en una confusión. Y puse lo de las veces que he repetido lo mismo porque me sentía yo mismo como muy repetitivo. :wink2:
     
  40. monzon Maestro FPV

    monzon
    Registrado:
    24 Feb 2011
    Mensajes:
    2.352
    Me Gusta recibidos:
    0
    haber una dudilla que o problemilla que tengo , nunca vole con el acc encendido solo en acro y va de lujo pero al conectar los sensores empiezan los problemas , el baro no esta mal del todo peo no lo mantiene sube y vaja pero fufnciona , es loque hay , bien ,
    el magneto cuando lo conecto me lo sule enroscar a la derecha haceindome perder el norte y el control . mal royo.
    y lo peor es que el acc al conectarlo se me va a la derecha , se inclina mucho y se pira para la derecha , lo mas curioso es que sin los sensores estoy volando de lujo es xquad esta quietito volando le pico el acc y se tira pa la derecha el joio , he calibrado ointetado calibrar el acc en a consola 2.1 y lo que hago es poner el quad en una mesa a nivel y le pico en calibrar acc se pone azul y le vuelo a picar y se pone en verde , los valores en acccuaando esta quieto se ponen a 0 , pero al activarlo volando se pira a la derecha feo feo ,.
    rortega veo que dominas el tema que podria ser ??
     
  41. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    Por lo que dices ya lo tienes trimado en acro, de modo que sin usar el ACC levantas y casi se queda clavado eso es esencial.

    Así que ahora te Toca trimar en ACC. Levantas el multiwii, activas el ACC, te fijas bien para donde deriva y lo aterrizas y desarmas motores. Con la combinación adecuada de movimientos de sticks, es decir, thortle a tope combinado con toques al pitch o al roll, en sentido contrario a la deriva. Verás que en cada pulsación se va encendiendo y apagando el led de estatus de la placa. Tendrás que dar mas pulsaciones cuanto mas acusada sea la deriva. Con una sola pulsación casi no veras diferencia, así que al principio da 3 o 4.

    Arma motores, despega en acro, activa ACC y compruébalo. Si sigue derivando para el mismo sitio pero menos acusado que antes, repite el proceso con uno o dos toques, o mas o menos toques dependiendo de si hay mas o menos deriva que antes. Y si te pasas y deriva par el lado contrario entonces reputes el proceso rectificando.

    Así hasta que se quede clavado en el aire. Y fijo que se queda.

    Lo de la altitud es mas complicado. Si el barómetro no es muy preciso poco hay que hacer, salvo tunear los PIDs para que el efecto yoyo se suavice. Prueba a cubrir la placa para que no le de el sol ni el viento, que podría afectarle. O pon un sonar para evitar el efecto yoyo estando a pocos metros del suelo. Oscilaciones metro arriba metro abajo es típico.
     
  42. monzon Maestro FPV

    monzon
    Registrado:
    24 Feb 2011
    Mensajes:
    2.352
    Me Gusta recibidos:
    0
    gracias tio voy a provar , una duda surge ,
    vuelo y observo , aterrizo , desarmo , hay que hacer alguna combinacion de stick para entrar en modo calibracion ?? o subo el stick del gas y doy pulsaciones al canal 1 a izq pues deri va a derecha , asi simplemente ??
    saludos y gracias
     
  43. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    No, calibración no, hablamos de "trimado en modo Acc". Quiero resaltar esto porque son cosas totalmente distintas. Calibrar calibras desde el GUI, trimar tirmas desde la radio.

    Aclarado esto, deberías familiarizarte con los nombres las acciones y en lugar del número del canal, será mucho más práctico.

    Thortle (el gas a tope) y, sin soltarlo, Roll a izquierda y al centro, Roll a izquierda y al centro .... tantas veces como sea necesario, pero sin soltar el Thortle. Notarás que tiene efecto porque el led de estatus se enciende y apaga en cada pulsación del roll.

    Así de simple es, aunque a priori no es tan simple si no lo has hecho nunca. Ten claro en mente el proceso completo porque por ejemplo, si nó desarmas el multi saldrá disparado.
     
  44. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.530
    Me Gusta recibidos:
    3
    Bueno, también se puede calibar desde la radio, pero de todos modos trimar y calibrar son conceptos muy distintos.
     
  45. monzon Maestro FPV

    monzon
    Registrado:
    24 Feb 2011
    Mensajes:
    2.352
    Me Gusta recibidos:
    0
    Mil gracias tio , el tema es que llevo mas de un año volando con multiwii y no había conectado nunca el acc . Era con la crius litel . Llego a mis manos una crius se y con esta al accionar baro y mag descubrí el acc , yo daba por echo que funcionaban siempre ,
    Y la diferencia en entre estable y acro era otra cosa , yo pensaba que volaba en modo normal o estable y era en acro no ..?
    Voy a intentar ajustar haber que sale . Saludos y mil gracias .
     
  46. monzon Maestro FPV

    monzon
    Registrado:
    24 Feb 2011
    Mensajes:
    2.352
    Me Gusta recibidos:
    0
    Ya he probado, al principio na de na ninguna luz , tenía conectado los dual rate y exp , desconectado y listo parpadea la luz azul al picar al roll , tres picaditas , haber si escampa y lo puedo provar . Otra vez mil gracias.
    Sobre el tema baro ; creo que a menor valor me responde mejor , es decir oscila menos en las subidas y bajadas , entre medio y un metro , si le bajo valor será mas preciso .? Lo tengo dentro de un tupe , con muchos orificios pues ley que tampoco tenía que estar muy cerrado , y tiene encima un trocito de espuma esponja de las míticas , para protegerlo .
    Algún consejo mas .?
     
  47. cristian monta Nuevo Miembro

    cristian monta
    Registrado:
    21 Ene 2014
    Mensajes:
    1
    Me Gusta recibidos:
    0
    gracias por la informacion

    muchas gracias por la informacion encerio me es de muchisisisisima ayuda :-winner_first_h4h:
     

Compartir esta página