TODOPIC

Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: Drod en 03 de Diciembre de 2009, 09:21:23

Título: Telemetria - Aeromodelo
Publicado por: Drod en 03 de Diciembre de 2009, 09:21:23
Hola foreros! Buenos dias! A ver si me explico con el mal español, jejejeje

Antes de todo, este es el avion que sera monitoreado:

Ahora una introdución:
 
Estoy en el primer año de Mecatrónica y participé por primera vez este año en una competicion en Brasil llamada "SAE AERODESIGN", en la cual un grupo de universitarios (el mio tiene 10 personas), tiene que construir una aeronave desde el cero (no es considerada un aeromodelo, por ser un poco grande), y luego en la competicion, que es dividida en 2 partes, una el informe del proyecto, y otra, el vuelo. Gana el que tiene el mejor informe y el avion que soporta mas peso.

En mi primera participacion no fuimos tan bien porque el avion sufrio el llamado "efecto flutter":

Y entonces, de los 80 equipos de todo el mundo, nos quedamos en 70º (una desgracia, jeje... pero nos valio como aprendizado)

Bueno, tal defecto, ocurrió por falta de ensayos (y tiempo), pues los datos que teniamos, eran solo visuales, y teoricos (formulas y mas formulas), pero nada exactos y reales.  :(

Yo, como estudiante de mecatronica y no de aeronautica como 80% del grupo, tengo muchas dificultades en la construcion y proyecto del avion, entonces participo mas del "servicio de presidiario", o sea, pegar partes, montaje, etc, y no participo tanto de los calculos... Por eso propuse al grupo en marzo, crear un sistema de adquisicion de datos, para que sea util en los calculos..

En marzo, yo empezé el proyecto con el PIC16F877A, y hice una interfaz que detectava el movimiento de "strain gages":


...que son sensores de deflexion, y luego lo transmitia via RS-232...
Este es el primer test con straing gages que hice em Visual Basic 6:
(http://img6.imageshack.us/img6/8149/telemetria3.jpg)

El PIc estava programado en PIC BASIC PRO.

Lo mas dificil fue detectar la variacion de menos de MEDIO OHM (!!!), que el strain gage proporciona, jeje, lo hice con el amplificador INA128 ...

 y tambien hice interfaz con sensores de presion.. Pero el proyecto no pudo ser llevado a cabo pues no teniamos patrocinio, pues algunos componentes (como el INA128) son relativamente caros (al menos en Brasil, jejeje).

Para la proxima competicion (octubre 2010), ya tenemos patrocinio y dinero, y estoy empezando a  hacer un nuevo proyecto.

Para este nuevo proyecto, quiero usar el conocimiento adquirido en este foro (que es espetacular, el mejor que he visto), y compartir este proyecto, que creo ser interesante..

Ahora no quiero usar solamente la comunicacion RS-232, porque como usaré un portatil,
tendré que usar un adaptador serial / USB, así como en marzo lo utilize, pero tuve muchos problemas, pues cada adaptador me dava un dato distinto  :5]

Y ahora quiero migrar del 16F para el  PIC18F4550, que gracias a este foro estoy aprendendo a utilizar, y no usare mas el PIC BASIC PRO, por las dificultades que tendo para trabajar con decimales en este lenguaje. Estoy programando en C com el CCS. Y tambien migré del Visual Basic 6, para el C# (gratuito, que puede ser bajado aqui: http://www.microsoft.com/express/vcsharp/  <--- Lo recomendo, es GRATUITO y MUY FACIL de usar!!!.

Empezé desde el cero y lo que necesito hacer es:

- Una placa grabadora para el PIC18F4550
- Comunicar el PIC atraves del USB y RS-232
- Conectar sensores (presion, deflexion, velocidad, RPM, temperatura, altitud, angulo del aileron, etc...) al PIC
- Saber el dia, hora, minuto, y segundo en el que los datos fueran obtenidos
- Grabar los datos en una memoria SD, de gran capacidad
- Hacer la comunicacion RF entre dos placas, una en el avion y otra conectada al portatil
- Mostrar los datos obtenidos en tiempo real, en gráficas, meters, etc, hechos em C#...
- Guardar los datos en un banco de datos
- Y un extra, seria la posibilidad de conectar un GPS

Empezé desde el cero hace un par de semanas, lo que hice hasta ahora es:

La comunicacion USB (CDC, gracias a este foro), y RS232 simultaneas -
(http://img710.imageshack.us/img710/3808/telemetriaserialusb.jpg)

Para la comunicacion RS-232 con PROTEUS e el programa en C# utilize el Virtual Serial Port de Eltima
(con la ayuda de la pagina de Palitroquez!!!! Muchas gracias!!)

(http://img682.imageshack.us/img682/8995/eltima.jpg)

Este es el grafico que yo programe em C# que mostra a la vez el valor de 10 sensores conectados en el 18F4550 en PROTEUS (en tiempo real), (aunque en este image, para mejor visualizacion esta simulado com valores Randon en C#, jeje, no nunca movimentaria tan rapidamente los POT-LIN an Proteus, jejeje):

(http://img689.imageshack.us/img689/1548/sensoresanalogicos.jpg)
 
Hice tambien la deteccion de horario en el que el dato fue cojido, con el DS1307 (tambien gracias a este foro, jejejeje):

(http://img18.imageshack.us/img18/1355/preciso.jpg)

(no mireis al "sexta-feira", es "viernes" en portugués, jejeje)

Y también programé otras inferfaces visuales en C#, como estas:

(http://img708.imageshack.us/img708/571/interfazvisual.png)

Lo próximo que haré será el almacenamiento de los datos obtenidos, en una memória SD de gran capacidad.
También voy a empezar de cero, no tengo ni idéa de como se hace.

Estoy leyendo un articulo sobre FAT en la pagina uControl (muy buena!!!!), para aclararme,
así como otros tópicos que tratan del tema.

Tambien estoy buscando materiales sobre el I2C, que tampoco conozco mucho!

Y también estoy buscando la mejor plaquita para grabar el PIC18F4550.
No puedo comprarla, voy a montarla. De acuerdo con los tópicos
las mejores opciones son las PicKit y ICD2, no? Cual recomendais?

Creo que es interesante compartir este trabajo con el foro, pues
mucha gente así como yo, no tiene mucha experiencia con los PIC,
y también creo que es muy interesante, pues empezé del cero, nunca habia
hecho nada con los 18F, y este tema aportará tópicos muuuuy variados!

Todo lo que hice hasta ahora fue gracias a este foro, creo que es mi obligacion
ir postando lo que hecho.

La ayuda que necesito es la indicacion de los mejores textos sobre estos temas,
asi como "como trabajar con tantos datos simultaneos"!

Y claro, sugestiones! jeje!

Muchas gracias!









































Título: Re: Telemetria - Aeromodelo
Publicado por: Nocturno en 03 de Diciembre de 2009, 09:37:18
¡Estoy impresionado con tu proyecto!. Me suscribo al hilo para seguir tus avances.
Título: Re: Telemetria - Aeromodelo
Publicado por: MGLSOFT en 03 de Diciembre de 2009, 09:43:50
Tambien impresionado!!
Ademas te felicito por tu dominio del español, ya que tu idioma natural es Portugues.

Una pregunta:
Donde obtuviste los activex para la interfaz visual en C++ ??
Título: Re: Telemetria - Aeromodelo
Publicado por: tinchosalamero en 03 de Diciembre de 2009, 09:48:59
Muuuy interesante tu trabajo, estaremos todos pendientes a tus avances
Título: Re: Telemetria - Aeromodelo
Publicado por: Drod en 03 de Diciembre de 2009, 09:51:57
Hola MGLSOFT! Muchas gracias!

Puedes bajar versiones de evaluación y comprar la full aqui: http://support2.dundas.com/

Merece la pena!   ;-)

Título: Re: Telemetria - Aeromodelo
Publicado por: NANO1985 en 03 de Diciembre de 2009, 09:52:55
muy buen proyecto!!! me gustó la interfaz grafica !!!
saludos
Título: Re: Telemetria - Aeromodelo
Publicado por: Drod en 03 de Diciembre de 2009, 10:22:17
Para que veais como estoy caminando a pasos de hormiga, jeje, todavia no tengo claro la alimentación que usaré para la placa.

Creo que será esta que hice en Eagle. Puedes elegir com el JP1, si quieres alimentarla con el jack (fuente o bateria), o si quieres alimentarla con el proprio USB. Fue basada en la alimentación de la placa "EasyPIC5" de Mikroelektronika: http://www.mikroe.com/en/tools/

(http://img704.imageshack.us/img704/3743/alimentacion.jpg)

Todavia queda por hacer la alimentacion del SD card, que si no me engaño son 3,3V
Título: Re: Telemetria - Aeromodelo
Publicado por: Leon Pic en 03 de Diciembre de 2009, 11:21:00
Excelente y muy impresionado también.

Título: Re: Telemetria - Aeromodelo
Publicado por: Drod en 03 de Diciembre de 2009, 13:01:14
Bueno, voy a empezar en eso de escribir datos en una tarjeta SD con gran capacidad de memoria.

Leí que solo aceptan datos de 512KB en 512KB, entonces yo tendre que escribir
512kB de datos en una EEPROM 24C512, y luego enviar los datos a la SD.

Por increible que parezca nunca hice conexion con EEPROM,
nuca la necesité, en mis aplicaciones siempre guardo los datos en el ordenador.

Pero siempre hay una primera vez, jejeje

Con este tema abierto por firepic http://www.todopic.com.ar/foros/index.php?topic=22242.msg175636#msg175636

facilmente conecté la EEPROM al I2C e la escribí, y la leí simulando en Proteus, usando el software de Eltima, y el Hyperterminal.

Las configuraciones son:

Código: [Seleccionar]
#define EEPROM_SDA     PIN_B0
#define EEPROM_SCL     PIN_B1
#use i2c (MASTER,SCL=EEPROM_SCL,SDA=EEPROM_SDA, FORCE_HW)

(http://img130.imageshack.us/img130/1056/memoria.png)
Título: Re: Telemetria - Aeromodelo
Publicado por: Drod en 03 de Diciembre de 2009, 13:13:22
Ahora tentaré solucionar una duda que me surgio, que es como conectar varios dispositivos I2C
a la vez.

Inicialmente necesito conectar la EEPROM, el MMC y el DS1307 en el I2C.

Leí que cada dispositivo I2C tiene una dirección que lo identifica y es el primer dato que se envía en una comunicación,
y que en el datasheet de cada componente I2C indica la dirección que utiliza o tiene asignada.

Eso está bien, pero como poner eso en CCS, ya no lo sé.

Obs: Perdonad por el nivel muy basico, jejejejeje
Título: Re: Telemetria - Aeromodelo
Publicado por: Nocturno en 03 de Diciembre de 2009, 13:40:33
Te recomiendo que eches un vistazo al ejemplo que trae CCS para manejar una EEPROM externa vía I2C. Es bastante clarificador y la mayoría de los dispositivos I2C se manejan igual.
De todas formas, juraría que también hay un ejemplo para el DS1307 y para una MMC.
Título: Re: Telemetria - Aeromodelo
Publicado por: MLO__ en 03 de Diciembre de 2009, 15:17:48
Si los hay.

Para conectarlos solo conectas los pines correspondientes del integrado a las lineas del SCK y SDA y ya, solo se necesitan dos resistencias de pullup para todo el bus. Lo único que debes tener en cuenta es que no coincida la dirección de cada dispositivo, esto se garantiza usando una librería diferente para cada dispositivo.

Muy bueno el proyecto ...  ;-)

Saludos
Título: Re: Telemetria - Aeromodelo
Publicado por: Leon Pic en 03 de Diciembre de 2009, 15:44:47
Perdón por el pequeño offtopic que voy a generar ya que en mi post anterior me olvidé mencionarlo.
Cuando vi el vídeo de la prueba del plano, noté que alerón se movía mucho. Entiendo que no estaba fijo pero la forma en que se sacudía, me llamó la atención. Esto no debería ser normal, ya que las fuerzas del viento deben mantenerlo quieto o casi quieto pero debido a la gran turbulencia generada por el perfíl aerodinámico, este se mueve. Es una clara señal de la gran turbulencia generada y que debe ser minimizada al máximo para darle mayor rendimiento al plano. Para minimizar esta turbulencia, se colocan wingtip o winglets

(http://farm2.static.flickr.com/1191/1480416143_8abc6c6f72.jpg)

Y finalmente, para minimizar el movimiento "errático" del alerón, le puedes colocar un contrapeso del lado de adentro del alerón para que sea más fuertes a las turbulencias generadas.
Título: Re: Telemetria - Aeromodelo
Publicado por: Drod en 03 de Diciembre de 2009, 23:39:13
Hola LeonPic! El video fue gravado antes de ponermos los endplates jeje! Muchas gracias por el comentario, se ve que te gusta el tema, asi como la meteorologia! Yo trabajo en el INPE, http://www.inpe.br/, y si algun dia te apetece hacer una visita, argentina no estas tan lejos de Sao Paulo, jejeje


Bueno, a respecto del tema de los SD/MMC:

********************************************************************************************************************

Estoy siguiendo los temas:

MMC Card: Hardware and Firmware (RedPic): http://www.todopic.com.ar/foros/index.php?topic=15553.20
LECTO-GRABADOR de tarjetas MMC , SD, MicroSD con pic 16F877A (NANO 1985): http://www.todopic.com.ar/foros/index.php?topic=17666.0
microSD por puerto SPI del micro 18f4550 (therionx): http://www.todopic.com.ar/foros/index.php?topic=28403.0

También las paginas:

PicManía (PROYECTOS : AUX MMC Card): http://picmania.garcia-cuervo.net/proyectos_aux_mmc.php
Captain (PIC - MMC (Multi Media Card) Flash Memory Extension): http://www.captain.at/electronics/pic-mmc/
Compsys (MMC PROJECT): http://www.compsys1.com/workbench/On_top_of_the_Bench/MMC_Project/mmc_project.html
uControl (FAT AL DESNUDO): http://www.ucontrol.com.ar/wiki/index.php/FAT_al_desnudo

********************************************************************************************************************




Título: Re: Telemetria - Aeromodelo
Publicado por: Drod en 03 de Diciembre de 2009, 23:41:15
A ver quando domino el tema, jejeje, se me caem los pelos de tan complicado, jejeje  :D
Título: Re: Telemetria - Aeromodelo
Publicado por: NANO1985 en 04 de Diciembre de 2009, 01:21:10
A ver quando domino el tema, jejeje, se me caem los pelos de tan complicado, jejeje  :D

Estoy para ayudar drod...
lo que necesites...
saludos
Título: Re: Telemetria - Aeromodelo
Publicado por: Leon Pic en 04 de Diciembre de 2009, 08:10:03
Hola LeonPic! El video fue gravado antes de ponermos los endplates jeje! Muchas gracias por el comentario, se ve que te gusta el tema, asi como la meteorologia! Yo trabajo en el INPE, http://www.inpe.br/, y si algun dia te apetece hacer una visita, argentina no estas tan lejos de Sao Paulo, jejeje

Soy meteorólogo, por eso me gusta mucho la meteorología. Las veces que consulté en esa página las imagenes satelitales. La utilizo mucho. SI algún día puedo ir a Brasil, me contactaré contigo para visitarte a ti y visitar al INPE  :-/

Muchas gracias.
Título: Re: Telemetria - Aeromodelo
Publicado por: ASTROCAR en 04 de Diciembre de 2009, 08:42:42
hola buenos dias, muy interezante tu proyecto y mil felicitaciones por tu dedicacion y rapidez en dominar las cosas con los pic, por lo que veo tu proyecto toca muchos topicos con los pic y por eso me ofresco en colaboracion en lo que pueda ayudarte como las i2c, gps y cualquier otro topico que se toque en este proyecto que por demas esta decirlo esta muy completo nunca he trabajado Aeromodelo pero me gustaria proponerlo como tema de grado a mi hermano que esta estuduando ingeneria mecanica y tiene inclinacion por la mecatronica.

Saludos
Atten. Alexander santana.
Venezuela-Barcelona
Título: Re: Telemetria - Aeromodelo
Publicado por: Drod en 05 de Diciembre de 2009, 02:48:19
Hola LeonPic y ASTROCAR!

LeonPic, cuando vengas me avises, a ver si hacemos un tour!! jejeje!!  : ;-)
ASTROCAR, muchas gracias, y si, lo recomiendo que lo propongas, pues al construir un aeromodelo se adquire muchos conocimientos
aeronauticos!!! Merece la pena!  :mrgreen:

Bueno, a respecto de la memória SD:

MIRAD LO QUE ES NO CONOCER EL PIC!  :oops: !!!

SOLO HOY me enteré sobre el I2C y el SPI. Eso es lo que pasa cuando todo lo que haces en la vida es leer sensores en los ADC y pasar los
valores e un LCD o a graficos en el PC!

Después de leer muchos temas del foro, y muchas otras paginas, y con la ayuda (y paciencia) de Suky (http://www.todopic.com.ar/foros/index.php?topic=28403.0), me aclaré lo suficiente para saber como empezar y que camino seguir.

Un resumen para los que futuramente empezaren desde el cero, y no saber nada de nada sobre el tema como yo:

El I2C y el SPI (pines 33, 34 y 26 del PIC18F4550 por ejemplo)  tienem funciones parecidas (comunicacion con dispositivos), pero funcionamentos distintos, electricamente hablando. Cada uno tiene sus ventajas y defectos (como se puede ver aqui: http://www.best-microcontroller-projects.com/spi-interface.html)

Se pueden conectar varios dispositivos a la vez en el I2C y en el SPI, pero no los podemos mezclar, como yo habia hecho en los primeres testes, conectando una EEPROM, y un MMC juntos, pues por ejemplo, para el I2C es necesário resistencias PULL UP, y para el SPI, no.

En el 18F4550, el PIC en cuestión, el I2C y el SPI tienen sus pines compartidos. Lo que significa que se puede usar o el I2C o el SPI (he visto algo sobre un metodo de usar los dos (por hardware), pero me parecio muy dificil, si alguién lo sabe lo dices).

Pero en este caso, existe una solución, que es usar uno de los dos via hardware y el otro, emular via software.

Leí que el SPI es mucho mas fácil de emular via software, y es lo que hice yo, pero Suky me dijo que en CCS tanto el I2C quanto el
SPI son iguales de facil!

Sobre el SD Card (dispositivo SPI), quien todavia no ha hecho nada, lo que debe hacer primero es al conseguir una tarjeta com soporte SPI, saber como inicializarla, leer y escribir en sus sectores. Deeeeeespues de conseguir, empezar con el tema de los FAT, que es lo que voy a empezar a estudiar.

En los temas que poste anteriormente,
MMC Card: Hardware and Firmware (RedPic): http://www.todopic.com.ar/foros/index.php?topic=15553.20
LECTO-GRABADOR de tarjetas MMC , SD, MicroSD con pic 16F877A (NANO 1985): http://www.todopic.com.ar/foros/index.php?topic=17666.0
microSD por puerto SPI del micro 18f4550 (therionx): http://www.todopic.com.ar/foros/index.php?topic=28403.0

Hay varios archivos y ejemplos para hacer la conunicación, unos basandose directamente en el driver "mmc_spi.c", y otros en variaciones.
El que mas me pareció claro, fueron los archivos creados por Suky, que son "SDCard.c" (ejemplo de aplicacion) y el "SDCard_hard.c"(comunicacion
y configuracion de hardware para que el archivo anterior funcione). Ambos archivos estan disponibles en el segundo post de este tema http://www.todopic.com.ar/foros/index.php?topic=28403.0

Lo primero que yo hice fue un test usando el SPI por hardware, con este schematic:
(http://img109.imageshack.us/img109/9896/schema1s.png)

Fijaos que el DI, DO y CLK estan conectados en sus respectivos pines SPI!
Peeeero, el CS, lo puedes conectar en el pin que quieras, pero luego hay que cambiar el
Código: [Seleccionar]
#define SD_CS PIN_C0del archivo "SDCard_hard.c"

Para que funcione en Proteus, también hay que comentar las siguientes lineas en el "SDCard_hard.c":
Código: [Seleccionar]
/*#if RS232_DEBUG
      printf("\r\n--> Se envia CMD59 (Desactivación de CRC)\r\n");
   #endif
   // Se desactiva CRC.
   if(SDCard_send_command(CMD59,0,Respuesta)==0){
      return(0);
   }else if(Respuesta!=0){
      return(0);
   }*/

En memórias reales eso no es necesário.

Pero, como dije al principio del tema, mi plaquita de telemetria tendra, ademas de una EEPROM, el "chip calendario" DS1307 (tuve exito gracias al tema http://www.todopic.com.ar/foros/index.php?topic=13282.0), y los dos se conectar via I2C, o sea, el MMC lo tendre que emular via software. Elegi emular
con los pines D2,D3 y D4, y seguir con el CS adonde ya estaba, como se puede ver en el schematic:

(http://img21.imageshack.us/img21/3852/schema2.png)

Pero para que funcione la emulacion, hay que comentar la línea (archivo "SDCard_hard.c")
Código: [Seleccionar]
//SETUP_SPI(SPI_MASTER|SPI_CLK_DIV_16|SPI_H_TO_L|SPI_XMIT_L_TO_H );
Y cambiar la línea:
Código: [Seleccionar]
#use spi(MASTER,BITS=8,MODE=3,FORCE_HW,stream=SDCard)para:
Código: [Seleccionar]
#use spi(MASTER,CLK=PIN_D2, DO=PIN_D3, DI=PIN_D4, BITS=8, MODE=3, MSB_FIRST, stream=SDCard, FORCE_SW)
OJO!!! Los pines "DO=PIN_D3, DI=PIN_D4", corresponden respectivamente al D4 y D3 (al revés) en el schematic del image en Proteus!
Eso me dio unos problemillas,  en la primera vez lo conecte mal, jejeje

Despues de todos los lios schematicos, jejeje, el archivo "SDCard.c" es facil de compreender!

Pones una string en la variable al principio, por ejemplo:
Código: [Seleccionar]
char BufferSD[512] = "PROYECTO TELEMETRIA - TEST SD CARD";

y en la simulacion, verás: (si no quieres ver todos estos detalles, asigna "0" al "#define RS232_DEBUG 1" del archivo "SDCard_hard.c":
(http://img192.imageshack.us/img192/5852/serial3.png)

Lo que hiziste nada mas es que escribir la string en la memoria, en 512, y luego, leer la string en dicha posicion!

Se puede saber cual es cual, por ta tabla ASCII:
(http://www.cs.utk.edu/~pham/ascii_table.jpg)
 
Bueno! Despues de eso, creo que ahora puedo avanzar!
Voy a practicar un poco mas eso de escribir en distintas posiciones,
y luego voy a estudiar eso de los FAT, que no tengo ni idea!  :D

Lo bueno es que ahora tengo nocion del hardware del USB, del RS-232, de la EEPROM, del DS1307, y del SD.

A ver si lo termino, quiero empezar con el tema del GPS!   :-/ :-/ :-/ :-/

Muchas gracias a todos! Este foro es lo más  8)




















Título: Re: Telemetria - Aeromodelo
Publicado por: Nocturno en 05 de Diciembre de 2009, 03:18:22
Avanzas a la velocidad del rayo. A este paso vas a terminar el proyecto en una semana  :shock:
Título: Re: Telemetria - Aeromodelo
Publicado por: stk500 en 05 de Diciembre de 2009, 07:22:24
que alucinada, con lo que hacer avioneta de Carton  :D :D
me apunto a este show
Título: Re: Telemetria - Aeromodelo
Publicado por: Suky en 05 de Diciembre de 2009, 12:15:10
 :shock: Guauuu! Que proyecto, me lo había perdido! Felicitaciones!!  :-/ Y también por los avances con la memoria SD  ;-)

Con respecto a FAT y si estas leyendo el articulo de Ariel (FAT al desnudo) la librería que tengo implementada (Todavía en pruebas  :mrgreen:) puede llegar a servirte en el aprendizaje, eso si me parece que no es tan sencilla de entender como la librería a nivel hard  :mrgreen:
Te la adjunto en el hilo (http://www.todopic.com.ar/foros/index.php?topic=28403.msg236346#msg236346) que tratamos el tema y la introducción a lo que hace  ;-)

Igual aclaro que hay otras librerías FAT implementadas que seguramente convengan mas  :tongue:

Saludos!
Título: Re: Telemetria - Aeromodelo
Publicado por: Drod en 05 de Diciembre de 2009, 12:53:55
Holaaaa!

jaja! Hay hasta gente de Alemania en el foro! :-/ Pues si que el foro es bueno eh?

Suky! Que buena la libreria FAT! Era lo que necesitaba yo para seguir!

Hasta crea carpetas!  :o No tendré que hacerlo com VB o C# como siempre lo hice!

Bueno foreros, hasta el lunes, ahora toca dedicación total a la novia, jajajaja!  :D :D :D


Título: Re: Telemetria - Aeromodelo
Publicado por: Drod en 07 de Diciembre de 2009, 19:44:55
Hola!  :o

Estuve leyendo sobre el tema, y creo que voy a usar:

Transceptor RF: Laipac TRF-2.4G  (manual: http://www.tato.ind.br/files/RF-24G_datasheet.pdf)
GPS: ME-1000RW (manual: http://www.tato.ind.br/files/ME-1000RW.pdf)

Qué me decis? Alguna sugerencia?
Título: Re: Telemetria - Aeromodelo
Publicado por: ASTROCAR en 07 de Diciembre de 2009, 21:16:26
hola buenas noches, una consulta y basicamente que funcion cumplira el gps en tu proyecto.

Saludos y disculpa la pregunta; ahora el enlace de radio frecuencia con  Laipac es para el control de la avianeta.
Atten. Alexander Santana.
Venezuela-Barcelona.
Título: Re: Telemetria - Aeromodelo
Publicado por: Drod en 08 de Diciembre de 2009, 08:12:33
Hola ASTROCAR!

No se si he compreendido la pregunta, jeje

El GPS voy a usar para saber toda la ruta del avion, desde el despliegue hasta el aterrizaje, asi como la altitud (importante), y la velocidad.

Y el transceptor es para la visualizacion en tiempo real de los datos (la SD es para el caso de no tenermos un portatil en el momento).

El Laipac 2.4G y el Micro GPS me parecen buenas opciones, incluso su precio en Brasil!

El XBEE PRO tambien me parece buena opcion pero es mas caro!

Saludos!
Título: Re: Telemetria - Aeromodelo
Publicado por: ASTROCAR en 08 de Diciembre de 2009, 09:09:48
muy interezante esa parte de ver en todo momento donde se encuentra el avion via gps pero eso seria como una rastreo permanente del gps cosa que siempre quise hacer en mi proyecto pero no pude creo que ha ese metodo le llaman logger, es hago como lo hacen los gps de la garmin. que siempre vas viendo en cada momento donde esta el objetivo. Yo en mi proyecto con gps lo que hacia era solicitar la informacion de las cooordenadas via menaje de texto pero eso no lo podia hacer cada rato por eso me intereza esa parte y donde lo muestraras yo usaba google Earth.

Aca dejo un link de mi proyecto.
http://micros.mforos.com/1149907/7363829-inicios-basicos-con-gps-parallax/

Atten. Alexander Santana.
Barcelona-Venezuela.
Título: Re: Telemetria - Aeromodelo
Publicado por: Drod en 08 de Diciembre de 2009, 09:49:46
Hola ASTROCAR!

Muy bueno el proyecto! Ahora tendré más referencias!

A ver si encuentro el Parallax por aqui para comparar precios!

Sobre el Google Earth (o el Google Maps), ya pensé en usarlos, pero
como el avion siempre estará en un rango de más o menos 500 metros (exagerando un poco),
creo que la visualizacion la voy a crear en el proprio C#, y
solamente me vá a decir el rastreo dentro del rango pre establecido, así como la altitud, en colores.

Mira un ejemplo que hice en el paint (está muuuy pero muuuuuuy cutre, jejeje):

(http://img193.imageshack.us/img193/8730/ejemplod.jpg)
Título: Re: Telemetria - Aeromodelo
Publicado por: ASTROCAR en 08 de Diciembre de 2009, 10:29:13
ok ya estoy mas animado y quiero retomar el proyecto de gps y muchas cosas mas pero factor tiempo pero aca como estoy en una pc siempre veo las  cosas del foro pero fin de semana puedo experimental cosas.

Saludos.
Atten. Alexander Santana.
Venezuela-Barcelona
Título: Re: Telemetria - Aeromodelo
Publicado por: Drod en 08 de Diciembre de 2009, 12:10:15
UPDATE:

En el principio del proyecto yo pense en poner un LCD 2x16 y un teclado matricial para no depender tanto un ordenador, pero no me parecio viable por el gran numero de pines que iba a utilizar.

Pero con las técnicas de la pagina MicroPIC de Noturno (http://www.micropic.es/index.php?option=com_content&task=blogcategory&id=21&Itemid=60), con solo 4 pines yo tengo un LCD y 12 teclas a mi disposicion, una pasada!!!!  :-/

Título: Re: Telemetria - Aeromodelo
Publicado por: alexysar en 08 de Diciembre de 2009, 13:47:48
UPDATE:
En el principio del proyecto yo pense en poner un LCD 2x16 y un teclado matricial para no depender tanto un ordenador, pero no me parecio viable por el gran numero de pines que iba a utilizar.

También hay una técnica para implementar un teclado matricial para ahorrarse pines, usando un ADC del PIC. El tema fue tratado en el siguiente hilo:

Lectura de un teclado matricial con un solo pin del PIC (http://www.todopic.com.ar/foros/index.php?topic=18911.0)
Título: Re: Telemetria - Aeromodelo
Publicado por: ASTROCAR en 08 de Diciembre de 2009, 16:10:45
Hola buenas tardes, oye estos metodos son muy bueno y aplicables en su momento pero en este caso ahorrarias pines del pic pero aumentarias recursos del micro como es la ram del pic y esas cosas hay que estudiar bien la factibilidad.

Saludos y es cuestion de ver bien que es lo mejor.
Atten.
Alexander Santana.
Venezuela-Barcelona.
Título: Re: Telemetria - Aeromodelo
Publicado por: RALF2 en 08 de Diciembre de 2009, 17:33:33
Hola amogos!
Dop mis felicitaciones por el proyecto me dejaste loco con la interfaz grafica  :shock:
Como la haces que programss empleas para ello?   :mrgreen:

En cuanto a tu preguta sobre los modulos RF te recomiendo los Xbee Pro (http://www.sparkfun.com/commerce/product_info.php?products_id=8767) de 60 0 100mW   :mrgreen:
Son mejores que los laipac que yo he usado  ;-)

En cuanto a lo del i2c te recomendaria que utilizaras memorias spi porque con ellas puedes enviar y recibir datos mas rapidamente que con el bus i2c! claro todo dependera de lo que quieras hacer.

Bueno estare pendiente de este hilo y de tus comentarios

Saludos
Título: Re: Telemetria - Aeromodelo
Publicado por: ASTROCAR en 08 de Diciembre de 2009, 20:16:05
buenas noches si usar spi seria el mismo protocolo que usas para las memorisas sd y asi solo estudiarias un solo protocolo y como dijo el colega un poco mas rapido su comunicacion.

Saludos.
Atten.
Alexander Santana.
Venezuela-Barcelona
Título: Re: Telemetria - Aeromodelo
Publicado por: Suky en 08 de Diciembre de 2009, 20:24:31
buenas noches si usar spi seria el mismo protocolo que usas para las memorisas sd y asi solo estudiarias un solo protocolo y como dijo el colega un poco mas rapido su comunicacion.

Las memorias EEPROM SPI usan modo 0_0 y las memorias SD usan 1_1 y a distintas velocidades, así que o hay que cambiar de modo cada vez que se requiera o usar pos software alguna.

Saludos!
Título: Re: Telemetria - Aeromodelo
Publicado por: Drod en 09 de Diciembre de 2009, 12:49:39
Hola foreros! Muchas gracias por el interés! Confeso que ahora estoy un poco confuso con cual tema dar prioridad, porque estou teniendo problemas con el dinero que será aplicado a compra del GPS y el Transceiver, por problemas en el equipo de gestión del Aerodesign.

ASTROCAR:
Citar
estos metodos son muy bueno y aplicables en su momento pero en este caso ahorrarias pines del pic pero aumentarias recursos del micro como es la ram del pic y esas cosas hay que estudiar bien la factibilidad.


Es muy importante lo que has dicho, al tener todo el hardware basico hecho y programado, luego veo si es posible poner el LCD, el teclado y lo demas. No creo que voy a poder, pues com pocas cosas que hice ya tuve problemas con la RAM, bueno, se deve tambien a la falta de experiencia en estos temas, jeje... En realidad creo que la "administracion" del "poder" del PIC y "trabajar con muchos datos a la vez" son los pasos mas importantes de todo el proyecto, pues no adelanta mucho tener 20 sensores y todo mas conectado al PIC, y luego no sacar todo el provecho posible. Siempre trabajé con pocos datos, voy a tener muchas dificultades con eso. Os iba a preguntar sobre un tema que yo no conozco y que vi en otros hilos, que es la posibilidad de trabajar con 2 PIC's, siendo que uno seria solamente para manipulacion de datos (o algo asi).

RALF2:
Citar
Dop mis felicitaciones por el proyecto me dejaste loco con la interfaz grafica 
Como la haces que programss empleas para ello?   

Hola Ralf2! Muchas gracias!

A respecto de tu duda, no se si ya tienes facilidad con VC#, pero en todo caso a ver si te explico el paso a paso:

Lo programe em C#, usando el "Dundas Gauge" y "Dundas Chart" (luego se lo explico).

Lo primero que tienes que hacer es bajar el Visual C# Express (gratuito) http://www.microsoft.com/express/vcsharp/ (tambien puede ser el Visual Basic Express, no cambia mucho, basicamente cosillas estructurales y asignación de variables). Si nunca has hecho nada con lenguajes orientada a objectos, no temas, es muy facil (empezar).

Luego, después de instalar el C#, en la pagina http://www.dundas.com/, puedes bajar la version full evaluation de "Dundas Gauge" y "Dundas Chart", o comprar la versión Full, que tiene mucho más recursos. Si trabajas con adquisicion de datos, lo recomendo la full, pues facilita mucho al enseñar los datos en pantalla, y es muy bonito!

Luego, al tener instalado, estos son los pasos que segui en Visual C# Express para instalarlos:
(http://img704.imageshack.us/img704/1640/instralaciondundas.png)

Ahora solo tienes que pulsar en "Chart", o "GaugeContainer", y poner en tu "form", y saltara a la pantalla el Wizard como este (para los chart):

(http://img189.imageshack.us/img189/4066/wizarddundas.png)

Veamos un ejemplo, para hacer una gráfica como esta (te servirá para
saber como cambiar propriedades de cualquier grafica, o gauge):

(http://img689.imageshack.us/img689/1548/sensoresanalogicos.jpg)

Pulsas, en "Chart", en el Wizard, elijes "Line" e dale al "Finish"

Tendras algo así:

(http://img707.imageshack.us/img707/3209/wizarddundas2.png)

Luego, con el componente selecionado, en la ventana de propriedades, cambias el
"BackColor" para Black,
"BackGradientEndColor" para "34;34;34"
y el "BackGradientType" para "HorizontalCenter"

Luego pulsas en Chart Areas

 "ChartAreas",
y luego cambia "BackColor" para Black, BackGradientEndColor para "34;34;34"
y el BackGradientType para "VerticalCenter"

Luego pulsas en "Axes", "Y(Value)", le das un titulo (por ejemplo, "Variable), y cambia el color del titulo y del LabelStyle

(http://img705.imageshack.us/img705/8841/wizard3.png)

Tendrás algo así:
(http://img25.imageshack.us/img25/1285/wizard4.png)

Para añadir el numero de sensores (o lo que sea), que seran vistos, en la ventana de propriedades, pulsas en "Series", luego en "Add"
y añades cuantos "sensores" quieras! Elijas el tipo "line" para todos, y cambie su nombre para lo que desees, como "Potenciometro 1", etc!

(http://img402.imageshack.us/img402/5320/wizard5.png)

Tendrás algo así:

(http://img137.imageshack.us/img137/4142/wizard6.png)

Ahora en la ventana de propriedades pulsas en "Titles", en "Add", y Eliges un nombre para la Gráfica y el color, fuente, etc

(http://img137.imageshack.us/img137/1135/wizard7.jpg)

Luego,  en la ventana de propriedades pulsas en "Legends", y cambia las propriedades BackColor, BorderColor, BorderWidth, Alignment y Docking
(http://img3.imageshack.us/img3/8104/wizard8.jpg)

Y tanaaaa! Tienes tu grafica personalizada y lista!
(http://img19.imageshack.us/img19/4839/wizard9.png)

Ahora, a programar!

Lo primero que tienes que hacer es poner un timer al proyecto, y elegir el tiempo en el que se activará la subrutina de la grafica,
por ejemplo, 10ms...

(http://img10.imageshack.us/img10/4391/timer.png)

Pulsas dos veces en el timer1, y este es un codigo ejemplo para que todo salga bien, en las condiciones establecidas
anteriormente:

Código: [Seleccionar]
    private void timer1_Tick(object sender, EventArgs e)
       
        {

            int numberOfPointsInChart = 200;
            int numberOfPointsAfterRemoval = 150;

            // Simulate adding new data points
            int numberOfPointsAddedMin = 1; //5
            int numberOfPointsAddedMax = 1; //10

           

            //chart1.ChartAreas["Default"].AxisX.Minimum = pointIndex - numberOfPointsAfterRemoval;
            //chart1.ChartAreas["Default"].AxisX.Maximum = chart1.ChartAreas["Default"].AxisX.Minimum + numberOfPointsInChart;

            //chart1.ChartAreas["Default"].AxisX.Minimum = minValue.ToOADate();
            //chart1.ChartAreas["Default"].AxisX.Maximum = maxValue.ToOADate();
         

            for (int pointNumber = 0; pointNumber < random.Next(numberOfPointsAddedMin, numberOfPointsAddedMax); pointNumber++)
            {
                chart1.Series["Sensor 1"].Points.AddXY(pointIndex + 1, (vScrollBar5.Value + 500)); 
                chart1.Series["Sensor 2"].Points.AddXY(pointIndex + 1, vScrollBar5.Value);
                chart1.Series["Sensor 3"].Points.AddXY(pointIndex + 1, (vScrollBar5.Value + 1000));
                chart1.Series["Sensor 4"].Points.AddXY(pointIndex + 1, (vScrollBar5.Value - 2500));
                chart1.Series["Sensor 5"].Points.AddXY(pointIndex + 1, vScrollBar5.Value - 1400);
                chart1.Series["Sensor 6"].Points.AddXY(pointIndex + 1, (vScrollBar5.Value + 3300));
                chart1.Series["Sensor 7"].Points.AddXY(pointIndex + 1, (vScrollBar5.Value - 1200));
                chart1.Series["Sensor 8"].Points.AddXY(pointIndex + 1, vScrollBar5.Value + 2600);
                chart1.Series["Sensor 9"].Points.AddXY(pointIndex + 1, (vScrollBar5.Value + 1100));
                chart1.Series["Sensor 10"].Points.AddXY(pointIndex + 1, (vScrollBar5.Value - 7300));
     
               
               
                ++pointIndex;
            }

            // Adjust Y & X axis scale
            chart1.ResetAutoValues();

            // Keep a constant number of points by removing them from the left
            while (chart1.Series["Sensor 1"].Points.Count > numberOfPointsInChart)
            {
                // Remove data points on the left side
                while (chart1.Series["Sensor 1"].Points.Count > numberOfPointsAfterRemoval)
                {
                    chart1.Series["Sensor 2"].Points.RemoveAt(0);
                    chart1.Series["Sensor 1"].Points.RemoveAt(0);
                    chart1.Series["Sensor 3"].Points.RemoveAt(0);

                    chart1.Series["Sensor 4"].Points.RemoveAt(0);
                    chart1.Series["Sensor 5"].Points.RemoveAt(0);
                    chart1.Series["Sensor 6"].Points.RemoveAt(0);
                   
                    chart1.Series["Sensor 7"].Points.RemoveAt(0);
                    chart1.Series["Sensor 8"].Points.RemoveAt(0);
                    chart1.Series["Sensor 9"].Points.RemoveAt(0);

                    chart1.Series["Sensor 10"].Points.RemoveAt(0);
                 
                }

                // Adjust X axis scale

               
               
                chart1.ChartAreas["Default"].AxisX.Minimum = pointIndex - numberOfPointsAfterRemoval;
                chart1.ChartAreas["Default"].AxisX.Maximum = chart1.ChartAreas["Default"].AxisX.Minimum + numberOfPointsInChart;
            }

            // Invalidate chart
            chart1.Invalidate();

           

        }

OJO:    Las variables  int numberOfPointsInChart y int numberOfPointsAfterRemoval = 150 son las mas importantes, indican el tamaño y el tiempo de la grafica. Juega con ellas y veras cual valor te gusta mas!

En este caso, para demonstracion, la fuente de datos es una VScrollBar. Las lineas quedarán com el valor que la  VScrollBar tiene en
su propriedad "Value".

(http://img46.imageshack.us/img46/9141/vscroll.png)
 
Pero los datos pueden venir de donde quieras, por ejemplo, de variables que almazenas los valores recebidor serialmente atraves del PIC!

Y es eso! Creo que ya puedes empezar algo, jejejeje

A respecto del XBEE Pro, tu crees que merece la pena para mi, mismo siendo 5 veces mas cara que el Laipac? (al menos por aqui! jejeje) Son tantas las ventajas?

Ya lo pensaré! Por lo que leí en las características si que son mejores, y ademas se quedan mas chulas en la placa, jejejejeje Pero todavia no se si en mi
caso, la relacion "precio X ventajas al Laipac" será buena!

Lo de las memorias SPI todavia ni idea, voy a leer algo!

Gracias!
Título: Re: Telemetria - Aeromodelo
Publicado por: ASTROCAR en 09 de Diciembre de 2009, 13:08:19
cada dia se aprende mas y mas y que bueno eso de usar c# para presentas graficos no tenia conocimiendo de eso y explisito tus comentarios.

Saludos y estoy siempre pendiente del hilo.

Saludos y estamos en contacto.
Atten.
Alexander Santana.
Barcelona-Venezuela.
Título: Re: Telemetria - Aeromodelo
Publicado por: jhozate en 09 de Diciembre de 2009, 14:36:58
 :) este Drod parece un mago del C#..a mi se me ha hecho un lio empezar ...adelante con el post..por lo q se ve los modulos xbee son muy buenos..entonces me parece a mi q es una buena inversion...ademas con ellos se pude hacer una red, no se si con los laipac igual pero de seguro le puedes sacar mas jugo a los xbeee.
animo con el proyecto :-/
Título: Re: Telemetria - Aeromodelo
Publicado por: fabianjsm en 09 de Julio de 2010, 23:51:55
Muy buen proyecto, te felicito por todo lo que has logrado! Lo detuviste por algun tiempo?  :(
Título: Re: Telemetria - Aeromodelo
Publicado por: wrl401 en 25 de Enero de 2012, 15:21:23
genial te luciste Drod,  yo pense que en C# esa clases d proyectos era complicado pero tu la haces ver facil, felicidades drod
Título: Re: Telemetria - Aeromodelo
Publicado por: Nocturno en 25 de Enero de 2012, 17:07:43
Me había perdido tu mensaje Drod. Magníficamente explicado. Gracias