ESTAWIILIZADOR ! estabilizador casero de bajo costo para aviones

Tema en 'R/C TELEMETRÍA y UAV PROYECTOS' iniciado por juanvivo, 18 Feb 2011.

  1. juanvivo Maestro FPV

    juanvivo
    Registrado:
    13 Ene 2011
    Mensajes:
    2.341
    Me Gusta recibidos:
    0
    Hay algun desarrollo de esto? EN un mismo aparato el piloto automatico o estabilizador y vuelta a casa y echo casero con un pic o con arduino y los acelerometros y los giroscopios del WM+ y el nunchuk...

    He visto muchos para multicopteros, pero ninguno orientado a aviones... Conoceis algun proyecto?

    Gracias de antemano por la ayuda!

    pd.-

    ESTAWIILIZADOR EN DESARROLLO!
     
    #1 juanvivo, 18 Feb 2011
    Última edición: 5 Mar 2011
  2. Hararion Miembro

    Hararion
    Registrado:
    6 May 2010
    Mensajes:
    518
    Me Gusta recibidos:
    0
    yo empecé este proyecto:

    hola amigo, he visto por acá un hilo del ardupilot, y me parece que ese se puede configurar para aviones, además el dakar osd es una gran opción para el RTH (return to home) y este está orientado a aviones, pero le falta la parte de estabilización...

    El hilo del ardupilot:
    Ardupilot, ese pequeño Gigante
    el hilo del dakar:
    DakarOSD 3.0b Construye tu propio OSD

    además, realmente aun no hay un proyecto casero tan completo como el que tu describes y parece que la razón para esto es que con un solo micro o pic quedaría muy cargado o saturado de código (solo imagínelo: generar señal OSD (on screen display), manejar varias señales de entrada y luego reproducirlas igual y sin latencia a la salida para el correcto control del aeromodelo, leer acelerómetros, giróscopos, Wiim+, leer GPS, generar señales de corrección para los servos e identificar también cuando entra en failsafe o en barrena, identificar cuando se necesita estabilización o pilotaje manual para que el modelo no se salga de control y todo estos procesos al mismo tiempo!!!) me imagino que por eso se da la tendencia modular de estos dispositivos, (osea vuelta a casa y estabilizador aparte) sin embargo, y ya que lo preguntas yo me tropecé también con este mismo problema y si de algo te sirve, yo mismo empecé una investigación para hacer un estabilizador de bajo costo, acá pongo lo poco que he descubierto:

    http://www.aeromodelismovirtual.com/showpost.php?p=141100&postcount=1

    el proyecto por ahora solo es una idea, aun me queda elegir el pic y empezar a hacer el programa en base a lo que logre descubrir de los sensores que estoy estudiando y si todo sale bien, quedará parecido al copilot cdp4 (o una especie de versión mejorada de este) , además aparte de los sensores infrarrojos también usaría un wiim+ para compensar movimientos bruscos a modo de acelerómetro-inclinómetro para que no pierda la referencia del horizonte en caso de una acrobacia complicada, o de un movimiento improvisto del avión.

    Por limitación de componentes (y debido también a que ya me construí el Dakar osd), este diseño lo pensé como un complemento para este osd, que ya tiene rth (return to home) por lo que en este estabilizador, solo quedaría operar el timón de profundidad y los alerones para mantener el modelo a nivel y sin problemas, lo único que aun no he cubierto en este proyecto es sobre mantener el nivel de altura, para ello estoy pensando en un especie de sensor barométrico (o presión) y del cual por ahora no tengo idea de como conseguirlo...
    pero el proyecto (aunque está apenas en sus inicios) está ya en marcha y tan pronto tenga novedades las iré publicando...

    Saludos!
     
    #2 Hararion, 19 Feb 2011
    Última edición: 19 Feb 2011
  3. juanvivo Maestro FPV

    juanvivo
    Registrado:
    13 Ene 2011
    Mensajes:
    2.341
    Me Gusta recibidos:
    0
    Hola! Gracias por contestar!

    El caso es que, desde mi ignorancia, yo no creo que sean tantas tareas...Parto de la base de que podria funcionar como estabilizador, y de eso a hacer un vuelta a casa no hay muchas mas ordenes que meter...

    NO quiero que tenga osd, para eso esta el dakar y otros muchos y baratos. Tendria que leer las señales del nunchuk y del WM+ y obrar en consecuenca con los servos... A mi si que me parece factible, pero vamos, repito que dentro de mi ignorancia.

    quizas no seria complicado adaptar el de los multicopteros...

    [​IMG]
     
  4. juanvivo Maestro FPV

    juanvivo
    Registrado:
    13 Ene 2011
    Mensajes:
    2.341
    Me Gusta recibidos:
    0
    Acabo de encontrar justamente lo que busco o algo que se le parece mucho...

    MultiWii ala volante con WM + y NK
    Esta versión de la MultiWii controla un ala volante, el canal del acelerador no está conectado a la MultiWii sino directamente a la CES.
    The Roll & pitch ​
    desde el avión son controlados por el MultiWii.

    [​IMG]
     
  5. Hararion Miembro

    Hararion
    Registrado:
    6 May 2010
    Mensajes:
    518
    Me Gusta recibidos:
    0
    interesante...

    mmm ya veo, lo que tu buscas es un estabilizador sencillo para agregarlo a un piloto automático con vuelta a casa (en pocas palabras, un copilot casero parecido al que empecé a hacer),:cool: pero me temo que el diseño que tienes no posee el control de nivel de vuelo (altitud constante mediante sensor de presión o similar, o mediante lectura GPS) lo sé por que no maneja el timón de profundidad, (a menos que la altitud la controle el piloto automático al que le agregará el estabilizador), Además parece que este solo maneja alerones a causa de que es un ala volante, en un avión normal te hará el efecto de los flaps :eek:hmy: por lo que habría que agregarle una salida de control de mas para el servo de profundidad y modificar el programa para que no actúe los servos de los alerones como flaps...:ansioso:, sin embargo estoy dudando del nunchuk, aun no tengo claro como funciona ese módulo... tal vez este se pueda usar como si fuese el sensor de altitud, pero lo dudo... por cierto me podrías pasar el enlace del hilo? quiero leerlo para aclarar las dudas sobre el modulo del nunchuk y mirar también si es que este estabilizador tiene control de altitud o si la altitud lo controla el piloto automático del avión mediante gps u otro medio...

    Saludos!
     
  6. warthog Miembro

    warthog
    Registrado:
    24 Abr 2010
    Mensajes:
    306
    Me Gusta recibidos:
    0
    nk

    Hola:
    Me inmagino que este estabilizador funcianara igual que lo hace el wiicopter, en este el wm+ detecta los movimnientos y el nk (que es un triple acelerometro) controla la posicion del modelo.
    Este dispositivo controla la posicion del avion, tanto en alerones como en profundidad, en base a la posicion memorizada en los sensores. En el multiwiicopter funciona bastante bien. Lo que si habria que hacer es cambiar el programa para que controle un avion con alas estandar y no un ala volante.
    Para controlar la altura se puede incorporar un sensor barometrico como el que ahora tambien se usa en el wiicopter y que tienen en sparkfun por menos de 20$ (sin estar montado en su placa sale por 10$)
    Espero ser de ayuda.
     
  7. juanvivo Maestro FPV

    juanvivo
    Registrado:
    13 Ene 2011
    Mensajes:
    2.341
    Me Gusta recibidos:
    0
  8. Hararion Miembro

    Hararion
    Registrado:
    6 May 2010
    Mensajes:
    518
    Me Gusta recibidos:
    0
    ok

    Gracias juanvivo, lo leeré con detenimiento a ver que saco...

    warthog interesante explicación que me das, parece que yo estoy super equivocado sobre lo que supuestamente era el nunchuck!! me explico: si el wiim+ son los giros, entonces el nunchuck con sus acelerometros son como el complemento para formar un sistema completo tipo IMU (inertial measurement unit)??? seria bueno aclarar esto, leeré mas sobre este par de tarjetas a ver que entiendo, probablemente con esto saque mas fácil el proyecto que tengo en marcha... y si es así solo quedaría ver como se adapta lo del sensor de altitud...

    Saludos!
     
    #8 Hararion, 20 Feb 2011
    Última edición: 20 Feb 2011
  9. warthog Miembro

    warthog
    Registrado:
    24 Abr 2010
    Mensajes:
    306
    Me Gusta recibidos:
    0
    NK

    Hola amigo:
    El nunchuck es una placa que lleva un par de botones y un joystick pero lo importante es el circuito que tiene que es un triple acelerometro, en el foro de rcgroups del multiwiicopter hay mucha informacion, hay algunos que incluso lo cortan por la mitad para quedarse solo con este micro.
    Tienes que enchufarlo a un wm+ y hacer un puente para que lo reconozca ya que el solo no la procesa, lo hace todo el wm+ sacando todo por un solo puerto i2c.
    Luego hay gente que usa otro acalerometro en lugar de nk, el adxl345 y como sensor de presion el bmp085. estos sensores los tienen en sparfun.
    En el firmware del multiwiicopter estan integrados estos sensores y alguno mas, el codigo es libre y supongo que cogiendo la parte que necesites pues ya tendrias parte del trabajo hecho.
    Un saludo
    Alejandro
     
  10. juanvivo Maestro FPV

    juanvivo
    Registrado:
    13 Ene 2011
    Mensajes:
    2.341
    Me Gusta recibidos:
    0
    encontre un desarrollo, y el autor me ha dicho que funciona bastante bien... De momento yo no he logrado que funcione bien, pero estoy probando a ver si he conectado algo mal o similar...

    ENLACE
     
  11. jarto Miembro

    jarto
    Registrado:
    20 Dic 2010
    Mensajes:
    247
    Me Gusta recibidos:
    0
    Tendremos que hacerlo nosotros

    Hola, estaba dándole vueltas al tema ya desde hace un mes, y ya que nos empezamos a animar voy a contaros lo que tengo en mente, y pronto sobre la mesa que me he comprado ahora mismo todo el percal para empezar.
    Yo en lugar del nunchuk usaré el BMA020 que al parecer funciona mejor. En lugar del Arduino Pro Mini me paso directamente al Seeeduino Mega, no creo que el mini de para el gps. tampoco me veo capacitado para integrar el GPS, ya lo están preparando para los multicopteros, así que cuando lo tengan lo podremos usar, de momento estoy repasando los cálculos de actitud, para luego añadir unas lineas que controlen las superficies en consecuencia, yo estoy muy desengrasado con la programación, asi que necesitaré mucha ayuda, :laugh: os dejo una imagen de como voy a empezar a trabajar. [​IMG]
    Bueno en cuanto a los sensores nada que decir, no creo que compense tocar ni una linea, así podremos usar cada uno los que nos apetezca.
    También me apetecía integrar un control de sensibilidad desde la emisora por lo menos para alabeo, creo que vi algo sobre esto para los multi.

    Bueno perdón por la parrafada y por invadir el hilo.
     

    Adjuntos:

  12. juanvivo Maestro FPV

    juanvivo
    Registrado:
    13 Ene 2011
    Mensajes:
    2.341
    Me Gusta recibidos:
    0
    Eres bienvenido Jarto! A ver si entre unos y otros logramos sacar el proyecto adelante.

    En mi caso tengo el pro mini, WM+ y nunchuck, y mi avion solo tiene timon de direccion y de profundidad, por lo que serian 2 los servos a controlar...
     
  13. juanvivo Maestro FPV

    juanvivo
    Registrado:
    13 Ene 2011
    Mensajes:
    2.341
    Me Gusta recibidos:
    0
    Pues la cosa marcha. Sigo avanzando con el proyecto. De momento el arduino detecta y recibe info correctamente del WM+ y del nunchuck, por lo que ya tengo acelerometros y giroscopios, y me estoy peleando con los servos, pero parece que ya van dando el brazo a torcer...

    [​IMG]

    Se me ha ocurrido llamar al artefacto el "EstaWIIlizador", a si que sera el nombre con el que lo denomine a partir de ahora. El primer estabilizador para aviones del foro???,( hecho de forma casera y de ultrabajo coste con arduino+WM+NK)

    Asi andamos:

    [​IMG]
     
  14. juanvivo Maestro FPV

    juanvivo
    Registrado:
    13 Ene 2011
    Mensajes:
    2.341
    Me Gusta recibidos:
    0
    Pues he añadido el receptor y sigue sin funcionar. El servo reacciona al mover el WM+ y NK, pero no como deberia, lo hace de forma arbitraria... Observo tambien que el servo se mueve poquisimo al mandarle desde la emisora, muy poco y muy despacio... Aunque supongo que eso sera mas de configuracion del multiwiiconf, que por otra parte, sigo sin entenderlo...
     

    Adjuntos:

    #14 juanvivo, 5 Mar 2011
    Última edición: 5 Mar 2011
  15. Hararion Miembro

    Hararion
    Registrado:
    6 May 2010
    Mensajes:
    518
    Me Gusta recibidos:
    0
    ahi quedo bloqueado...

    hola amigo, la solucion seria que revisaras la señal i2c proveniente del estawiilizador por el puerto i2c, al parecer hay que poner una resistencia pull-up para tener bien la señal...

    debido a que yo no dispongo, ni tampoco puedo conseguir el Arduino acá en Colombia, me quedo bloqueado para ayudarte con programacion o mas cosas:eek: lo siento...:frown: por eso mi proyecto esta pensado para trabajar con pic y no con Arduino...:sad:

    por otro lado, mi proyecto ahora cuenta con el chip LIS331, un triple acelerometro de 3 ejes compacto en chip montado en su tarjeta para poder soldar cables, este cuenta ya con comunicación i2c por lo que con esto puedo sustituir sin ningún problema el nunchuck...

    Saludos...
     
    #15 Hararion, 5 Mar 2011
    Última edición: 5 Mar 2011
  16. juanvivo Maestro FPV

    juanvivo
    Registrado:
    13 Ene 2011
    Mensajes:
    2.341
    Me Gusta recibidos:
    0
    Gracias por la respuesta hararion.

    No puedes comprar un arduino via ebay?? creo que hay muchos vendedores que envian a todo el mundo... Yo lo compre por unos 15 euros puesto en casa y me lo enviaron desde hong kong...
     
  17. Hararion Miembro

    Hararion
    Registrado:
    6 May 2010
    Mensajes:
    518
    Me Gusta recibidos:
    0
    por ahora no...

    por ahora no puedo ordenar, debido a que mi tarjeta esta desactivada.:sad::redface2:
     
  18. juanvivo Maestro FPV

    juanvivo
    Registrado:
    13 Ene 2011
    Mensajes:
    2.341
    Me Gusta recibidos:
    0
    Esta es una respuesta del autor de la modificacion del codigo, a ver si lo entiendo bien...

    "Hi. you don't need the 5V batt.
    use the esc BEC to power the Ard. Rx and servo's (connect Rx +ve and Rx Ground to the Ard ).
    (remove the prop. while testing).

    I'd advise you remove the Acc for now
    Your Servos should work normally from the Tx
    when the aircraft is stationary.

    "
    Dice que no necesito la bateria, que alimente el arduino el receptor y los servos con el regulador del motor? sera necesario? Es que aun no tengo motor ni lypo, estan en camino de hobbyking desde hace mas de un mes pero no llegan... Tambien dice que quite el NK por ahora, no?
     
  19. juanvivo Maestro FPV

    juanvivo
    Registrado:
    13 Ene 2011
    Mensajes:
    2.341
    Me Gusta recibidos:
    0
    He estado echando un ojo al codigo original 1.2 y al codigo modificado para funcionar con aviones, y la verdad es que es muy poca la diferencia, apenas unas lineas, a saber:

    alrededor de la linea 40:

    archivo original:
    Insertar CODE, HTML o PHP:
    /****END OF CONFIGURABLE PARAMETERS****/
    
    #include <EEPROM.h>
    adaptacion para avion:
    Insertar CODE, HTML o PHP:
    /****END OF CONFIGURABLE PARAMETERS****/
    
    #include <EEPROM.h>
    [COLOR=Red]#include <Servo.h>[/COLOR]
    alrededor de la linea 72:

    archivo original:
    Insertar CODE, HTML o PHP:
    // alias for RC
    #define ROLL 0
    #define PITCH 1
    #define YAW 2
    #define THROTTLE 3
    #define AUX1 4
    adaptado:
    Insertar CODE, HTML o PHP:
    // alias for RC
    #define ROLL 0
    #define PITCH 1
    #define YAW 2
    #define THROTTLE 3
    #define AUX1 4
    
    [COLOR=Red]Servo servoPitchRear;
    Servo servoPitchLeft;
    Servo servoPitchRight;[/COLOR]

    Alrededor de la linea 413:


    Insertar CODE, HTML o PHP:
    void writeMotors() {[COLOR=Red]
      analogWrite(REARMOTORPIN, motor[REAR]>>3);  // [1000;2000] => [125;250]
      #ifndef BI
      analogWrite(RIGHTMOTORPIN, motor[right]>>3);
      analogWrite(LEFTMOTORPIN, motor[left]>>3);
      #endif
      #ifndef TRI
      analogWrite(FRONTMOTORPIN, motor[FRONT]>>3);
      #endif[/COLOR]
    }
    
    void writeAllMotors(int16_t mc) {   // Sends commands to all motors
      motor[REAR] = mc;
      [COLOR=Red]#ifndef BI[/COLOR]
      motor[right] = mc;
      motor[left] = mc;
      [COLOR=Red]#endif
      #ifndef TRI
      motor[FRONT] = mc;
      #endif[/COLOR]
      writeMotors();
    }
    
    void initializeMotors() {
      [COLOR=Red]pinMode(REARMOTORPIN,OUTPUT);
      #ifndef BI
      pinMode(RIGHTMOTORPIN,OUTPUT);
      pinMode(LEFTMOTORPIN,OUTPUT);
      #endif
      #ifndef TRI
      pinMode(FRONTMOTORPIN,OUTPUT);
      #endif
      writeAllMotors(2000); //max motor command is maintained for 100ms at the initialization
      delay(100); //it's a way to calibrate the ESCs
      writeAllMotors(1000);
      delay(300);[/COLOR]
    }
    Adaptado:
    Insertar CODE, HTML o PHP:
    void writeMotors() {[COLOR=Red]
      servoPitchRear.writeMicroseconds(motor[REAR]);
      servoPitchLeft.writeMicroseconds(motor[left]);
      servoPitchRight.writeMicroseconds(motor[right]);[/COLOR]
    }
    
    void writeAllMotors(int16_t mc) {   // Sends commands to all motors
      motor[REAR] = mc;
      motor[right] = mc;
      motor[left] = mc;
      writeMotors();
    }
    
    void initializeMotors() {
      [COLOR=Red]servoPitchRear.attach(REARMOTORPIN);
      servoPitchLeft.attach(LEFTMOTORPIN);
      servoPitchRight.attach(RIGHTMOTORPIN);
      servoPitchRear.write(90);
      servoPitchLeft.write(90);
      servoPitchRight.write(90);
      motor[REAR] = 1500;
      motor[right] = 1500;
      motor[left] = 1500;[/COLOR]
    }
    ALrededor de la 906:

    original:
    Insertar CODE, HTML o PHP:
     if (currentTime > (rcTime + 20000) ) { // 50Hz
        computeRC();
        [COLOR=Red]if (rcData[THROTTLE] < MINCHECK) {
          errorI[ROLL] = 0;
          errorI[PITCH] = 0;
          errorI[YAW] = 0;
          rcDelayCommand++;
          if (rcData[YAW] < MINCHECK && armed == 1) {
            if (rcDelayCommand == 20) { // rcDelayCommand = 20 => 20x20ms = 0.4s = time to wait for a specific RC command to be acknowledged
              armed = 0;
              writeAllMotors(MINCOMMAND);
            }
          } else if (rcData[YAW] < MINCHECK && rcData[PITCH] < MINCHECK && armed == 0) {
            if (rcDelayCommand == 20) {
              calibratingA=400;
              calibratingG=400;
              blinkLED(10,100,1);
            }
          } else if (rcData[YAW] > MAXCHECK && rcData[PITCH] < MAXCHECK && armed == 0 && calibratingG == 0) {
            if (rcDelayCommand == 20) {
              armed = 1;
              writeAllMotors(MINTHROTTLE);
            }
          } else if (rcData[YAW] > MAXCHECK && rcData[PITCH] > MAXCHECK && armed == 0) {
            if (rcDelayCommand == 20) {
              configurationLoop(); //beginning LCD configuration
              previousTime = micros();
            }
          } else {
            rcDelayCommand = 0;
          }
        }[/COLOR]
    modificado:
    Insertar CODE, HTML o PHP:
    if (currentTime > (rcTime + 20000) ) { // 50Hz
        computeRC();
    Alrededor de la 989:

    original:
    Insertar CODE, HTML o PHP:
    [COLOR=Red]if (armed ) {[/COLOR]
        #ifdef BI
        motor[FRONT] = 1500 + rcCommand[THROTTLE] - axisPID[PITCH] ;
        motor[REAR]  = 1500 + rcCommand[THROTTLE] + axisPID[PITCH] ;
        #endif
    
        #ifdef TRI
        [COLOR=Red]motor[REAR]  = 1500 + rcCommand[THROTTLE] + axisPID[PITCH]*4/3 ;
        motor[right] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL] - axisPID[PITCH]*2/3 ;
        motor[left]  = 1500 + rcCommand[THROTTLE] + axisPID[ROLL] - axisPID[PITCH]*2/3 ;[/COLOR]
        #endif
    
        #ifdef QUADP
        motor[FRONT] = 1500 + rcCommand[THROTTLE] - axisPID[PITCH] - axisPID[YAW];
        motor[right] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL]  + axisPID[YAW];
        motor[left]  = 1500 + rcCommand[THROTTLE] + axisPID[ROLL]  + axisPID[YAW];
        motor[REAR]  = 1500 + rcCommand[THROTTLE] + axisPID[PITCH] - axisPID[YAW];
        #endif
    
        #ifdef QUADX
        motor[FRONT_L] = 1500 + rcCommand[THROTTLE] + axisPID[ROLL] - axisPID[PITCH] - axisPID[YAW];
        motor[FRONT_R] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL] - axisPID[PITCH] + axisPID[YAW];
        motor[REAR_L]  = 1500 + rcCommand[THROTTLE] + axisPID[ROLL] + axisPID[PITCH] + axisPID[YAW];
        motor[REAR_R]  = 1500 + rcCommand[THROTTLE] - axisPID[ROLL] + axisPID[PITCH] - axisPID[YAW];
        #endif
    
     [COLOR=Red] }[/COLOR]
    modificada:
    Insertar CODE, HTML o PHP:
    [COLOR=Red]//  if (armed ) {[/COLOR]
        #ifdef BI
        motor[FRONT] = 1500 + rcCommand[THROTTLE] - axisPID[PITCH] ;
        motor[REAR]  = 1500 + rcCommand[THROTTLE] + axisPID[PITCH] ;
        #endif
    
        #ifdef TRI  
        [COLOR=Red]motor[REAR]  = 1500 + axisPID[PITCH]*4/3 ;
        motor[right] = 1500 - axisPID[ROLL]  ;
        motor[left]  = 1500 + axisPID[ROLL]  ;[/COLOR]
        #endif
    
        #ifdef QUADP
        motor[FRONT] = 1500 + rcCommand[THROTTLE] - axisPID[PITCH] - axisPID[YAW];
        motor[right] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL]  + axisPID[YAW];
        motor[left]  = 1500 + rcCommand[THROTTLE] + axisPID[ROLL]  + axisPID[YAW];
        motor[REAR]  = 1500 + rcCommand[THROTTLE] + axisPID[PITCH] - axisPID[YAW];
        #endif
    
        #ifdef QUADX
        motor[FRONT_L] = 1500 + rcCommand[THROTTLE] + axisPID[ROLL] - axisPID[PITCH] - axisPID[YAW];
        motor[FRONT_R] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL] - axisPID[PITCH] + axisPID[YAW];
        motor[REAR_L]  = 1500 + rcCommand[THROTTLE] + axisPID[ROLL] + axisPID[PITCH] + axisPID[YAW];
        motor[REAR_R]  = 1500 + rcCommand[THROTTLE] - axisPID[ROLL] + axisPID[PITCH] - axisPID[YAW];
        #endif
    
    [COLOR=Red]//  }[/COLOR]
    Alrededor de la 1040:

    original:
    Insertar CODE, HTML o PHP:
    #endif
          motor[i] = constrain(motor[i], MINTHROTTLE, MAXCOMMAND);
          [COLOR=Red]if ((rcCommand[THROTTLE]+1500) < MINCHECK)
            motor[i] = MINTHROTTLE;
          if (armed == 0)
            motor[i] = MINCOMMAND;[/COLOR]
        }
    adaptado:
    Insertar CODE, HTML o PHP:
    #endif
          motor[i] = constrain(motor[i], MINTHROTTLE, MAXCOMMAND);
    [COLOR=Red]//      if ((rcCommand[THROTTLE]+1500) < MINCHECK)
    //        motor[i] = MINTHROTTLE;
    //      if (armed == 0)
    //        motor[i] = MINCOMMAND;[/COLOR]
        }

    Perdon por el petardo... :sad:


    Eso es todo lo distinto. Sabiendo esto, os pregunto, a vosotros todosabedores de wii y de arduino, es relativamente facil adaptar esta modificacion de los codigos a la version 1.6??? y asi poder usar mi wmp y de paso poder usar una version mas reciente del multiwii...
     
  20. jarto Miembro

    jarto
    Registrado:
    20 Dic 2010
    Mensajes:
    247
    Me Gusta recibidos:
    0
    Hola Juan yo no soy ningún experto en arduino, pero te voy a comentar un parcas cosas que había visto en el código, yo estaba intentando adaptarlo al seduino pero he visto que hay bastante trabajo, y lo estoy dejando un poco de lado.
    El primer error (desde mi humilde opinión) es usar cálculos de orientación de multicoptero para avión y simplemente transformar las correcciones a los servos, esto no pasa en los códigos de ardupilot que usan diferentes algoritmos para avión y multi. (este es el punto que yo quería atacar)

    El segundo error es no tener un estado intermedio entre los cálculos de orientación y los reenvíos de las correcciones así será mas fácil adaptar distintas configuraciones ( como flaperones, elevon, y distintas colas) Este error no lo tengo muy claro como ya digo estoy aun un poco perdido con este lenguaje de programación.
    Bueno un saludo y a ver si le damos vida al post que es muy interesante.
     
  21. SithX Miembro Activo

    SithX
    Registrado:
    12 Ene 2011
    Mensajes:
    1.629
    Me Gusta recibidos:
    0
    Os planteo mi problema.. Estoy montando un wiicopter con el NK pero tengo el problema de que no establiza bien, es como si volviese loco el WMP he montado éste cableado como viene en el manual de multiwii.

    [​IMG]

    Y en éste foro he visto ésta otra forma de montarlo.

    [​IMG]

    Si os fijais el cableado del GND parece cambiado. Puede que esté mezclando una cosa con otra pero es por ir descartando posibilidades.

    El Acelerómetro es:

    2RNJ
    3L02AE
    720
    MLT

    Gracias de antemano.
     
  22. Rodrigo_zgz Miembro

    Rodrigo_zgz
    Registrado:
    13 Ene 2011
    Mensajes:
    276
    Me Gusta recibidos:
    0
    Mira con un polimetro, pero en la foto de arriba parece que los dos ultimos nodos son de masa los dos, asi que daria igual cual coger.

    Saludos.
     
  23. SithX Miembro Activo

    SithX
    Registrado:
    12 Ene 2011
    Mensajes:
    1.629
    Me Gusta recibidos:
    0
    Si son de GND ambas...

    Podría ser que tiene el stick analógico aún puesto??
     
  24. Mig Nuevo Miembro

    Mig
    Registrado:
    25 Abr 2011
    Mensajes:
    1
    Me Gusta recibidos:
    0
    Giroscopio.

    Buenas. me presento en este foro, soy Miguel.
    Estoy haciendo un desarrollo mecanico para un mecanismo y necesito implementar un giroscopio que al llegar a determinado angulo active la alimentacion de un motor de rc. Pues en desarrollo mecanico voy bien pero en electronica nada. Necesitaria que me desarrollaran el circuito, pagando claro. Os dejo mi correo por si alguno podeis. maparisivaldes@yahoo.es. Un saludo.
     
  25. sokoloko Miembro

    sokoloko
    Registrado:
    23 Nov 2008
    Mensajes:
    111
    Me Gusta recibidos:
    0
    Hola a todos!!!!!!!!!

    Veo que todos le damos vueltas a lo mismo, jajajaaaa!!!!

    Yo tambien tengo pensado realizar un estiwiilizador :laugh:, lo que pasa que de primeras lo voy a simplificar un poco.

    En vez de usar WMP + NK, voy a iniciar solo con WMP, pues en un avion no le veo mucho sentido a los acelerometros, pues al menos hacia adelante, va a estar avanzando siempre (al menos los mios:ansioso::ansioso:)

    Y en vez de usar un arduino, queria implementarlo con un PIC de microchip, (tipo 16f88) pues tengo alguno en casa mirando, y aparte de ser mas economicos, de momento lo puedo probar en una placa board poniendo y quitando cablecitos.

    Hoy me ha llegado el WMP y ya esta destripado, ya tengo parte del codigo modificado de este post http://www.aeromodelismovirtual.com/showthread.php?t=5410 ....a ver estos dias puedo ir probando cosillas.
     
  26. juanvivo Maestro FPV

    juanvivo
    Registrado:
    13 Ene 2011
    Mensajes:
    2.341
    Me Gusta recibidos:
    0
    Por mi parte tengo el proyecto aparcado por falta de conocimientos...
     
  27. juanvivo Maestro FPV

    juanvivo
    Registrado:
    13 Ene 2011
    Mensajes:
    2.341
    Me Gusta recibidos:
    0
  28. sokoloko Miembro

    sokoloko
    Registrado:
    23 Nov 2008
    Mensajes:
    111
    Me Gusta recibidos:
    0
    Bueno, pues no va nada mal.

    Ya leo los datos del WMP y controlo los servos, ahora me queda ir refinando el codigo pues hace alguna cosilla rara.

    Pero en breve......una version alpha......:party::party:
     
  29. juanvivo Maestro FPV

    juanvivo
    Registrado:
    13 Ene 2011
    Mensajes:
    2.341
    Me Gusta recibidos:
    0
    Estupendo pues! Le añadiras también el nunchuck para tener tb acelerometros y evitar eerrores?
     
  30. sokoloko Miembro

    sokoloko
    Registrado:
    23 Nov 2008
    Mensajes:
    111
    Me Gusta recibidos:
    0
    Jajajaa!!!!

    Que te parece si vamos x pasos???:tongue2:

    De momento el WMP...luego, claro que se puede ir añadiendo cosillas.

    :laugh:
     
  31. SithX Miembro Activo

    SithX
    Registrado:
    12 Ene 2011
    Mensajes:
    1.629
    Me Gusta recibidos:
    0
    Por mi parte te animo a este desarroyo la verdad es que promete, y bueno aquí estaré lo mismo me animo a hacer experimentos la pena es que no sé programar
    Bueno un saludo y felicitaciones por el desarroyo :ansioso:
     
  32. juanvivo Maestro FPV

    juanvivo
    Registrado:
    13 Ene 2011
    Mensajes:
    2.341
    Me Gusta recibidos:
    0
    Es solo un complemento, no hay que programar nada al efecto. Segun tengo entendido, el mismo WM+ se encarga de interpretar y corregir sus mediciones, por lo que al pic le seguirian llegando las mismas señales, solo que mas exactas y sin errores acumulados.
     
  33. sokoloko Miembro

    sokoloko
    Registrado:
    23 Nov 2008
    Mensajes:
    111
    Me Gusta recibidos:
    0
    Te equivocas Juan :cool2:, Si bien es cierto que las señales viajan a traves del protocolo I2C, esos datos, hay que leer, organizar, escalar y procesar para que hagan algo, sino por muchos dispositivos que pongas, si no se programan, no hacen nada.

    Asi que poco a poco, jejjeeee!!!!

    Saludos.
     
  34. juanvivo Maestro FPV

    juanvivo
    Registrado:
    13 Ene 2011
    Mensajes:
    2.341
    Me Gusta recibidos:
    0
    ok, seguro que estoy equivocado.

    No entendi bien las explicaciones que dan en el hilo del multiwicoptero, o el de rcgroups. Crei entender eso.

    En fin, paso a paso.
     
  35. sokoloko Miembro

    sokoloko
    Registrado:
    23 Nov 2008
    Mensajes:
    111
    Me Gusta recibidos:
    0
    Hola!!!!

    Pues tengo buenas y malas noticias, jeje!!!

    Lo primero, dejo un video de la version beta, beta, beta...vamos que ni por asomo es operativa, pero algo empieza a hacer.

    http://www.youtube.com/watch?v=dmdL5d-NwI8

    Lo malo, es que voy a tener que postponer el proyecto, pues el PIC que uso, no da mas de si, es un 16F88 y no tienen mas ROM, se podria cambiar a la arquitectura de los 18f...pero, tengo que modificar bastante el codigo, y sinceramente no tengo ni idea de por donde empezar :redface2:.

    Asi que de momento toca esperar....
     
  36. Omnimusha Nuevo Miembro

    Omnimusha
    Registrado:
    5 Feb 2011
    Mensajes:
    18
    Me Gusta recibidos:
    0
    hola, tengo el arduino uno y me consegui el Nunchuck, lo he conectado y todo bien. pero la infoemacion q me proporciona, no se en que esta expesada, es decir no se si son datos "g" o estan en "numeros brutos" q debo hacer alguna operacion para convertilos.
    en resumen quiero saber como convertilos en g, y q me den los angulos

    http://webdelcire.com/wordpress/archives/481

    desde ya muchas gracias!!:worthy:
     

Compartir esta página