Proyectos Electronicos con Arduino

Tema en 'R/C ELECTRÓNICA' iniciado por raulhc, 2 Abr 2009.

  1. raulhc Miembro

    raulhc
    Registrado:
    3 Sep 2007
    Mensajes:
    796
    Me Gusta recibidos:
    0
    Supongo que muchos conociereis el Ardupilot, gracias a que ya se ha comentado por algunos hilos, y principalmente este abierto por pumuky.

    Pues el ardupilot esta basado en la plataforma hardware de fuente abierta denominada arduino. Básicamente es una placa con un microcontrolador atmel con el hardware necesario para que este funcione y con facil acceso a todas sus puertas de entrada / salida, tanto analógicas como digitales. Es de hardware libre, es decir, que nos proporcionan toda la información necesaria para hacer uso de el, esquema electrónico, especificaciones, etc..

    Después nos proporcian también un entorno de desarrollo para poder crear nuestros programas y cargarlos directamente sobre la placa del arduino.

    Donde realmente reside el potencial es que es muy sencillo de usar y en muy poco tiempo obtenemos unos resultados sorprendentes. Para empezar a ver resultados no es necesario de ninguna manera tener unos conocimientos previos del microcontrolador ni como configurarlo.

    En la siguiente imagen podemos ver una representacion de las puertas de entrada salida de un arduino:
    [​IMG]

    Tengo que decir que hay distintas versiones del Arduino, la mas moderna el arduino Mega, pero la que yo he comprado es la Duemilanove. No nos vamos a complicar ahora con las versiones, una Duemilanove o Diecimlia nos servira perfectamente para comenzar. Estas se pueden encontrar entre 20 y 30€, segun la tienda y si es version montada o en kit.

    Por ejemplo, como seria para encender un led:

    - Primero vamos a ver como vamos a conectar todo, voy a conectar el led al pin digital 8, y despues con una resistencia de 220 a masa. Seria algo asi:

    [​IMG]

    - Despues conectariamos el arduino a un USB de nuestro ordenador y arrancariamos el editor de arduino.

    [​IMG]

    - El codigo que deberiamos escribir para encender el led conectado al pin 8 digital seria:

    Insertar CODE, HTML o PHP:
    void setup()
    {
      digitalWrite(8, HIGH);
    }
    
    void loop()                     
    {
    }
    
    Con el arduino conectado a un USB enviaríamos el codigo al arduino y cuando termine veriamos como nuestro led se enciende. Ya veis que facil resulta. Os comento que hace cada linea:

    Insertar CODE, HTML o PHP:
    void setup(){}
    Esa es un metodo que siempre debe existir, sera lo primero que se ejecute en el arduino y solo se ejecutar una vez. Es un buen sitio para inicializar variables, estados de los pines, etc.. Por ejemplo si hubieramos creado una variable para indicar cual es el pin sobre el que tenemos conectado nuestro led podriamos hacer lo siguiente:

    Insertar CODE, HTML o PHP:
    int pinLed = 0;
    
    void setup()
    {
       pinLed = 8;
       digitalWrite(pinLed, HIGH);
    }
    Usar variables / constantes para hacer referencia a los pines es un buen metodo, nos evita tener que recordar cuando escribimos el codigo el numero del pin, es mas facil acordarse de la variable, y sobre todo si usamos un nombre acorde.

    Despues esta el codigo:

    Insertar CODE, HTML o PHP:
    void loop()                     
    {
    }
    
    Que tambien corresponde a un metodo que siempre tiene que existir en todo programa para el arduino. El codigo que se encuentre en este metodo se ejecutar a continuacion del que exista en la funcion "setup" y tendra la particularidad que se ejecutara de continuo, es decir, cuando llegue al final de la ejecucion volvera al principio. Aqui debera siempre ir el bucle principal de nuestro programa.

    Veis que es muy facil.

    Ya os digo que con un poco de paciencia es muy facil sacarle provecho, y es mucho mas facil que comenzar a programar un PIC, por ejemplo.

    Me parece una plataforma estupenda para iniciarse en la electronica y el uso de microcontroladores.

    Tiendas españolas donde se puede adquirir arduinos:

    http://www.bricogeek.com/shop/
    http://www.libelium.com/tienda/catalog/

    Un par de videos introductorios a Arduino:





    Yo ire comentando por aqui las cosillas que haga y si alguien quiere comenzar con este gran "pequeñin" tratare de ayudar en la medida de lo posible, aunque seguro que por aqui habra gente que controla de esto.

    Algunos ejemplos de cosas que se me ocurren, y que son sencillas, que se pueden hacer:

    - Un emulador de GPS para probar nuestros OSD's en casa (ya tengo un ejemplo).
    - Un GPS Logger para guardar nuestros vuelos en una microSD o similar.
    - Un amperimetro / voltimetro.
    - .... no se, ¿alguna idea?.

    Realmente podemos hacer casi todo lo que se nos ocurra. Si nuestro desarrollo fuera para incluirlo en nuestro modelos tenemos versiones del arduino en versiones reducidas:

    [​IMG]

    Y los precios son muy adsequibles, por ejemplo el arduino mini pro, que tiene un tamaño aproximado de 2x3cm cuesta unos 14€:

    [​IMG]

    Bueno, espero que esta pequeña introduccion sirva para mas gente se anime con esto, se le puede sacar mucho partido.

    Echa un vistazo a estas paginas para obtener mas informacion:

    http://www.arduino.cc/es/
    http://www.arduino.es

    Interesante la cantidad de ejemplos que hay para interactuar con otro hardware:

    http://www.arduino.cc/playground/Main/InterfacingWithHardware

    Y no digamos de las librerias, que nos abstraen de tener que realizar arduas tareas para realizar operaciones, leer un sensor, etc..

    http://arduino.cc/en/Reference/Libraries

    Por ejemplo existe una libreria para controlar servos.

    Un saludo.

    ---
    Manual Programación Arduino (Es un pdf, pulsar el link con el botón derecho y "guardar como")
     
    #1 raulhc, 2 Abr 2009
    Última edición: 2 Jul 2009
  2. IvanA3 Maestro FPV

    IvanA3
    Registrado:
    23 Abr 2008
    Mensajes:
    2.462
    Me Gusta recibidos:
    1
    Me parece superinteresante y no dudes que empezaré a pensar en utilidades!!!!!!

    Sobre todo despues de ver las versiones smd que caben en el avión...

    Saludos y buen trabajo...

    lo primero que quiero hacer (y tenía pensado hacerlo con el ardupilot) son luces de navegación que se enciendan sólas dependiendo de la posición del avión (esto es idea de Pumuky pero me gustó y se la robo :biggrin:) y además añadir un pito de alarmas...batería baja, fail safe, etc...)

    Saludos.
     
  3. raulhc Miembro

    raulhc
    Registrado:
    3 Sep 2007
    Mensajes:
    796
    Me Gusta recibidos:
    0
    El tema de activar una salida cuando el avion este por ejemplo en un radio de x metros del piloto o cuando este parado es en principio facil, esto es lo que pretende Pumuky. Yo me hare con mi ardupilot hoy mismo, tengo que pasar por correos a recogerlo, y empezare a realizar pruebas.

    Las luces no pueden ir conectadas a la salida digital del ardupilot, tiene que haber algo que sirva de interruptor, que sea activado por la salida digital, y que actue sobre la alimentacion de las luces. Esto es asi debido a que las luces tienen un consumo mayor de lo que pueda suministrar una de los pines del ardupilot. Esto es lo que me comentaba Pumuky en un correo. Aqui yo estoy un poco perdido, lo mio no es la electronica :redface2:

    Yo en temas electronicos lo basico, pero en programacion, aunque el c/c++ lo tengo un poco olvidado, puedo ayudar, asi que si necesitas ayuda con el codigo intentare ayudarte en lo que pueda.

    Un saludo.
     
  4. eb7dln Gurú FPV

    eb7dln
    Registrado:
    18 Feb 2008
    Mensajes:
    3.055
    Me Gusta recibidos:
    0
    Pues mirad con este esquemilla, que utilice para encender una bombillitas con un consumo de unos 0,4A puede servir para lo que comentais, tambien podeis cambiar el transistor por otro que aguante menos intensidad.
    La salida del pic es la que está marcada con un 1.
     

    Adjuntos:

  5. paquitosoler Miembro

    paquitosoler
    Registrado:
    8 Oct 2006
    Mensajes:
    345
    Me Gusta recibidos:
    0
    Pues a mi me pasa lo mismo que a Raul, de electronica ni idea pero de programación si puedo aportar, me parece interesantisimo que el conocimiento en programacion (e incluso sin el) permita realizar programitas varios en insertarlos en el arduino sin grandes complejidades de hardware o electronica.
    Os paso a relatar ahora que hablais de Leds que llevo varios dias pensando en realizar el circuito que os dejo en este enlace de miliamperios y que precisamente lo que me echaba para atras era el tema de la electronia y componentes, pero creo que con lo que estais comentando del uso del arduino, puede ser que se consiga el mismo efecto de forma mucho mas sencilla esforzandose mas en el código que en la electronica. Bueno sin mas os digo que se trata de un sistema de luces Leds que emule las luces de posicion de los aviones reales y sus respectivas formas según aterricen, despeguen, etc.. lo cual a priori tiene mas que ver con aviones a escala que con FPV pero imaginaros lo util que puede ser para nuestros vuelos nocturnos. A ver si los entendidos en el tema me pueden decir si esto se podria hacer con el Arduino:
    http://www.miliamperios.com/foro/viewtopic.php?t=77791&highlight=curtek
     
  6. raulhc Miembro

    raulhc
    Registrado:
    3 Sep 2007
    Mensajes:
    796
    Me Gusta recibidos:
    0
    Pues conociendo la metodologia de la programacion puedes hacer casi lo que se te ocurra con el arduino. El tema de electronica no se puede dejar de lado, pero por ejemplo es mucho mas facil usar arduino y sus librerias para controlar un servo, que solo tendriamos que conectarlo directamente a la placa y usarlo, que tener que montar un circuito desde cero, mirar la hoja de datos del microcontrolador, etc..

    Por ejemplo lo de las luces pues es tan sencillo como ir activando / desactivando una salida digital, o incluso analogica si quisieramos controlar la intensidad. Para controlar un numero mayor de luces o que estas necesiten de un consumo superior a los 40mA pues habria que usar algun sistema de interruptor electronico que activaramos con uno de las salidas digitales.

    Despues por ejemplo para controlar que tipo de señales queremos activar podemos usar un canal de la emisora conectada a una entrada analogica y leer el pulso con la funcion PulseIn.

    Puedo ser un pesado con esto de que es facil, pero es que es verdad. Llevar a cabo ese proyecto de luces, empezando por ejemplo por controlar led's en vez de luces, y leer la entrada de una receptor para cambiar el tipo de iluminacion es en principio sencillo. Podemos usar por ejemplo un comprobador de servos para generar la señal y leer su estado para activar unas luces u otras. Con muy pocos componentes podemos montar un prototipo de control de luces sin mucho lio de cables, componentes, etc..

    Esto me lo apunto para hacer alguna prueba :wink2:, es interesante.

    Un saludo.
     
  7. raulhc Miembro

    raulhc
    Registrado:
    3 Sep 2007
    Mensajes:
    796
    Me Gusta recibidos:
    0
  8. Fleming Miembro

    Fleming
    Registrado:
    26 Feb 2007
    Mensajes:
    345
    Me Gusta recibidos:
    0
    Mu bueno, el hilo... jejej así me gusta, a ver si le metemos el gusanillo a más gente y empezamos a hacer cosas chulas.

    Como aplicaciones, yo en un principio estoy poniendo motores en la persianas de casa, y ya que hay que llevar alimentación, con dos hilos más tengo montada una red rs485 (es como el RS232, pero half duplex y con más distancia). La idea es centralizar la subida y bajada de las persianas.

    Otro sitio por el que no podéis dejar de pasar es por el PlayGround:
    http://www.arduino.cc/playground/Main/InterfacingWithHardware
    Para aquellos que no os sintais muy a gusto con la electrónica, salen mcuhs ejempos de como conectar cosas al Arduino. Es una muy buena fuente de ideas.. además de librerías.

    Otra cosa interesante del Arduino, son la shields ó Corazas. Son placas que se pinchan sobre el arduino, con la electrónica necesaria.
    Para controlar motores:
    http://arduino.cc/en/Main/ArduinoMotorShield
    U otras:
    http://www.adafruit.com/index.php?m...17_21&sessid=a6d746c663c7d7b3925d5a0837c7b949

    Saludos
     
  9. raulhc Miembro

    raulhc
    Registrado:
    3 Sep 2007
    Mensajes:
    796
    Me Gusta recibidos:
    0
    Habia visto eso del PlayGround, pero no lo habia mirando mucho, hay cantidad de ejemplos, buff!!, habra que ir poco a poco. Se ve que ya llevas un tiempo con esto del arduino, ¿no?.

    ¿Que motores usas para las persianas?, por que ya te digo que para subir las de mi casa hay que hacer bastante fuerza.

    Un saludo.
     
  10. raulhc Miembro

    raulhc
    Registrado:
    3 Sep 2007
    Mensajes:
    796
    Me Gusta recibidos:
    0
    Ya es tarde y hoy entre una cosa y otra no he tenido tiempo a nada, mañana me voy de viaje (me pasare por el Bellota Jets el Sabado) y estare unos dias fuera, pero os queria enseñar lo facil que es emular un GPS con el Arduino. Tenia pensado enseñarlo funcionando tambien con el ardupilot pero me ha llegado hoy y ni lo he tocado aun.

    La razon de hacer este emulador es que yo uso el DakarOSD, y para hacer pruebas con los voltimetros o el amperimetro este necesita tener una señal de GPS valida. Pero claro, donde vivo no es muy comodo irse a la calle con todo el montaje, y tampoco me resulta comodo, en mi caso, conectar el DakarOSDManager para que envie tramas NMEA al DakarOSD.

    Asi que el primer dia que tuve el arduino en mis manos hice esto:

    Insertar CODE, HTML o PHP:
    //
    // Enviar tramas GPRMC / GPGGA validas por el puerto serie
    // para engañar al DakarOSD y simular que esta recibiendo datos 
    // correctos del GPS
    //
    // Comunicacion a 9600 baudios y una frecuencia de 5Hz
    //
    long freq = 1000 / 5;  // Cada 200ms enviar las tramas (5Hz).
    
    /* Tramas NMEA necesarias para el DakarOSD */
    char* GPRMC[] = {"$GPRMC,142822.000,A,4330.7299,N,00537.9225,W,0.23,325.84,100308,,*11",
                     "$GPRMC,142823.000,A,4330.7298,N,00537.9224,W,0.26,149.09,100308,,*18",
                     "$GPRMC,142851.000,A,4330.7311,N,00537.9218,W,0.04,125.21,100308,,*12"};
                     
    char* GPGGA[] = {"$GPGGA,142823.000,4330.7298,N,00537.9224,W,1,06,1.4,27.2,M,52.2,M,,0000*7D",
                     "$GPGGA,142824.000,4330.7298,N,00537.9224,W,1,06,1.4,27.1,M,52.2,M,,0000*79",
                     "$GPGGA,142852.000,4330.7308,N,00537.9215,W,1,05,1.7,33.2,M,52.2,M,,0000*74"};
    
    void setup()
    {
      Serial.begin(9600);
    }
    
    void loop()
    {
      for (int i = 0; i < 3; i++)
      {
        digitalWrite(13, HIGH);
        Serial.println(GPGGA[i]);
        Serial.println(GPRMC[i]);
        digitalWrite(13, LOW);  
        delay(freq);
      }
    }
    El DakarOSD lleva un filtro para desperdiciar posibles tramas erroneas, es decir, que si esta recibiendo tramas indicando que estamos en una posicion X desestimara una que le llegue indicando que esta a una distancia de 1Km de ese punto. Esto es para que no muestre datos erroneos que le puedan llegar del GPS. Asi que cogi tres tramas validas casi seguidas y lo que hago es enviarlas de continuo cada 200 mili segundos (5Hz).

    Hago uso en el programa de alguna cosa de programacion que puede resultar un poco dificil al principio, como es el tema de arrays y punteros. Os dejo este codigo, que hace lo mismo, y es mas sencillo, enviando unicamente una trama GPRMC / GPGGA. Claro esta que no veremos moverse la informacion de la pantalla, sera como si no nos movemos, pero serviria perfectamente para ver la linea analogica de voltimetros / amperimetro:

    Insertar CODE, HTML o PHP:
    //
    // Enviar tramas GPRMC / GPGGA validas por el puerto serie
    // para engañar al DakarOSD y simular que esta recibiendo datos 
    // correctos del GPS
    //
    // Comunicacion a 9600 baudios y una frecuencia de 5Hz
    //
    long freq = 1000 / 5;  // Cada 200ms enviar las tramas (5Hz).
    
    /* Tramas NMEA necesarias para el DakarOSD */
    
    char GPRMC[] = "$GPRMC,142822.000,A,4330.7299,N,00537.9225,W,0.23,325.84,100308,,*11";
                     
    char GPGGA[] = "$GPGGA,142823.000,4330.7298,N,00537.9224,W,1,06,1.4,27.2,M,52.2,M,,0000*7D";
    
    void setup()
    {
      Serial.begin(9600);
    }
    
    void loop()
    {
      
      //Enviar Trama de GPRMC / GPGGA
      // (por cada envio de tramas encendemos / apagamos el led de la placa
      //  que esta conectado a la salida digital 13)
      digitalWrite(13, HIGH);
      Serial.println(GPGGA);
      Serial.println(GPRMC);
      digitalWrite(13, LOW);  
      delay(freq);
    
    }
    
    Y tambien podriamos hacer el envio de las tres tramas sin andar con arrays de datos, simplemente con variables:

    Insertar CODE, HTML o PHP:
    //
    // Enviar tramas GPRMC / GPGGA validas por el puerto serie
    // para engañar al DakarOSD y simular que esta recibiendo datos 
    // correctos del GPS
    //
    // Comunicacion a 9600 baudios y una frecuencia de 5Hz
    //
    long freq = 1000 / 5;  // Cada 200ms enviar las tramas (5Hz).
    
    /* Tramas NMEA necesarias para el DakarOSD */
    
    char GPRMC1[] = "$GPRMC,142822.000,A,4330.7299,N,00537.9225,W,0.23,325.84,100308,,*11";
    char GPRMC2[] = "$GPRMC,142823.000,A,4330.7298,N,00537.9224,W,0.26,149.09,100308,,*18";
    char GPRMC3[] = "$GPRMC,142851.000,A,4330.7311,N,00537.9218,W,0.04,125.21,100308,,*12";
    
                     
    char GPGGA1[] = "$GPGGA,142823.000,4330.7298,N,00537.9224,W,1,06,1.4,27.2,M,52.2,M,,0000*7D";
    char GPGGA2[] = "$GPGGA,142824.000,4330.7298,N,00537.9224,W,1,06,1.4,27.1,M,52.2,M,,0000*79";
    char GPGGA3[] = "$GPGGA,142852.000,4330.7308,N,00537.9215,W,1,05,1.7,33.2,M,52.2,M,,0000*74";
    
    void setup()
    {
      Serial.begin(9600);
    }
    
    void loop()
    {
      
      //Enviar Primera Trama de GPRMC / GPGGA
      // (por cada par de tramas encendemos / apagamos el led de la placa
      //  que esta conectado a la salida digital 13)
      digitalWrite(13, HIGH);
      Serial.println(GPGGA1);
      Serial.println(GPRMC1);
      digitalWrite(13, LOW);  
      delay(freq);
    
      //Enviar segunda Trama de GPRMC / GPGGA
      digitalWrite(13, HIGH);
      Serial.println(GPGGA2);
      Serial.println(GPRMC2);
      digitalWrite(13, LOW);  
      delay(freq);
    
      //Enviar tercera Trama de GPRMC / GPGGA
      digitalWrite(13, HIGH);
      Serial.println(GPGGA3);
      Serial.println(GPRMC4);
      digitalWrite(13, LOW);  
      delay(freq);
    
    }
    
    El primer codigo lo tengo probado, los dos ejemplos siguientes los acabo de escribir ahora sin probarlos.

    Un video de esto funcionando:

    [VIMEO]3840614[/VIMEO]

    Y aqui ya usando el arduino para hacer mis pruebas con el amperimetro, estoy en mi "taller" y no necesito cobertura de GPS o tener un ordenador cerca para conectar el DakarOSDManager al DakarOSD:

    [VIMEO]3872584[/VIMEO]

    Al arduino solo le conecto alimentacion y la linea Tx al Rx del DakarOSD. La alimentacion del arduino la obtengo del DakarOSD.

    Esto mismo se puede hacer con el ardupilot, cuando llegue de mis vacaciones hago la prueba.

    Si alguien quiere comenzar a realizar pruebas y nunca ha programado puede ser un poco lioso al principio. Yo si pregunta por aqui tratare de ayudar. Esto de la programacion es ir poco a poco, empezando por cosas basicas. Al principio cuesta un poco pero una vez pasada esta etapa inicial y se tenga una base despues se ve todo mucho mas claro y se avanza muy rapido.

    Hay multitud de manuales de C++ en la red, un ejemplo:
    http://www.sisoft.ucm.es/Manuales/C++.pdf

    Pero para esto del arduino casi mejor ir conociendo a relizar alguna cosa, poco a poco, y asi ir viendo los resultados, despues cuando pase el tiempo os dareis cuenta que sabeis un monton!!

    Un saludo.
     
  11. Fleming Miembro

    Fleming
    Registrado:
    26 Feb 2007
    Mensajes:
    345
    Me Gusta recibidos:
    0
    Con el arduino no llevo mucho, con lo microcontroladores un rato, cuando aprendes con uno, son todos iguales.... jejeje.

    En mi casa hay dos tipos de persiana. Unas con caj'on de madera, que me permite meter unos motores de limpiaparabrisas de coche, que llevan incorporado una reductora a sinfin/corona. Hay otra persiana encastrada en el marco de aluminio, que no tienen nada de uheco para meter nada, as'i que me coy a tener que ir a un motor de tambir, especifico de persianas....
     
  12. luico Moderator

    luico
    Registrado:
    9 Mar 2007
    Mensajes:
    3.210
    Me Gusta recibidos:
    0
    Hay motores específicos para persianas normales y compactas, que no salen demasiado caros (~130€ por motor si no me engaña mi memoria) estos motores son muy fáciles de instalar y llevan dos motores finales de carrera, uno para subir y otro para bajar.

    Si desatolláis algo chulo con Bluetooth (así se podría controlar desde un simple móvil ó desde una unidad central) seguro que me apunto a montarlo. Yo de momento ya tengo los motores instalados en todas las persianas (7). :biggrin:
     
  13. trokola Miembro

    trokola
    Registrado:
    18 Dic 2008
    Mensajes:
    414
    Me Gusta recibidos:
    0
    Y aunque los arduinos normales de toda la vida (Duemilanove o Diecimila) dan para muuuucho, para los mas exigentes y proyectos de gran envergadura, los amigos italianos nos acaban de sorprender con la SUPERMAQUINA: el Arduino MEGA. Una bestia .....

    http://arduino.cc/en/Main/ArduinoBoardMega
     
  14. Fleming Miembro

    Fleming
    Registrado:
    26 Feb 2007
    Mensajes:
    345
    Me Gusta recibidos:
    0
    En un desguace, motor de limpia parabrisas o elevalunas con reductora=10€
    Eso sí, tienes que currarte las poleas y sujección.... pero sino, ¿Donde está el emtretenimiento?:tongue2:

    Con Blutuz, todo lo que quieras.
    Esta:
    http://www.sparkfun.com/commerce/product_info.php?products_id=8474
    es una pasarela Blutuz-Rs232. Se le pincha al arduino y ya te peuedes comunicar con el desde cualquier dispositivo con BT.

    La alternativa que más se está extendiendo en el mundo arduino es el el ZIGBEE, es su aplicación comercial XBEE:
    http://www.sparkfun.com/commerce/categories.php?c=111

    Saludos
     
  15. jlezana Miembro Activo

    jlezana
    Registrado:
    29 Sep 2008
    Mensajes:
    1.114
    Me Gusta recibidos:
    0
    Exelente post... me aclara muchas dudas que tenia con el Ardupilot

    Saludos

    J.L
     
  16. paquitoc Miembro

    paquitoc
    Registrado:
    28 Abr 2007
    Mensajes:
    403
    Me Gusta recibidos:
    0
    raulhc MUY BUENO esto de las paginas codigo siempre me ha gustado, sera por estar cerca siempre de los que programan y ves despues lo bien que funcionan las maquinas con sistemas de control con automatas.
    Un saludo
     
  17. lealadrian Miembro

    lealadrian
    Registrado:
    17 Jun 2008
    Mensajes:
    120
    Me Gusta recibidos:
    0
    Hola raulch

    quiero aprender mas sobre arduino

    estoy por comprar el ardupilot y la placa necesaria para comunicar con el PC pero quiero comprar también lo necesario para experimentar y aprender mas del tema que me aconsejas; Veo por ejemplo la placa Arduino Stamp 02, que imagino la puedo pinchar en una brekboard para interactuar con sus I/O. pero como, o con que placa grabas el programa o que otra placa me aconsejas que pueda utilizar para aprender yo tengo muy poca experiencia con los PICs. y se me complica con el ingles, me las arreglo con los traductores por internet
    seguiré de cerca este hilo

    Raulch muchisimas gracias por tu aporte :worthy:

    Saludos

    me encanta la electronica
     
  18. Fleming Miembro

    Fleming
    Registrado:
    26 Feb 2007
    Mensajes:
    345
    Me Gusta recibidos:
    0
    Para programar el Arduino, no necesitas nada, bueno, solo un cable USB con conector A-B. Todas las placas del Arduino vienen con el FTDI montado precisamente para evitar el tener que comprar un programador ni interface.

    Si quieres algo LOWCOST, el ardupilot te puede servir exacatamente igual que el arduino
    Tiene entradas y salidas analógicas y digitales así como puerto serie etc etc y peudes correr cualquier programa que quieras o veas por internet... El ardupilo es un arduino (pero con distinto cableado)

    Si quieres pillarte el Ardupilot y el Arduino, te recomiendo que te pilles el duemilianove, que está mu baratito. El Arduino Stamp 02 es mu antiguo no creo que lo encuentres, tendrá que buscar el nano, pero ya puestos, espera un poco a ver si lo consigues con el micro ATmega328, que el que están vendiendo ahora viene con el ATmega168 (con menos memoria)
     
  19. lealadrian Miembro

    lealadrian
    Registrado:
    17 Jun 2008
    Mensajes:
    120
    Me Gusta recibidos:
    0

    Hola Fleming

    Gracias por tu pronta respusta:wink:
    Ahora lo que observo es que el Ardupilot lo comunicas con la placa FTDI bASIC 3,3v que consta de un integrado de comunicacion el FT232R El cual tambien esta precente en la placa del duemilianove.

    Por esto puedo comprar el ArduPilot y duemilianove, Obviando la FTDI??

    puedo conectar ambas por el ICSP??.:confused:

    O quiza exita otra forma??:blink:

    por lo q' veo tambien duemilianove me posibilita de cambiar el Micro poner un ATMEGA8, 168 o 328??

    Gracias Fleming
    saludos
     
  20. raulhc Miembro

    raulhc
    Registrado:
    3 Sep 2007
    Mensajes:
    796
    Me Gusta recibidos:
    0
    Hola,

    el arduino se programa por el puerto serie. Los atmel de los arduinos incluyen un bootloader (programa de arranque) donde una de sus funciones es la de recoger la orden que le envia el IDE del arduino y programar el Atmel.

    Asi que para grabar el ardupilot con la placa del duemilanove solo tendrias que quitar el chip atmel y conectar alimentacion, puerto serie y reset. En esta imagen se ve como seria la conexion de un mini, que te puede servir de refencia para ver como es:

    [​IMG]

    Puedes comprar un Arduino duemilanove con el ATmega368 y comprar a parte el ATmega168 que ya incluya el bootloader, por si quieres usar uno u otro para tus desarrollos. Son totalmente intercambiables, la unica diferencia es en memoria, que el 368 tiene el doble de todo con respecto al 168. El tener los dos con la placa del duemilanove te puede servir por si desarrollas algo para una placa que tenga el 168, pero que te sea mas facil hacer todo el trabajo prebio sobre el duemilanove por ser mas comodo conectar cosas. Por ejemplo con el GPSLogger que al final fue en un pro mini lo hice todo primero con la placa del duemilanove.

    Si te gusta la electronica y estas interesado en programar te aseguro que arduino es un buen comienzo, es muy sencillo.

    Ahora edugarcia y yo estamos preparando una estacion meterologica, cosa muy sencilla, solo es leer valores de sensores. Despues estos datos los podremos ver desde una pagina web, tambien incluso podrias llegar a enviar ordenes como activar salidas, etc.. (esto con el shield ethernet). Mira por ejemplo como seria la lectura de un LM35 (sensor analogico de temperatura):

    Insertar CODE, HTML o PHP:
    int temp      = 0; //Valor de temperatura en grados centigrados
    
    
    void setup()
    {
      Serial.begin(9600);
    }
    
    void loop()
    {
      while (Serial.available() > 0)
      {
        char command = Serial.read();
        
        //Temperatura
        if (command == 'T')
        {
          temp = (analogRead(1) * 5 / 1024.0) / 0.01;
    
          Serial.print("Temperatura: ");
          Serial.print(temp, DEC);
          Serial.println(" C");
        }    
      }
    }
    Siempre que enviemos una T por el puerto seria nos devolvera la temperatura.

    Facil, ¿no?.

    Cuando tengamos todo hecho lo pondremos por aqui.

    Un saludo.
     
  21. Fleming Miembro

    Fleming
    Registrado:
    26 Feb 2007
    Mensajes:
    345
    Me Gusta recibidos:
    0
    Bueno, el FTDI es un conversor de USB a RS232. Estrictamente lo único que necesitas es un puerto serie (el MAX232 o el FTDI lo único que hacen es convertir o adaptar niveles...)

    Fíjate en el post de Raulhc, no necesitas comprar el FTDI, porque ya lo tienes en Arduino, tendrás que quitar el micro del Arduino cada vez que queras programar el Arddupilot, porque sino tendrás dos micros (el del arduino y el del ardupilot) intentandose comunicar con el ordenador...


    Por el momento olvídate del ICSP. Para esto necesitarás un programador (el FTDI NO es un programdor).
     
  22. paquitosoler Miembro

    paquitosoler
    Registrado:
    8 Oct 2006
    Mensajes:
    345
    Me Gusta recibidos:
    0
    Bueno vamos a ver si alguien me da ideas interesantes para un caso real donde creo podria aplicar arduino y solucionar muchos problemas. Vamos a ver resulta que soy profe de un instituto con aulas con ordenadores y me gustaria que en cada clase se pueda centralizar en encendido y apagado de todos los equipos pero no por software y por "el botonazo" o corte de luz. Mi idea es usar el llamado Magic Packet es muy simple y su formato consiste en 6 bytes con valor hexadecimal FF y otros 16 grupos de 6 bytes con la dirección MAC de la tarjeta de red. Da igual en que protocolo se envié ese paquete (IPX, TCP/IP, etc), con tal de que se envíe por toda la red. Así si se quiere encender un ordenador con una MAC 01:02:03.04:05:06 se enviaría un paquete con estos bytes en hexadecimal:

    FFFFFFFFFFFF
    010203040506010203040506010203040506010203040506
    010203040506010203040506010203040506010203040506
    010203040506010203040506010203040506010203040506
    010203040506010203040506010203040506010203040506

    Usando "C" he encontrado esto pero no se si las librerias que usa la entiende el arduino:

    #ifdef WIN32
    #include <stdio.h>
    #include <winsock2.h>
    #else
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #endif
    void main(void)
    {
    int conexion;
    struct sockaddr_in direccion;
    unsigned char buffer[102];
    unsigned char mac[]={0x01,0x02,0x03,0x04,0x5,0x06};
    int valor=1,contador;
    #ifdef WIN32
    WSADATA wsaData;
    WSAStartup( MAKEWORD( 2, 2 ), &wsaData );
    #endif
    for(contador=0;contador<6;contador++)
    buffer[contador]=0xff;
    for(contador=6;contador<102;contador+=6)
    memmove(&buffer[contador],mac,6);
    memset(direccion.sin_zero,0,8);
    direccion.sin_family=AF_INET;
    direccion.sin_addr.s_addr=htonl(INADDR_BROADCAST);
    direccion.sin_port=htons(1976);
    conexion=socket(AF_INET,SOCK_DGRAM,0);
    valor=setsockopt(conexion, SOL_SOCKET, SO_BROADCAST, (char *)&valor, sizeof(int));
    sendto(conexion,(char *)buffer,102,0,(struct sockaddr *)&direccion,sizeof(struct sockaddr_in));
    #ifdef WIN32
    WSACleanup();
    #endif
    }

    Seria este codigo con todas las MAC del aula en:
    http://www.sparkfun.com/commerce/product_info.php?products_id=9026
    puedo conseguir meter este codigo y enganchando este arduino al Hub puedo apagar y encender todos los oredenadores de un aula.
    ¿que os parece?
    Se que es un poco off topic del FPV pero bueno a ver si asi nos familiarizamos con las posibilidades del bichito
     
  23. raulhc Miembro

    raulhc
    Registrado:
    3 Sep 2007
    Mensajes:
    796
    Me Gusta recibidos:
    0
    Hola,

    he echado un vistazo y si es posible enviar un Magic Packet con el Arduino. Un codigo simple para enviar el paquete usando arduino seria:

    Insertar CODE, HTML o PHP:
    extern "C" {
    #include "utility/types.h"
    #include "utility/w5100.h"
    #include "utility/socket.h"
    }
    #include <Ethernet.h>
    
    byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
    byte ip[] = { 10, 0, 0, 111 };
    
    void setup() {
       Ethernet.begin(mac, ip);
    }
    
    void loop() {
       uint8_t socket_index = 0;
       uint8_t txbuf[102];      /* Size of magic packet = 6 + 16*6 */
       uint8_t *p;
       byte n, i;
       uint8_t remote_ip[] = {10, 0, 0, 255}; /* Broadcast address */
       uint8_t remote_mac[] = {0x00, 0x0e, 0x2e, 0x0a, 0x23, 0x19}; /* Remote's MAC */
    
       /* Use 9999 as source port, shouldn't be of any relevance */
       socket(socket_index, Sn_MR_UDP, 9999, 0);
    
       /* Magic packet is 6 * 0xff followed by 16 times the destination MAC */
       p = txbuf;
       for(n = 0; n < 6; n++) *p++ = 0xff;
       for(n = 0; n < 16; n++) {
         for(i = 0; i < 6; i++) *p++ = remote_mac[i];
       }
    
       /* Send to remote_ip and port 0 (port doesn't matter) */
       sendto(socket_index, txbuf, 6 + 6*16, remote_ip, 9999);
       close(socket_index);
       for(;;);
    }
    Necesitarias el arduino y el ethernet shield (ese que pones el link a sparkfun). Podrias tener un panel exterior con pulsadores para cada una de las salas, y uno que actuara de forma general. Tambien puedes hacer que el arduino haga de servidor web y te presente una pagina web donde tengas botones y puedas enceder / apagar las luces.

    El codigo anterior lo he probado y carga perfectamente en el arduino. Lo he sacado de aqui:

    http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1233346832/5

    Si lo haces con pulsadores externos seria muy facil, con servidor web requiere un poco mas de trabajo.

    Tienes tiendas en España donde puedes conseguir el arduino, yo he comprado en bricogeek y libelium y todo bien, de las otras dos no tengo referencias. Despues en extranjeras he comprado en sparkfun y nkcelectronics y todo bien tambien:

    http://arduino.cc/en/Main/Buy

    Un saludo.
     
  24. paquitosoler Miembro

    paquitosoler
    Registrado:
    8 Oct 2006
    Mensajes:
    345
    Me Gusta recibidos:
    0
    Pues muchas Gracias, voy a ver si pido un "mega" y la "Ethernet Shield" para ver si funciona. LA verdad es que es impresionante las aplicaciones del chismico
     
  25. raulhc Miembro

    raulhc
    Registrado:
    3 Sep 2007
    Mensajes:
    796
    Me Gusta recibidos:
    0
    Hola,

    el mega es demasiado!!, comprueba si realmente necesitas todo lo que tiene. Yo creo que con el duemilanove te apañas perfectamente. Chequea que tiene cada uno y mira el que mejor se adecue a lo que tienes. En electronica siempre lo optimo es usar lo justo.

    Duemilanove -> http://arduino.cc/en/Main/ArduinoBoardDuemilanove

    Mega -> http://arduino.cc/en/Main/ArduinoBoardMega

    Para que el ethernet shield actual funcione en un mega es necesario hacer alguna modificacion:
    http://mcukits.com/2009/04/06/arduino-ethernet-shield-mega-hack/

    Supongo que no tardaran mucho en sacar un ethernet shield compatible totalmente con el mega. Piensa que el mega solo tiene unos "dias".

    Tambien dentro de poco habra un wifi shield para el arduino, costara unos 55$.

    Un saludo.
     
  26. paquitosoler Miembro

    paquitosoler
    Registrado:
    8 Oct 2006
    Mensajes:
    345
    Me Gusta recibidos:
    0
    Ok Raul, pues entonces pediré el que comentas, menos mal que me has advertido, se nota que dominas el tema, muchas gracias te tendré informado del proyectillo
     
  27. kuatroc Nuevo Miembro

    kuatroc
    Registrado:
    23 Nov 2008
    Mensajes:
    29
    Me Gusta recibidos:
    0
  28. acristóbal Gurú FPV

    acristóbal
    Registrado:
    9 Oct 2006
    Mensajes:
    3.710
    Me Gusta recibidos:
    0
    Entiendo que las versiones grandes tipo duemilanove y las mini son iguales a falta de la comunicación usb que habría que comprar aparte. ¿Es así?

    Seguramente es más fácil trastear con las grades y solo montar las pequeñas cuando lo necesitas pero me imagino qie poniendole los pines a la pequeña tambien se puede trastear con ella.

    Como últimamente no voy sobrado de presupuesto creo que si me dcís que sí voy a comprar un mini pro que me podrá valer para montar el data logger y así hacer alguna prueba más.
     
  29. acristóbal Gurú FPV

    acristóbal
    Registrado:
    9 Oct 2006
    Mensajes:
    3.710
    Me Gusta recibidos:
    0
    Posible proyecto variómetro.

    He estado dándole vueltas y creo que un Arduino sería capaz de hacer de variómetro ya sea sonoro o lumínico.

    ¿Que me decís?

    He visto que un variómetro de calidad (usado por parapentistas) tiene un sensor MPX4115A que es baratito y creo que se podría utilizar junto con un zumbador o una serie de leds (al menos 2) para indicarnos si ascendemos o descendemos y a que velocidad.

    Mi idea es usar la salida de este sensor para meter el dato por un pin análógico del Arduino y sacar los datos de forma sonora creando dos tonos de sonido grave y agudo y hacer que suene más o menos rápido dependiendo de la velocidad de ascenso o descenso o visual con dos leds superluminosos de distintos colores haciendo que parpadeen más o menos rápido, igualmente, dependiendo de la velocidad.

    ¿¿Creeis que es posible??

    No tengo ni idea de electrónica y muy poca de programación, pero le pongo mucho empeño a las cosas y aprendo rápido.
    Alguien se anima conmigo.
     
  30. raulhc Miembro

    raulhc
    Registrado:
    3 Sep 2007
    Mensajes:
    796
    Me Gusta recibidos:
    0
    La diferencia de los nuevos duemilanove y el pro mini es en el atmega, el duemilanove lleva el 328 y el pro mini el 168. Y la diferencia entre estos dos micros es la capacidad de memoria tanto de RAM como de memoria de programa.

    Y claro esta que el duemilanove ya incorpora el usb y el pro mini no.

    Si estas pillado de presupuesto y quieres el duemilanove para cacharrear puedes usar el duemilanove para programar el pro mini y asi no tienes que comprar el FTDI. Tambien el duemilanove te podria servir para programar un ardupilot, por ejemplo.

    Unos mensajes antes a este hablamos sobre usar el usb del duemilanove para programar otros arduinos que no tienen usb.

    El duemilanove la verdad que ahora lo tengo de continuo en mi mesa, lo he usado hasta para sacar los valores del sensor de corriente del dakar por el puerto serie. Ahora estoy empezando a realizar con el un simulador para probar el lince. Este simulador funcinara en el arduino o como una aplicacion desde un ordenador con windows, mac osx o linux, asi que no sera necesario el arduino pero sera una prueba mas de lo que se puede hacer con este cacharrillo.

    Un saludo.
     
  31. raulhc Miembro

    raulhc
    Registrado:
    3 Sep 2007
    Mensajes:
    796
    Me Gusta recibidos:
    0
    Eso es muy facil, yo estoy usando en el arduino ahora el MPX5100 y si te enseño que hay que hacer para leer el valor del barometro alucinas, es solo una linea de codigo!!!!

    Por ejemplo en el arduino pro mini que uso para el gps logger la verdad que se esta infrausando, se le podia dar muchos mas usos. Yo estaba pensando en incorporarle la funcion de ampliar el movimiento de un servo a 180º. Por ejemplo en mi emisora, la ff9, solo me permite exponencial en los 4 primeros canales y si uso en ampliador de recorrido de servo en alguno de los otros canales tengo un ligero temblor aun sin tocar el mando. Al hacer yo mismo el control con el arduino podria implementarle el efecto del exponencial cuando el servo esta centrado, por ejemplo.

    Tambien es muy facil conectar el arduino al receptor y por ejemplo encender unas luces con la emisora, etc..

    Te aseguro que es muy facil.

    Empieza con cosas sencillas y veras como van saliendo las cosas. Para cualquier cosa yo tratare de ayudarte en lo que pueda. Mi fuerte es la programacion, aunque el C casi no lo toco, pero bueno, me apaño, y en electronica lo basico, pero eso que quieres hacer no nos llevaria casi nada de tiempo.

    Lo que no tengo es tiempo, pero te aseguro que se le puede sacar mucho partido a un arduino para nuestros vuelos.

    Un saludo.
     
  32. raulhc Miembro

    raulhc
    Registrado:
    3 Sep 2007
    Mensajes:
    796
    Me Gusta recibidos:
    0
    Pues ya nos contaras cuando lo recibas y hagas alguna prueba.

    Un saludo.
     
  33. acristóbal Gurú FPV

    acristóbal
    Registrado:
    9 Oct 2006
    Mensajes:
    3.710
    Me Gusta recibidos:
    0
    Gracias Raul


    Entonces se podría usar el Ard mini como GPS data logger y como variómetro a la vez??

    ¿Se podrían montar dos sensores de presión y así saber la altura, velocidad de ascenso-descenso, y velocidad del aire??

    Me parece que ya me estoy enganchando demasiado.

    Para junio encargaré un Mini, un programador y los sensores.

    Creo que con las librerías podré aprender a hacer lucir los diodos con diferentes parpadeos.



    Saludos
    Alberto
     
  34. raulhc Miembro

    raulhc
    Registrado:
    3 Sep 2007
    Mensajes:
    796
    Me Gusta recibidos:
    0
    Si que se podria usar el mismo GPS Logger para el resto de cosas, ya te digo que se esta infrausando el arduino pro mini en el proceso de capturar las tramas nmea. Date cuenta de todo lo que hace Cristobal en el Dakar!!!.

    Al arduino no podremos sacarle tanto "jugo" pero si que nos sirve perfectamente para muchas tareas. Si cogieramos la hoja de datos del atmega del arduino y nos pusieramos a programar en ensamblador pues seguro que se podria sacar mucho mas partido, pero donde reside la sencillez el arduino es en la forma de programarlo, que nos despreocupamos totalmente de como configurar puertos, estados, etc... directamente le decimos "escribe un uno aquí", "leeme el valor analogico de esta puerta", etc.. sin llegar a profundizar como realmente funciona todo eso dentro del micro.

    Te recomiendo que en vez del FTDI te compres por poco mas el duemilanove que te servira perfectamente para programar el pro mini y ademas como plataformas de pruebas. Es mucho mas comodo probar las cosas con el duemilanove que con el pro mini. Te aseguro que lo agradeceras.

    Como usar el duemilanove para grabar el arduino mini:
    http://www.aeromodelismovirtual.com/showpost.php?p=42483&postcount=20

    El duemilanove actualmente lo uso para:

    - Probar servos
    - Simulador de GPS (1Hz o 5Hz)
    - Lectura sensor de corriente
    - Simulador de GPS para probar lince (en preparacion).
    - Prueba de receptores y emisora, para ver los valores del pulso en el receptor y que oscilacion puedan tener (en preparacion).
    - Y estoy haciendo una pequeña estacion metereologica que me da los datos en una pagina web que puedo ver desde cualquier sitio (esto lo tengo muy avanzado, es un poco mas complejo y hay que usar un aparatito mas en el arduino).

    Todo eso son programas de muy pocas lineas, se ven casi en una pantalla sin hacer desplazamiento.

    Un saludo.
     
  35. acristóbal Gurú FPV

    acristóbal
    Registrado:
    9 Oct 2006
    Mensajes:
    3.710
    Me Gusta recibidos:
    0
    OK, en Junio pediré un duemilanove y uno Mini pro (tendré que pedir la extra al INEM)
    En julio empezaré con las pruebas.

    OFF topic
    Yo siempre he querido tener una estación que me grabe los datos y lugo los pueda recuperar con el rodenador. Que sensores tienes
    ¿Que parámetros mides?
    Yo estoy especialmente interesado en Anemómetro y veleta.

    Gracias
    Alberto
     
  36. raulhc Miembro

    raulhc
    Registrado:
    3 Sep 2007
    Mensajes:
    796
    Me Gusta recibidos:
    0
    Hola,

    de momento solo estoy controlando temperatura, humedad y presion barometrica. Despues con la temperatura y humedad se calcula el punto de rocio.

    Anemómetro y veleta lo he dejado de momento de lado pensando el preparar el resto. He añadido al arudino la placa ethernet (ethernet shield) y asi puedo hacer que este se comporte como un servidor web, despues cada vez que le pido la pagina el arduino hace una lectura de los sensores en ese momento y devuelve la pagina web con los datos.

    En plan sencillo lo tengo todo hecho, pero quiero a ver si hago que devuelva los datos en el formato que usan muchas estaciones metereologicas comerciales, asi despues podria tratar los datos con algun programa.

    Tambien tengo en pensado dejar el arduino "dormido" y que cada cierto tiempo "se despierte" recoga datos y los guarde en una SD o microSD.

    Otra cosa es incorporarle una placa solar para que trabaje lo mas independiente posible.

    Voy poco a poco, cuando estoy aburrido pues me divierto con la estacion y haciendo pruebas, que tambien me sirve como practica para seguir aprendiendo con el arduino.

    El sensor barometrico lo consegui como sample, y el de presion y temperatura me salieron por unos 20€ los dos.

    Si vas mirando por las empresas y pidiendo samples te puedes hacer con varios sensores que despues te sirven para tus proyectos. Algunas veces te los da y otras no, pero por probar no se pierde nada.

    Un saludo.

    PD: Y creo que no es off topic hablar de la estacion, aqui es para cualquier cosa del arduino y aprender un poco eletronica.
     
  37. JuanTrillo Gurú FPV

    JuanTrillo
    Registrado:
    21 Sep 2007
    Mensajes:
    5.285
    Me Gusta recibidos:
    0
    Viendo las enorme posibilidades del arduino me pregunto si sería posible decodificar sucesivos pulsos consecutivos de un canal en el receptor y ampliar el numero de canales todo/nada en pongamos 8 ó 10, para activar / desactivar comodamente toda la actual y futura electrónica del avion. Por ejemplo:

    modos del dakar-OSD
    flaps
    tren retractil
    ardupilot
    copilot
    luces navegacion
    conmutacion de bateria principal a video.
    ajustes de camara en vuelo
    etc...


    Saludos
    JuanTrillo
     
  38. raulhc Miembro

    raulhc
    Registrado:
    3 Sep 2007
    Mensajes:
    796
    Me Gusta recibidos:
    0
    Hola,

    buff... eso se escapa ya a mis conocimientos. Leer el pulso que te envia el receptor es facil, es solo usar la funcion pulseIn que te devuelve la longitud en microsegundos del pulso (desde que sube a estado alto y pasa a bajo):

    http://www.arduino.cc/en/Reference/PulseIn

    Despues segun el valor podriamos ejecutar una accion u otra, pero no se me ocurre como hacer para ampliar el numero de canales.

    Con dos canales de la emisora seria mas sencillo, ¿no?, con uno seleccionamos el elemento y con el otro lo activamos / desactivamos.

    Un saludo.
     
  39. JuanTrillo Gurú FPV

    JuanTrillo
    Registrado:
    21 Sep 2007
    Mensajes:
    5.285
    Me Gusta recibidos:
    0
    Para tu sistema deberiamos integrarlo en el OSD para saber cual canal activamos/desactivamos. Mi idea va en otra linea. Tengo una FC18 con posibilidad de ponerle 10 interruptores xtra y espacio para electronica dentro. Imagina un canal que ciclicamente va dando una serie de 10 pulsos consecutivos de duracion 1 ms (OFF) y 2 ms (ON) añadimos un pulso de 1.5 ms entre bloque y bloque para sincronismo.

    Saludos
    JuanTrillo
     
  40. jlezana Miembro Activo

    jlezana
    Registrado:
    29 Sep 2008
    Mensajes:
    1.114
    Me Gusta recibidos:
    0

    Raulhc, ando buscando algun programilla que pueda ingresarle los datos a mano y me genere una trama $GPRMC y $GPRMC la verdad leo y leo pero no entiendo muy bien eso de la suma de verificacion que va alfinal de cada trama, ya que tengo un programita listo para hacer simular una ruta para nuestro AP y el AP el no tener esta suma de verificaicon al final no detecta la señal GPS

    Alguna idea??
     
  41. raulhc Miembro

    raulhc
    Registrado:
    3 Sep 2007
    Mensajes:
    796
    Me Gusta recibidos:
    0
    Los dos ultimos digitos en hexadecimal despues del asterisco son los digitos de verificacion, para calcularlos tienes que hacer una operacion XOR de todos los caracteres sin contar el $ del principio ni el * del final, eso te dara un numero que en hexadecimal es lo que tienes que añadir despues del *.

    Si miras el codigo del GPSLogger tengo una funcion que lo que hace es cacular el checksum de la trama que me llega y lo comparo con el que he leido para ver si son iguales. Te puede servir para tu programa:

    http://code.google.com/p/arduino-gpslogger/

    Yo tengo pensado, a ver si me pongo este fin de semana!!, en hacer uno que le pasas los puntos de una ruta de google earth y el te genera los puntos intermedios de acuerdo a una velocidad dada y si quieres simulacion de 1Hz o 5Hz. Primero lo hare para que sirva para probar el lince, una version basica con puntos fijos y puntos intermedios calculados y despues una vez que tenga eso funcionando la version que recibe la ruta de google earth. Intentare hacer representacion grafica para que se vea por donde va el punto simulado pero esto igual me lleva demasiado trabajo y puede que lo deje para mas adelante.

    Un saludo.
     
  42. jlezana Miembro Activo

    jlezana
    Registrado:
    29 Sep 2008
    Mensajes:
    1.114
    Me Gusta recibidos:
    0
    JAJAja estamo en el mismo camino, yo con un programa logre generar el NMEA para simularlo en un gps virtual, y funciona tanto en le GPS virtual como en Google earth, pero hay que estar cambiando el tiempo entre punto y punto y la altura de manera manual, ya hice un ruta asi y queda perfecto, pero lo que estoy craneando es que un programa hagaop todo

    sacar una ruta del Earth, que saque varios puntos intermedio entre waypoint (ya pensando en probar el AP con wp activado) poner una altura determinada y que varie un poco asi puedo ver en el AP como acelera y desacelera asi se puede probar todo DAKAR LINCE AP, el problema es general la trama NMEA la ruta me funciona perfecto pero el AP no detecta el GPS virtual solamente por la suma final o cheksum, es ahi en donde estoy parado, ayq eu he podido simular todo con 5 programas (virtual GPS, Virtual serial port emulator, el Arduino, el google earth, y un gps utilidades que me toma el kml del eart para generar la traman nmea, pero sin cheksum.. :( no he podido pillar nada mas que haga o ke integre todo. jeje

    Bueno a ver como llegamos a eso al final. jejej estaba pensando en ahcer un programa en filemaker para ello, pero para eso tendre que estudiar como es el protocolo completo y ver si puedo hacer tanto calculo en el. y mencionando eso de Hexadecimal mmm me ta dejando en la duda ahora..

    Saludos..

    J.L
     
  43. Pumuky Gurú FPV

    Pumuky
    Registrado:
    16 Sep 2008
    Mensajes:
    4.092
    Me Gusta recibidos:
    0
    Bueno yo estoy alucinando con toda la informacion que tengo disponible, vcom sabeis llegaron a mis manos 3 placas de arduino distintas.

    Ahora tengo un problema, tengo informacion para hacer demasiadas cosas y no se con que empezar jajajaja, bueno en cuanto se me oicurra una genialidad la pondre un par de dias despues para tener un par de dias de ventaja, no sea que me pnga y alos 15min me deis la solucion ajajajaja.
     
  44. Pumuky Gurú FPV

    Pumuky
    Registrado:
    16 Sep 2008
    Mensajes:
    4.092
    Me Gusta recibidos:
    0
    Bueno ya me salieron un par de ideas.

    La primera es simple, implementarle una alarma sonora que seria inyectada en nuestro sistema de audio, que avise de vuelo bajo/alto, otro tono para distancia max, y luego mas adelante se pudiera desarrolar para los voltajes y demas (eso estaria para el segundo proyecto).

    Este es mas ambicioso, trataria de hacer el OSD (tipo Dakar) con arduino, y posteriormente aplicarlo al Ardupilot.

    Bueno esta locura viene dada por lo siguiente, un PIC y un chip de arduino, creo que son bastante parecidos, ambos pueden realizar funciones similares.

    Si l ardupilot procesa datos del GPS, canales del avion y otro par de mas cuestiones, deberia de poder hacer tambien la labor del Dakar.

    Mi problema viene aqui, no tengo ni dea de como interactuar con video, desconozco toda esa parte de electronica (esa y todas jajaja), el dakar usa 3 pines con el LM1881 mas otro extra que va solito para el tema del control del Lince. Calculanndo entradas analogicas y digitales tal vez me faltara una analogica si quisiera meter voltimetros y amperimetro pero bueno eso tal vez tendria solucion.

    El tema del codigo pues el ardupilot tengo la mitad del trabajo realizado, preacticamente la conexion con GPS, la lectura de parametros y interpretacion de los mismos la tenemos realizada, solo quedaria implementar la parte visual, pero por mas informacion al respecto que busco no la encuentro.

    Ahora direis para que complicarse la vida con algo que ya esta realizado, pues muy simple, la filosofia del Dakar esque por un bajo coste cualquiera pueda tener un OSD, bien pues el coste de un ardupilot es bastante mas bajo casi que los componetes solos de un Dakar, aun asi habria que diseñar una pequeña PCB que controloara la parte video interpretando la uinformacion facilitada por el Arduino, asi que seguiria teniendo todos los alicientes del Dakar. por un precio un pelin superior al de un dakar contariamos con un sistema integrado, osea un todo en uno. ademas con la libertad del codigo de arduino, seria aun mas personalizable.

    Tambien pense que es posible que no entrara todo el codigo del Atmel, pero se puede simplificar los multimodos de funcionamiento del Dakar en diferentes codigos, separando codigos para 2 voltimetros, RSSI, color caracteres, tipos de GPS, deberia de entrar todo junto.
     
  45. bermudeznet Miembro

    bermudeznet
    Registrado:
    7 Feb 2007
    Mensajes:
    665
    Me Gusta recibidos:
    0
    Ya que habeis metido las estaciones meteorologicas en el hilo, se puede usar el valor de anenómetro para recojer el toldo en caso de fuerte viento, y el pluviometro para bajar las persianas...
    Pufff, que pena que no tenga ni idea de como meterle mano a este trasto.
    A ver si leyendo y leyendo se me pega algo.
     
  46. Pumuky Gurú FPV

    Pumuky
    Registrado:
    16 Sep 2008
    Mensajes:
    4.092
    Me Gusta recibidos:
    0
    jajajja bermudez te veo ya con un secador dandole aire a un anemometro para calibrar cuando quieres que se recoja el toldo ajajajajaja.
     
  47. Pumuky Gurú FPV

    Pumuky
    Registrado:
    16 Sep 2008
    Mensajes:
    4.092
    Me Gusta recibidos:
    0
    Bueno en cuanto a mi idea de implementarle un OSD al ardupilot, ha quedado eguardada en el cajon, y no por su complejidad sino porque despues de asesorarme y comentarlo con gente mas experta me explico el pro y los contras de ese proyecto.

    Unificar los 2 sistemas, provocaria conflictos en la gente que tiene otro OSD, tambien es preferible dejar los sistemas de video y navegacion separados e independientes para evitar problemas entre ellos, interferencias, cortes etc.

    La verdad esque me explicaron unas cuantas cosas que me convencieron de que tanto trabajo podria no ser tan fructifero como yo pensaba.

    Seguire discurriendo nuevas aplicaciones para implementar.
     
  48. bomber01 Miembro

    bomber01
    Registrado:
    28 Jul 2007
    Mensajes:
    618
    Me Gusta recibidos:
    0
    Arduino Diecimila Duemilanove

    Bueno pumuky yo he comprado otro Arduino Diecimila Duemilanove para hacer pruebas ademas como compre un ardupilot y no compre el programador fat pues por lo menos este me servirá pra programarlo,,,sabes que te sigo en el hilo del ardupilot pues lo compre ya machote..ahora me queda ponerlo en marcha ya te iré contando saludos a todos y gracias por vuestros aportes a los mas torpes como yo.
     
  49. jingo2pda Nuevo Miembro

    jingo2pda
    Registrado:
    8 Sep 2006
    Mensajes:
    31
    Me Gusta recibidos:
    0
    Hola compañeros, primero de todo un gran abrazo a todos ya que llevo casi un siglo fuera del foro (aprendiendo a volar mi calmato, entre otras cosas).

    Bueno pues gran cacharrito el arduino, ya tengo encargado uno y un par de de max 7456 para experimentar, pero quisiera saber si me podéis resolver unas dudillas, ya que nunca he pasado de emular un semáforo y una puerta de garaje con un pic 16f84. Primero el max7456, por lo poco que he podido ver, tanto para mostrar caracteres en pantalla como para grabar su memoria interna con un juego de caracteres propio, se comunica mediante spi, Maxim tiene, vende o facilita la información de una placa que sirve para testear el 7456 y grabar el juego de caracteres propio que quisiera obviar, ya que su misión es simplemente volcar en la memoria del 7456 un archivo que contiene el mapa de los caracteres definidos por el usuario, así que necesitaba saber si con la librería spi de arduino puedo suplir la placa de maxim, osea que si esta librería me valdría para comunicar el 7456 con arduino igual que se comunica con la coraza SD, por ejemplo (Yo imagino que si).

    También necesitaba saber si conocéis de alguna tienda donde pueda encontrar un zócalo adaptador del encapsulado smd a las medidas normales, ya que soldando smd tengo mas peligro que un mono con una metralleta y seguro que me cargo el 7456.

    Bueno pues me alegro mucho de volver a este foro y dicho sea de paso gratamente sorprendido de la calidad y los conocimientos del personal que se mueve por aquí, con el que siempre aprendes algo.

    Un saludo y muchísimas gracias por vuestra ayuda.
     
  50. acristóbal Gurú FPV

    acristóbal
    Registrado:
    9 Oct 2006
    Mensajes:
    3.710
    Me Gusta recibidos:
    0

    Aunque no soy el más entendido en esto tengo leido que los puertos que utiliza el protocolo SPI no están habilitados en Arduino (es decir en el lenguaje Arduino) aunque sí que están esos puertos en el hardware del propio Arduino.
    Para hacerlo funcionar deberás programar el Atmega directamente.

    Que me corrija el que entienda más que yo.
     

Compartir esta página