Rx de video lawmate

Tema en 'R/C Antenas, Emisores, Receptores y Comunicaciones' iniciado por batuadello, 12 Jun 2015.

  1. batuadello Miembro

    batuadello
    Registrado:
    1 Ago 2013
    Mensajes:
    267
    Me Gusta recibidos:
    0
    Hola,
    Me gustaría conseguir sacar el rssi del rx de video lawmate. Lo unico que he podido encontrar es este tutorial y el cableado lo veo facil, lo que no tengo claro es la parte de la pantalla. No se que necesito, el tipo de pantalla y como configurarlo relacionando voltaje y %.

    Aqui os dejo el tuto
    http://stigern.net/blog/?p=514

    Alguien lo ha hecho? Podria explicar como hacerlo?

    Gracias de antemano
     
  2. batuadello Miembro

    batuadello
    Registrado:
    1 Ago 2013
    Mensajes:
    267
    Me Gusta recibidos:
    0
    Nadie controla arduino?

    Sé como sacar el voltaje del rx de video pero lo demás para "transformar" el voltaje a porcentaje, no tengo ni idea.

    Vaa seguro que alguien lo ha hecho ya!:wink2:
     
  3. krampman Miembro

    krampman
    Registrado:
    18 May 2015
    Mensajes:
    199
    Me Gusta recibidos:
    0
    Porcentaje , pero de que manera?
    en un LCD?

    o para que te lo meta por la telemetría?

    dame mas pistas
     
  4. batuadello Miembro

    batuadello
    Registrado:
    1 Ago 2013
    Mensajes:
    267
    Me Gusta recibidos:
    0
    Perdonad, veo que no me expliqué demasiado bien. Es para simplemente tener un medidor de la calidad de señal de video en mi maleta de vuelo. Exacto, con una pantalla lcd o similar. De este modo siempre sabes como vas de calidad de video.
    En el link se puede ver una de esas pantallas lcd marcando el %.

    Gracias!
     
  5. krampman Miembro

    krampman
    Registrado:
    18 May 2015
    Mensajes:
    199
    Me Gusta recibidos:
    0
    la verda que con arduino es muy fácil, son pocas lineas de código.

    es necesario que sepas que nivel de voltaje sale del rssi, el arduino (según versión) tiene entrada 5v o 3.3v , según lo que tengas que medir o directo o a través de un divisor de tensión y a una entrada analogica (A0)

    se lee ese pin y fácilmente se puede usar la función map para pasar el valor del AD (de 0 a 1023) a porcentajes (de 0 a 100)

    porcentaje = map( analogRead(A0), 0, 1023, 0, 100);

    ese valor lo pintas en la pantalla.
     
  6. batuadello Miembro

    batuadello
    Registrado:
    1 Ago 2013
    Mensajes:
    267
    Me Gusta recibidos:
    0
    [emoji122] [emoji122] [emoji122] [emoji122]

    Al fin alguien qe entiende de arduino.
    Te importaria que pusieramos los pasos en este hilo?
    Creo que le servira a mas de uno. Yo por ejemplo empiezo de 0.
    Lo primero de todo, si nos puedes especificar el material que necesitamos, desde la lcd al cable usb para programar, es decir la lista de la compra.

    Mil gracias
     
  7. dayanki Miembro Activo

    dayanki
    Registrado:
    19 Dic 2010
    Mensajes:
    1.483
    Me Gusta recibidos:
    0
    Me apunto. Yo empiezo de -5 :redface2:
     
  8. krampman Miembro

    krampman
    Registrado:
    18 May 2015
    Mensajes:
    199
    Me Gusta recibidos:
    0
    Eso de que se empieza de 0 o de menos se dice antes :)
    que seguro os ha parecido que hablo en chino.

    En tener un rato os lo pongo, pero es necesario saber que señal dale como rssi, si eso casi que no hacemos nada
     
    #8 krampman, 17 Jun 2015
    Última edición: 17 Jun 2015
  9. dayanki Miembro Activo

    dayanki
    Registrado:
    19 Dic 2010
    Mensajes:
    1.483
    Me Gusta recibidos:
    0
    Gracias krampman. Para no liarla ya antes de empezar, abro la carcasa del RX Lawmate (el mio es en 2.4 GHz, no importa, verdad?) y mido el voltaje entre los pines que se ven en la foto del enlace del compañero Botuadello. Es así?
     

    Adjuntos:

    • RSSI.jpg
      RSSI.jpg
      Tamaño de archivo:
      62,2 KB
      Visitas:
      41
  10. batuadello Miembro

    batuadello
    Registrado:
    1 Ago 2013
    Mensajes:
    267
    Me Gusta recibidos:
    0
    Muchas gracias krampman!
    El voltaje del rx de video va de 0-5v, creo que no llega, pues a 0'86v no tiene señal y a 4'5v esta al maximo.

    Para alimentar todo el tinglado del arduino supongo que valdra con un bec a 5v, ¿no?

    Gracias de nuevo!
     
  11. batuadello Miembro

    batuadello
    Registrado:
    1 Ago 2013
    Mensajes:
    267
    Me Gusta recibidos:
    0
    quizás tendrías que investigar si son los mismos pines, no vaya a ser que sean diferentes y te marque lo que no es
     
  12. krampman Miembro

    krampman
    Registrado:
    18 May 2015
    Mensajes:
    199
    Me Gusta recibidos:
    0
    Hola, bueno he tenido un rato y aquí teneis algo para empezar.
    Lo he hecho con una LCD 20x4 que tenia por casa, como te tenia pùesta un controlador I2C lo he hecho asi, casi que mas comodo por que solo se necesitan 4 cables desde el arduino al LCD.

    Este es el esquema básico para conectar el LCD al arduino (según placa de arduino varian los pines)

    [​IMG]

    Me he liado y le he dado doble entrada para poder medir dos Vtx y como no, un sencillo control para un diversity (claro esta que le falta toda la electrónica)



    Este es el código para el ardiuno:
    Insertar CODE, HTML o PHP:
    // Medidor de RRSSi para receptores FPV
    // Salidas de control para Diversity
    // Toni Mancera, 2015
    // *************************************
         #include "I2Cdev.h"
        #include <LiquidCrystal_I2C.h>
        #include <Wire.h>
        
        
      
      // Configuramos el tipo de LCD a usar, en este caso por conexion I2C
      // En arduino Leonardo, conexion SCL a pin D3 y SDA a pin D2
      LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
      
      // Declaramos las entradas de señal
      
      int Rx_1 = A0;                    // Pin entrada RSSI del Rx1
      int Rx_2 = A1;                    // Pin entrada RSSI del Rx2
      
      // Declaramos las salidas de aviso
      
      int Alarm = 4;                    // Pin de salida para la alarma de señal baja
      int Rx_sel_1 = 5;                 // Pin de salida control diversity del RX1
      int Rx_sel_2 = 6;                 // Pin de salida control diversity del RX2
      
      // Declaramos las variables generales
      
      int nivel = 10;                   // Nivel del diferencial para salto del diversity
      int rssi_1;
      int rssi_2;
      int Alarm_level = 40;             // Nivel del minimo para avisar acusticamente
      
      void setup()
      {
      pinMode(Rx_1, INPUT);
      digitalWrite(Rx_1, LOW);
      pinMode(Rx_2, INPUT);
      digitalWrite(Rx_2, LOW); 
      
      pinMode(Rx_sel_1, OUTPUT);
      digitalWrite(Rx_sel_1, LOW);
      pinMode(Rx_sel_2, OUTPUT);
      digitalWrite(Rx_sel_2, LOW); 
      
      lcd.begin(20,4);                         //  Aqui declarmos el tipo de pantalla en lineas y columnas
      lcd.clear();
      
      lcd.setCursor(0,0);
    //lcd.print("01234567890123456789");  
      lcd.print("RSSI Tx1  Pw   Dsty.");
      lcd.setCursor(0,2);
      lcd.print("RSSI Tx2  Pw   Dsty.");
      }
       void loop()
      {
      
        // Medimos la entrada del RX1 y aplicamos filtro Kalman, luego pintamos en pantalla los datos
        
        int rssi_a;
        int rssi_b = 0;
        int kalman = 10;
        for(int n = 0; n <= kalman; n++) 
        {
        rssi_a = analogRead(Rx_1);
        rssi_b = rssi_b + rssi_a;
        }
        rssi_1 = map((rssi_b/kalman), 0, 1130, 0, 100);
        if (rssi_1 <= 0) {rssi_1 = 0;}
        if (rssi_1 >= 100) {rssi_1 = 100;}
        
        Pintabarra_1();
        lcd.setCursor(9,1);
        lcd.print(rssi_1);
        lcd.setCursor(12,1);
        lcd.print("%");
         // Medimos la entrada del RX2 y aplicamos filtro Kalman, luego pintamos en pantalla los datos
         int rssi_c;
        int rssi_d = 0;
        for(int n = 0; n <= kalman; n++) 
        {
        rssi_c = analogRead(Rx_2);
        rssi_d = rssi_d + rssi_c;
        }
        rssi_2 = map((rssi_d/kalman), 0, 1130, 0, 100);
        if (rssi_2 <= 0) {rssi_2 = 0;}
        if (rssi_2 >= 100) {rssi_2 = 100;}
        
        Pintabarra_2();
        lcd.setCursor(9,3);
        lcd.print(rssi_2);
        lcd.setCursor(12,3);
        lcd.print("%");
     
         
        // Calculamos que RX tiene mas señal para el Diversity
      
        if ((rssi_1-nivel) < rssi_2) { lcd.setCursor(15,1);   lcd.print("    ");}
           else {lcd.setCursor(15,1);   lcd.print("<---"); digitalWrite(Rx_sel_2, HIGH);}
        if ((rssi_2-nivel) < rssi_1) { lcd.setCursor(15,3);   lcd.print("    ");}
           else {lcd.setCursor(15,3);   lcd.print("<---"); digitalWrite(Rx_sel_1, HIGH);}
        
      }
      
      void Pintabarra_1()
      {
        if (rssi_1 >= 0 && rssi_1 <=20) { lcd.setCursor(0,1);   lcd.print("#       ");}
        if (rssi_1 >= 20 && rssi_1 <=30) { lcd.setCursor(0,1);  lcd.print("##      ");}
        if (rssi_1 >= 30 && rssi_1 <=50) { lcd.setCursor(0,1);  lcd.print("###     ");}
        if (rssi_1 >= 50 && rssi_1 <=60) { lcd.setCursor(0,1);  lcd.print("####    ");}
        if (rssi_1 >= 60 && rssi_1 <=70) { lcd.setCursor(0,1);  lcd.print("#####   ");}
        if (rssi_1 >= 70 && rssi_1 <=80) { lcd.setCursor(0,1);  lcd.print("######  ");}
        if (rssi_1 >= 80 && rssi_1 <=90) { lcd.setCursor(0,1);  lcd.print("####### ");}
        if (rssi_1 >= 90 && rssi_1 <=100) { lcd.setCursor(0,1); lcd.print("########");}
        
      }
        void Pintabarra_2()
      {
        if (rssi_2 >= 0 && rssi_2 <=20) { lcd.setCursor(0,3);   lcd.write("#       ");}
        if (rssi_2 >= 20 && rssi_2 <=30) { lcd.setCursor(0,3);  lcd.print("##      ");}
        if (rssi_2 >= 30 && rssi_2 <=50) { lcd.setCursor(0,3);  lcd.print("###     ");}
        if (rssi_2 >= 50 && rssi_2 <=60) { lcd.setCursor(0,3);  lcd.print("####    ");}
        if (rssi_2 >= 60 && rssi_2 <=70) { lcd.setCursor(0,3);  lcd.print("#####   ");}
        if (rssi_2 >= 70 && rssi_2 <=80) { lcd.setCursor(0,3);  lcd.print("######  ");}
        if (rssi_2 >= 80 && rssi_2 <=90) { lcd.setCursor(0,3);  lcd.print("####### ");}
        if (rssi_2 >= 90 && rssi_2 <=100) { lcd.setCursor(0,3); lcd.print("########");}
        
      }

    Todo esto es el principio, el que quiera y puede que aporte ideas

    Saludos
     

    Adjuntos:

  13. jagar Miembro

    jagar
    Registrado:
    27 Mar 2014
    Mensajes:
    324
    Me Gusta recibidos:
    0
    Que guapo Krampman!
    Yo tengo un cutre-diversity ya montado,y esto me ha encantado!
    Que electronica haria falta para la parte del diversity? Rx y ya,o algo mas?

    Esta genial!
     
  14. krampman Miembro

    krampman
    Registrado:
    18 May 2015
    Mensajes:
    199
    Me Gusta recibidos:
    0
    Te lo explico a groso modo.

    Para el diversity y que se produzca el cambio de RX sin que lo percibamos es necesaria una electrónica que conmute entre los RX, un interruptor electrónico que cambie y guarde el sincronismo.
    Claro que también lo de tener dos RX es impepinable, si no .... para que valdría el invento?

    >Esto no es para partir de 0
     
  15. jagar Miembro

    jagar
    Registrado:
    27 Mar 2014
    Mensajes:
    324
    Me Gusta recibidos:
    0
    Hombre,los dos rx los tengo, y la electronica que hace el cambio creo que tambien (segui un tuto de rcmodelreviews,que usa dos integrados para hacer el diversity),eso seria util o la electronica a usar tiene que ser otra?
     
  16. krampman Miembro

    krampman
    Registrado:
    18 May 2015
    Mensajes:
    199
    Me Gusta recibidos:
    0
    Pues ponme un enlace de lo que tienes montado y lo veo si no no te puedo decir si es valido
     
  17. jagar Miembro

    jagar
    Registrado:
    27 Mar 2014
    Mensajes:
    324
    Me Gusta recibidos:
    0
    [ame]https://youtu.be/4yDfRrsH0WM[/ame]
    En este video explica lo que lleva,tambien le puse el circuito de hysteresis y unos led para saber que rx esta activo.
    Basicamente es un CD4066 y un LM324 con unas resistencias.
     
  18. krampman Miembro

    krampman
    Registrado:
    18 May 2015
    Mensajes:
    199
    Me Gusta recibidos:
    0
    Pues pienso que te servira, el 4060 es el conmutador electrónico, el arduino en este caso sistituiria el Lm324.

    Hay que ver en que flancos conmuta el 4060 en ese circuito, si va por positivo o negativo, pero si, esa es la idea.

    Eso si, hay que hacer unas cuantas pruebas de campo.
     
  19. jagar Miembro

    jagar
    Registrado:
    27 Mar 2014
    Mensajes:
    324
    Me Gusta recibidos:
    0
    Pues en cuanto tenga un hueco libre me pongo, gracias Krampman!
     
  20. batuadello Miembro

    batuadello
    Registrado:
    1 Ago 2013
    Mensajes:
    267
    Me Gusta recibidos:
    0
    Muchas gracias.

    Vamos por parte si te parece, puedes ver si la lista de la compra es correcta?

    http://www.banggood.com/UNO-R3-ATmega328P-Development-Board-For-Arduino-p-963697.html

    http://www.banggood.com/IICI2C-1602...-LCD-Display-Module-For-Arduino-p-950728.html
    (esa lcd es de menos carácteres, entiendo y para mi cometido más que suficiente)

    http://www.banggood.com/120Pcs-20cm...le-Wire-Combination-For-Arduino-p-974006.html

    nos hace falta algo más?
     
  21. krampman Miembro

    krampman
    Registrado:
    18 May 2015
    Mensajes:
    199
    Me Gusta recibidos:
    0
  22. batuadello Miembro

    batuadello
    Registrado:
    1 Ago 2013
    Mensajes:
    267
    Me Gusta recibidos:
    0
    Vale, pues no sé, lo que tú me digas. Puedes indicarnos los links de lo que consideras que va bien y es mas facil?

    Añado que mi uso solo será a modo de indicador rssi, nada de diversity (de momento):redface2:

    Gracias!
     
    #22 batuadello, 18 Jun 2015
    Última edición: 18 Jun 2015
  23. batuadello Miembro

    batuadello
    Registrado:
    1 Ago 2013
    Mensajes:
    267
    Me Gusta recibidos:
    0
    Bueno, edito la lista de la compra:

    http://www.banggood.com/UNO-R3-ATmega328P-Development-Board-For-Arduino-p-963697.html

    http://www.banggood.com/Keypad-Shield-Blue-Backlight-For-Arduino-Robot-LCD-1602-Board-p-79326.html

    http://www.banggood.com/120Pcs-20cm...le-Wire-Combination-For-Arduino-p-974006.html

    Que me dices Krampman? mejor así? espero tu confirmación para darle a comprar.:wink2:
     
  24. krampman Miembro

    krampman
    Registrado:
    18 May 2015
    Mensajes:
    199
    Me Gusta recibidos:
    0
    Hola, en principio si, para algo sencillo con eso sobra

    Ando liado, por es mo he puesto nada, hay que cambiar código, en poder posteo
     
  25. batuadello Miembro

    batuadello
    Registrado:
    1 Ago 2013
    Mensajes:
    267
    Me Gusta recibidos:
    0
    Tranquilo krampman, solo es para hacer la compra. Porque viniendo de china... Ya se sabe, así que no hay prisa, solo qiería asegurarme de que son los artículos que necesitaré.

    Gracias de nuevo.
     

Compartir esta página