Ayuda diseño con ardupilot

Tema en 'R/C ELECTRÓNICA' iniciado por JuanTrillo, 3 Dic 2010.

  1. JuanTrillo Gurú FPV

    JuanTrillo
    Registrado:
    21 Sep 2007
    Mensajes:
    5.285
    Me Gusta recibidos:
    0
    Hola:

    Quiero hacer una prueba de integracion de fy20A con ikarus y necesitaria ayuda de alguno que se defienda con ardupilot, que es lo que tengo a mano.

    Entradas:

    (x,y) Dos señales pwm de rango 900 - 2000

    Salidas:

    f(x) f(y) Dos salidas vcc de rango 0 - 3.3v

    Objetivo:

    f(900)=0 v.
    f(2000)=3.3 v.

    Salidas proporcionales a entradas.

    ¿Es posible?¿Alguno puede generar el codigo para probarlo?

    Gracias.
    JuanTrillo
     
  2. jose3f Miembro

    jose3f
    Registrado:
    6 Feb 2010
    Mensajes:
    999
    Me Gusta recibidos:
    0
    Juan:

    Lo de usar Ardupilot entiendo que lo dices por utilizar el que tienes en las pruebas, pero que el desarrollo final no va a ser con Ardupilot.

    Con Arduino ,o casi con cualquier microcontrolador, la tarea no es complicada.

    Se trata de sacar a la salida una señal de pulsos (PWM) de ancho variable que se integra para dar la tensión deseada.

    Me pongo a ello.

    Saludos.
     
  3. jose3f Miembro

    jose3f
    Registrado:
    6 Feb 2010
    Mensajes:
    999
    Me Gusta recibidos:
    0
    Tengo Ardupilot, Arduino, Fy20a y Fy21 para hacer pruebas.

    El Ikarus me lo compro cualquier día.

    Saludos.
     
  4. jose3f Miembro

    jose3f
    Registrado:
    6 Feb 2010
    Mensajes:
    999
    Me Gusta recibidos:
    0
    Ya está

    Bueno Juan:

    Antes de que me contestes ya funciona. Lo acabo de probar y la salida en el osciloscopio me da una señal muy limpio sin rizado:

    int rcpulse = 7; // la señal entra por el pin7
    int salida = 6; // devuelve por un puerto PWM (el 6) una señal pulsada que integrada da entre 0 y 3.3V
    // Poner un filtro RC a la salida (Por ejemplo probar con R=100K C = 1uF)

    unsigned long duration;

    void setup() {
    pinMode(salida, OUTPUT);
    pinMode(rcpulse,INPUT);
    // Serial.begin(9600);
    }

    void loop()

    {
    duration = pulseIn(rcpulse,HIGH);

    // 0.66 = 3.3/5
    // 168 = 255* 0.66 Conversion de señal PWM para que de entre 0 y 3.3V (255 = 5V)
    int tension = map(duration, 900, 2000, 0, 168);
    analogWrite(salida, tension);

    //Serial.println(duration, DEC);
    //Serial.println(tension, DEC);
    //Serial.println();
    //delay(100);

    }



    Corta y pega.

    Saludos.
     
  5. JuanTrillo Gurú FPV

    JuanTrillo
    Registrado:
    21 Sep 2007
    Mensajes:
    5.285
    Me Gusta recibidos:
    0
    Eres un monstruo.

    Muchas gracias.

    JuanTrillo
     
  6. jose3f Miembro

    jose3f
    Registrado:
    6 Feb 2010
    Mensajes:
    999
    Me Gusta recibidos:
    0
    Juan:

    Depende de la respuesta que quieras en la salida se puede ajustar el filtro RC convenientemente.

    Yo creo que con los valores que he puesto (100K y 1uF ) la respuesta es del orden de 0,2 secs, que es como la de un servo medio. El rizado es de 0.8mV.

    Se podría bajar el producto RC para tener respuesta mas rápida y un poco mas de rizado que está muy bajo, mas de lo necesario.

    También se podría poner un circuito de salida mas complicado con un amplificador operacional.

    Todo depende de lo que necesite el interface con el FY20.

    Si lo cargas en el Ardupilot debería funcionar ya que los pines 6 y 7 no se utilizan en la versión 1.

    Yo lo he probado en un Arduino Diecimila.

    Saludos.
     
  7. JuanTrillo Gurú FPV

    JuanTrillo
    Registrado:
    21 Sep 2007
    Mensajes:
    5.285
    Me Gusta recibidos:
    0
    Si no te importa voy a abusar un poco mas.

    No tengo intención de usar el ardupilot con su software original, sino que me gustaria probar este finde la integracion ikarus-fy20 por el conector del cabezal copilot. Podemos usar cualquier puerto que valga para este fin.

    ¿Podrias poner el codigo para dos entradas y dos salidas?

    Voy de mientras preparando los conectores, componentes y soldador.

    Gracias.
    JuanTrillo
     
  8. jose3f Miembro

    jose3f
    Registrado:
    6 Feb 2010
    Mensajes:
    999
    Me Gusta recibidos:
    0
    Juan:

    En el código que te adjunto utilizo los pines D6,D7,D8 y D11.

    int rcpulse1 = 7; // la señal entra por el pin7
    int salida1 = 6; // devuelve por un puerto PWM (el 6) una señal pulsada que integrada da entre 0 y 3.3V
    // Poner un filtro RC a la salida (Por ejemplo probar con R=100K C = 1uF)
    int rcpulse2 = 8;
    int salida2 = 11;

    unsigned long duration1;
    unsigned long duration2;

    void setup() {

    pinMode(salida1, OUTPUT);
    pinMode(rcpulse1,INPUT);
    pinMode(salida2, OUTPUT);
    pinMode(rcpulse2,INPUT);
    // Serial.begin(9600);
    }

    void loop()

    {
    duration1 = pulseIn(rcpulse1,HIGH);
    duration2 = pulseIn(rcpulse2,HIGH);

    int tension;
    // 0.66 = 3.3/5
    // 168 = 255* 0.66 Conversion de señal PWM para que de entre 0 y 3.3V (255 = 5V)
    tension = map(duration1, 900, 2000, 0, 168);
    analogWrite(salida1, tension);
    tension = map(duration2, 900, 2000, 0, 168);
    analogWrite(salida2, tension);

    //Serial.println(duration, DEC);
    //Serial.println(tension, DEC);
    //Serial.println();
    //delay(100);
    }


    En este momento no puedo probarlo con mi placa de Ardupilot pero debería funcionar. Ya te digo que experimentes con distintos valores de RC para conseguir la señal de salida que vaya mejor para lo que quieres hacer.

    Saludos.
     
  9. JuanTrillo Gurú FPV

    JuanTrillo
    Registrado:
    21 Sep 2007
    Mensajes:
    5.285
    Me Gusta recibidos:
    0
    Me gustaría poder usar este esquema para simplificar el cableado.
    ¿crees que es posible?

    Saludos
    JuanTrillo
     

    Adjuntos:

  10. jose3f Miembro

    jose3f
    Registrado:
    6 Feb 2010
    Mensajes:
    999
    Me Gusta recibidos:
    0
    El problema con las entradas que quieres utilizar es el siguiente:

    El circuito del Ardupilot es fundamentalmente un Atmega con un microcontrolador AtTiny auxiliar y un multiplexor 74LS157 que dan paso a las señales del receptor o seleccionan las salidas del ATmega cuando está en funcionamiento el autopiloto.

    Por desgracia las entradas que quieres utilizar son las que pasan a través de 74LS157.

    Pero no tienes ningún problema en utilizar las que te propongo. Solo hacer unos conectores del tipo que quieras con señal y masa. O cortas los prolongadores que salen del FY20 y los sueldas a los pines D7 y D8 además de la masa.

    Por lo demás el esquema que propones debería funcionar.

    Saludos.
     
  11. JuanTrillo Gurú FPV

    JuanTrillo
    Registrado:
    21 Sep 2007
    Mensajes:
    5.285
    Me Gusta recibidos:
    0
    ok. Entendido.

    Entonces esto:

    JT
     

    Adjuntos:

  12. jose3f Miembro

    jose3f
    Registrado:
    6 Feb 2010
    Mensajes:
    999
    Me Gusta recibidos:
    0
    Juan:

    el esquema que pones es correcto.

    Pero cuidado con la alimentación. Lo ideal es que V+ sea 5V. Y eso depende de como alimentes el FY20. Es verdad que el ATmega y los demás integrados tienen un cierto margen que puedes ver en los datasheet de Atmel.

    Saludos.
     
  13. JuanTrillo Gurú FPV

    JuanTrillo
    Registrado:
    21 Sep 2007
    Mensajes:
    5.285
    Me Gusta recibidos:
    0
    El resultado

    Pues tras probar el invento pongo los resultados.
    Os dejo las medidas pulsos de servos, configuracion de ikarus y salidas.
    Falta ajustar ganancias para igualar angulos, pero eso se hace en ikarus y es muy sencillo de hacer, cambiando el parámetro de ganancia.

    Ya está en desarrollo un microcircuito, pero ya cualquiera puede probarlo porque verdaderamente merece la pena.

    Muchas gracias a jose3f por su ayuda inestimable.

    JuanTrillo

    Rango de pulsos
    [vimeo]17563389[/vimeo]

    Configuración ikarus
    [vimeo]17560884[/vimeo]

    Prueba
    [vimeo]17560936[/vimeo]
     
  14. acristóbal Gurú FPV

    acristóbal
    Registrado:
    9 Oct 2006
    Mensajes:
    3.710
    Me Gusta recibidos:
    0
    Hola Juan y compañía:
    Estos desarrollos y ayudas me parecen fundamentales para poder mejorar en cualquier ámbito.
    Gracias por compartir.

    Una pregunta. ¿Cual es la necesidad de usar el ardupilot? teóricamente el IKARUS es capaz de hacer lo que hace el ardupilot ¿no?

    Entiendo que lo único que necesitas es un Arduino, ¿no es así?
     
  15. jose3f Miembro

    jose3f
    Registrado:
    6 Feb 2010
    Mensajes:
    999
    Me Gusta recibidos:
    0
    Alberto:

    Simplemente es que Juan tenía disponible una placa de Ardupilot.

    Como escribo en otro hilo, el código se puede implementar en un pequeño microcontrolador sin hacer uso del entorno de Arduino.

    De todas formas ahí queda el código para el que quiera jugar con el Ardupilot y el FY20.

    Saludos.
     
  16. acristóbal Gurú FPV

    acristóbal
    Registrado:
    9 Oct 2006
    Mensajes:
    3.710
    Me Gusta recibidos:
    0
    Me lo parecía, pero siempre viene bien aclararlo.
     
  17. supercanii Moderator

    supercanii
    Registrado:
    12 Mar 2008
    Mensajes:
    4.408
    Me Gusta recibidos:
    0
    Cuando Tron saque la versión 2.5 para el OSD644 y el conexionado con el cabezal del copilot intentaré hacer el mismo invento conectar el FY20 con el OSD644... al parecer con el Ikarus se integra perfectamente no.?

    saludos,
    Sergio.
     
  18. Tron Maestro FPV

    Tron
    Registrado:
    16 Jun 2007
    Mensajes:
    2.775
    Me Gusta recibidos:
    0
    Hola Sergio,

    El estabilizador de la version 2.5 no esta en el OSD644DMDG si no en el receptor LRS , en las 2 entradas donde se conecta el sensor IR ,CH11 y CH12.
    Basta conectar la salida analogica que habeis confeccionado del FY20 a las entradas del receptor.

    Estas solo necesitan 2.5V para 0º (centro) y desde +-1V a +-2.5V para detectar la inclinacion.

    El gyro debe funcionar como un inclinometro pues lo unico que necesita es un voltaje proporcional al grado de inclinacion del avion para disponer de los datos del horizonte artificial.

    El resultado con filtrado a 0.2 segundos o 5Hz no da demasiada calidad (creo que el IR da 10Hz y un gyro normal mas de 40Hz) si esta señal se usa como estabilizacion, pero es una solucion economica.

    Supongo que en vuestro caso es para sacar el horizonte artificial en el OSD. Entonces pienso que ira bien.
    en el caso del sistema LRS 869Mhz, sirve como señal para el estabilizador y autopiloto, igual es un poco lenta. Habria que probar.

    Cuando me enviaste el FY20 no pense que esto seria una solucion correcta debido a que en nuestro caso es para el estabilizador y autopiloto y el FY-20 se usa solo como sensor.:rolleyes2:

    Saludos,:smile:
     
  19. JuanTrillo Gurú FPV

    JuanTrillo
    Registrado:
    21 Sep 2007
    Mensajes:
    5.285
    Me Gusta recibidos:
    0
    No es correcto Tron. Sustituimos el cabezal IR por el FY20 para estabilizar en autopilot con ikarus. Alerones, motor, direccion, motor, pan, tilt, dos camaras, telemetria por video, etc..las gestiona ikarus.

    Y ademas muestra el horizonte:wink2:

    JuanTrillo
     
  20. acristóbal Gurú FPV

    acristóbal
    Registrado:
    9 Oct 2006
    Mensajes:
    3.710
    Me Gusta recibidos:
    0
    Ya que veo que por aquí hay bastantes entendidos en programación me permito la intromisión para hacer una pregunta.

    ¿Como puedo hacer con Arduino para bajar la velocidad de funcionamiento de un servo?

    Gracias y perdón por las molestias.
     
  21. jaunmaya Miembro

    jaunmaya
    Registrado:
    5 Oct 2009
    Mensajes:
    275
    Me Gusta recibidos:
    0
    eagle tree opsd + fy20

    Hola compis,

    traslado a este hilo mis pruebas de RTH con eagle tree y fy 20 por si os vale de algo. El resumen de mi pelicula lo pedeis ver en el hilo y que os pongio aquí abajo.
    Ahora voy a comprar un osd de Eladio y usarlo con el fy 20. Pienso que el que hace que un osd regrese a casa es el fy20 y como responda el osd y por lo que he visto el de Eladio se sale, tiene una respuesta a los cambios externos aún mejor que eagle tree y lo mejor de todo es que según he visto en los videos y con el programita que me he descargado de su web es muy fácil configurarlo. Navega por waypoints con alturas seleccionables en cada waypoint ¡¡¡¡¡¡¡¡¡¡¡:ansioso: dios como me lo voy a pasar con ese chisme.

    Bueno el mensajito que puse en el hilo :

    Me gustaría que nos os dieseis mas piñas como yo y por eso comparto esto con vosotros.

    He instalado el eagle tree osd pro y el FY-20, solo establizador. UNA MARAVILLA TOTAL ¡¡¡¡¡¡
    Sin configurar casi nada, solo ganancia del FY 20 regresa a casa de cualquier modo e incluso desde 30 metros de altura ( nunca menos de 25 metros ). Es la primera vez que lo consigo tanto es así que con la emoción me quede sin batería de vídeo y tuve que volver apagando la radio y tachan ¡¡¡ , avión en casa en dos minutos.

    Pámetros que creo son vitales en al configuración del rth en el osd :

    1º- no meter profundidad para el rth , solo motor, si metes profundidad solo 80-90.
    2º máxima ganancia para el F20 o al menos 80% alabeo y 60 profundidad
    3º motor constante metiendo uno 60 km/h de velocidad de crucero.
    4º alabeo máximo 280.

    Solo con esto regresará hasta con 25 km/h de viento.

    Nota: me ha regresado incluso con un defecto del FY-20 ay que me hacia un raro que he arreglado con un reseteo, pero aún así regresaba a casa.
    Ahora no me tiemblan las piernas cuando me pasa algo, disfruto el doble y puedo volar kilometro y medio a 40 metros sin miedo. Yuuuuuupi

    Saludos
     
  22. JuanTrillo Gurú FPV

    JuanTrillo
    Registrado:
    21 Sep 2007
    Mensajes:
    5.285
    Me Gusta recibidos:
    0
    Gracias por el aporte.

    JuanTrillo
     
  23. SithX Miembro Activo

    SithX
    Registrado:
    12 Ene 2011
    Mensajes:
    1.629
    Me Gusta recibidos:
    0
    Hola me gustaría montar con ardupilot un rth para el caso de failsafe, hablamos de que de momento lo monto en un avion sin FPV solo con el estabilizador fy20a
    ¿Alguien me podría marcar algunas pautas? Si es posible también me gustaría que hiziera rutas por waypoints..

    Un saludo..
     
  24. supercanii Moderator

    supercanii
    Registrado:
    12 Mar 2008
    Mensajes:
    4.408
    Me Gusta recibidos:
    0
    Si queres ir haciendo "boca" entra en este hilo hablan de ardupilot, programación, códigos, ideas, soluciones en 1508 post algo interesante encontraras.

    Saludos,
    Sergio.
     

Compartir esta página