TODOPIC

Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: splasma2 en 11 de Noviembre de 2009, 11:20:22

Título: PICHELI : Logger para helicopteros R/C
Publicado por: splasma2 en 11 de Noviembre de 2009, 11:20:22

Bueno, aquí os dejo un avance de mi nuevo proyecto: PICHELI.

Desde hace unos meses me he aficionado al aeromodelismo de R/C y más concretamente a los helicopteros R/C.
Me considero todavía un novato, pero mi otra afición, la electronica, me ha llevado a diseñar un dispositivo o logger,
que puede ser acoplado a un heli R/C. Existen muchos en el mercado que son usados por los pilotos avanzados para analizar ,
después del vuelo ,el comportamiento del heli.

Para desarrollar PICHELI me he basado en estos, básicamente mi logger es una versión reducida que registra
las RPMs de las palas pricipales, el voltaje de la bateria y una entrada PPM (Pulse Position Modulation) cualquiera.

Además de esto, he añadido 2 salidas para controlar sendos LEDs que pueden servir de luces de posición en el heli.

Todo esto lo gestiona un PIC18F2553, los datos se registran en una EEPROM externa 24LC256, que luego pueden ser leidos via USB por una
aplicación Windows.

Y este era otro de los retos del proyecto, usar el USB como enlace con el PC; se usa con 2 objetivos:

- Gestionar la comunicación con la aplicación del logger
- Grabar la aplicación usando un bootloader.

Para hacer esto, he usado el kit de desarrollo USB de Microchip, que incluye un bootloader via USB. La funciones de transferencia
USB del logger también usan las funciones de este kit.

El programa Windows de lectura y presentación de los datos del logger está hecho con las librerias Qt y el entorno de desarrollo
de libre distribucción ( Qt Creator).

Como ya os he comentado , se registran 3 parámetros:

- Tensión de la bateria, se usa el conversor AD del canal0 del PIC.
- PPM, mediante una entrada digital que lee el periodo ON/OFF de la señan PPM.
- RPMs, las revoluciones son leidas por un sensor hall, que se excita por 2 pequeños imanes, que se colocan en la corona del eje
  de las palas principales. la salida de este sensor se conecta a la entrada INT2 del PIC.

Actualmente , tengo bastante avanzado la aplicación Windows y la aplicación logger del PIC, la placa también está diseñada con Eagle
y fabricada ( en casa) , ahora estoy en la fase de montaje y verificación de los componentes y terminando el SW del PC y del PIC.

En breve os pondré alguna fotos y más cosillas.

Se aceptan todo tipo de comentarios y sugerencias.

Saludos a todos.
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: Nocturno en 11 de Noviembre de 2009, 12:25:53
Deseando de verlo estoy. ¡Me encanta el nombre  :D!
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: NANO1985 en 11 de Noviembre de 2009, 13:01:01
me sumo a la lista.... mmmjejejemmmmjejej..... esperamos avances....
saludos y mis felicitaciones  8)
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: QIQE en 11 de Noviembre de 2009, 15:57:04
podias añadirle un GPS y asi ver el recorrido que ha hecho tu helicoptero, aun debes de tener el puerto serie libre para conectarlo ;)
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: ALE1973 en 11 de Noviembre de 2009, 16:29:53
Muy buena idea, interesante..., me anoto como tester....


Saludo.
Alejandro.
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: NANO1985 en 11 de Noviembre de 2009, 16:33:46
Muy buena idea, interesante..., me anoto como tester....


Saludo.
Alejandro.

uau... ese es tuyo ale1973?...
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: ALE1973 en 11 de Noviembre de 2009, 16:42:25
Si Nano, es mio, hace un año empece con estos juguetitos... jejeje.

splasma2:

Seria interesante loguear la temperatura del motor, y dar alarma por alta temperatura.

Saludos.
Alejandro.
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: Veguepic en 11 de Noviembre de 2009, 18:09:23
Si gustas tambien me anoto como tester, pues ultimamente estoy retomando la aficion aunque tambien soy un novato, ya le he destrozado las palas al que tengo, felizmente compre repuestos.  :D :D

Ale, el tuyo creo es a combustion, me parece que es un T-rex o equivalente??

Lo del sensor de temperatura me parece buena idea aunque principalmente util para los modelos a combustion, pero haria al logger util para ambos casos.

Nos cuentas.
Hugo
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: ALE1973 en 11 de Noviembre de 2009, 18:33:03
hola Veguepic, es un Raptor 50 de thunder tiger, y si es a combustion, por eso lo de la temperatura, aparte hemos tenido casos en la agrupacion de motores que se tomaron o recalentaron por mala carburacion.

Perdon por salir del tema.

Saludos.
Alejandro.

PD: tambien soy bastante novato...
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: splasma2 en 11 de Noviembre de 2009, 19:21:16
Hola de nuevo, os voy a poner unas fotos de la placa tal y como está ahora y el esquema de Eagle.

Respecto a la posibilidad de incluir un GPS o un sensor de temperatura, todo se puede hacer, pero yo decidi registrar solo RPM y la bateria porque por ahora y como primera utilidad del logger, creo que es suficiente. Además queria que la placa no fuese demasiado grande para ponerla en el heli ( es un mini-titan).

Incluir un sensor de temperatura puede ser más facil, lo más rápido sería usar la entrada AD de la tension de la bateria para leer un sensor analogico de temperatura... en fin es una idea. Por ahora os presento lo que tengo y luego , con vuestra ayuda, podemos diseñar una version 2,3...


La placa; como veis no soy un gran experto en esta tarea, se notan algunos fallos...

(http://img687.imageshack.us/img687/5579/placa2b.jpg)

Con más componentes ( PIC + EEPROM)...

(http://img689.imageshack.us/img689/7972/placa3b.jpg)

Y ahora los esquemas hechos Eagle, el PIC que uso es un 2553 y la EEPROM una 24C64:

(http://img91.imageshack.us/img91/4061/pichelisch.png)

(http://img14.imageshack.us/img14/2717/pichelibrd.png)

Saludos.



Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: splasma2 en 11 de Noviembre de 2009, 19:27:18
Se me olvidaron los ficheros del Eagle... :oops: :oops:

Placa (http://rapidshare.com/files/305690616/HeliPic.brd)

Esquema (http://rapidshare.com/files/305690711/HeliPic.sch)
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: splasma2 en 11 de Noviembre de 2009, 19:56:09
Y para acabar una imagen de la aplicacion windows...

(http://img194.imageshack.us/img194/9974/qpicheli.png)
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: Suky en 11 de Noviembre de 2009, 21:04:33
Guauuuu!!! Excelente proyecto! Y la placa se ve muy bien, felicidades. Seguiré los avances  ;-)


Saludos!
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: ALE1973 en 12 de Noviembre de 2009, 09:42:48
sPlasma2, exelente!!!!!! muy linda la placa y el programa, se ve tentadora de probar...

Para practicar utilizas algun simulador?, yo uso el aerofly y una interface usb-ppm para la radio (JR7202), si a alguien le interesa paso las placas y el codigo para hacer una.

Saludos.
Alejandro.
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: NANO1985 en 12 de Noviembre de 2009, 09:45:43
que bune proyecto hermano!.... lastima que no tenga un heli para probar jejejeje
saludos
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: MLO__ en 12 de Noviembre de 2009, 11:16:42
 :shock:

Esta muy bueno el proyecto ....

ALE: Que envidia de aparato ... muy chulo el helicóptero, a mi me gustan mucho esos bichos, pero no he podido hacerme a uno. 
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: droky en 12 de Noviembre de 2009, 12:47:47
Halaaaa!, me suscribo al hilo y me uno al grupo  :mrgreen:

Iniciándome con HK450 mejorado + WFly08

(http://www.radikaldesig.com/imgs/foros/heli.jpg)

Subforo RC!!!  :mrgreen: :mrgreen: :mrgreen:

Por cierto, los imanes no te provocan vibraciones en la corona principal?
Yo había pensado usar un P5587 o IS471F para medir por reflexión para evitar posibles vibraciones por decompensación de la corona o que salga un imán disparado y mande el heli a un aporrizaje de emergencia  :?

Salu2
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: Nocturno en 12 de Noviembre de 2009, 12:53:44
Anda, veo que ya lo tienes otra vez entero  :D, a ver cuándo vemos un vídeo del bicho volando
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: splasma2 en 12 de Noviembre de 2009, 13:34:48

Por cierto, los imanes no te provocan vibraciones en la corona principal?
Yo había pensado usar un P5587 o IS471F para medir por reflexión para evitar posibles vibraciones por decompensación de la corona o que salga un imán disparado y mande el heli a un aporrizaje de emergencia  :?

Salu2

Pues , sinceramente no lo sé porque todavía no los he montado, pensaba poner 2 imanes pequeños, para intentar evitar las vibraciones que comentas, veremos como sale...

Hasta ahora las pruebas las habia hecho con un generador de pulsos avanzado , vamos con un 555  :) :) :)
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: ALE1973 en 12 de Noviembre de 2009, 15:02:02
:shock:

Esta muy bueno el proyecto ....

ALE: Que envidia de aparato ... muy chulo el helicóptero, a mi me gustan mucho esos bichos, pero no he podido hacerme a uno. 

Gracias, la verdad que son lindos, y adictivos.. jeje


splasma2

En lugar de probar con imanes, que podria desbalancear como dice droky, podrias pegar sobre la corona un autoadesivo o 2 de esos refractantes y captar con un fototransistor la señal, total si estas con palas de madera la velocidad del rotor es inferior a 2000 rpm en el mini... (nunca las medi, el manual sugiere no superarlas).


Saludos.
Alejandro
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: Veguepic en 12 de Noviembre de 2009, 15:49:46
Que lindo, ejm, ejm,  el Helicoptero!! :D :D

El mio es bastante mas simplon, no me queda mas que aceptarlo como es.   :P :P

Droky, veo que lo compraste con el kit de aprendizaje, yo no sabia de el por lo que destroze las helices. Deberia venir de serie.

Tal vez en vez de los autoadhesivos se podria usar directamente los nervios de la corona, todos los helicopteros los tienen por cuestiones de aligerar peso, asi de frente van al phototransistor. Ahi si que el numero de nervios tendria que ser configurable pues varia entre las distintas marcas.

Saludos.
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: splasma2 en 17 de Noviembre de 2009, 07:45:54
Como siguiente avance, os paso más detalles del firmware de la placa  PICHELI, cuando tenga una versión "aceptable" la pondre en el hilo.

El programa se ha hecho siguiendo el esquema que Microchip define es su kit USB, tiene algunas peculiaridades, ya que no usa interrupciones
para manejar el USB, por lo que a la hora de usar las librerias de envio y recepción de datos, hay que tener en cuenta cederle el control
al bucle principal USB.

Por ejemplo para enviar todos los datos del log al PC, via el driver CDC USB, hay que hacerlo con un buffer intermedio que se vaciando en
cada pasada del bucle USB.

La lectura de los sensores se hace en la rutina de interrupción (main_picheli.c), por lo que tampoco puedo quedarme ahí mucho tiempo,
aunque como el PIC va a 48Mhz ( 12 MIPS), creo que no tendré problemas.

- El sensor RPM esta conectado a la INT2, por lo tanto para obtener RPMs , solo tengo que contar las INTs que se producen en un periodo de
  tiempo fijo y luego grabar a EEPROM.
- El sensor de tension de bateria está conectado al canal 0 del ADC, aqui es fácil también, leer el ADC y grabar en EEPROM.
- El sensor de PPM, tiene que obtener la longitud del pulso PPM. como no me quedan INTs para hacer esto, lo tengo que hacer de manera
  más rudimentaria, luego os cuento ( al final).


Como veis, el esquema general de lectura y registro de sensores es sencillo.

Más adelante, podemos pensar en otro esquema más flexible, que permita definir distintas entradas y tipos de sensores.... y activarlos o no
segun convenga, el objetivo final es registrar los valores de esos sensores...


La gestión de comunicación con el PC se encarga de atender los comandos que llegan via USB ( driver CDC), los comandos se decodifican y ejecutan
en commands.c. Hay comandos de varios tipos:

- Información : Version del firwmware, longitud del registro LOG, valores de los parametros configurables.
- Configuración : Cambio de parametros configurables, borrado del LOG, sincronización del LOG, control LEDs.
- Dump : Descarga de los datos del LOG.

Todos ellos se pueden ejecutar desde un Hyperterminal ( o similar) conectando con el COM virtual que cree Windows.

Por último solo queda la parte que controla los LEDs, el modo es configurable para los 2 LEDS:

- Fijo o Parpadeo
- Frecuencia de parpadeo.
- Activación de aviso de bateria baja, también es configurable este limite.

COMANDOS:

VER      :  Devuelve Version del firwmare
GETR     :  Devuelde el perdiodo de grabación del LOG
SETR     :  Pone el periodo de grabación del LOG.
DUMP n   :  Descarga de LOG n ( R, V o P)
LEN  n   :  Devuelve numero de registros de LOG n ( R, V o P)
OPEN     :  Carga indices de las tablas del LOG.
CLEAR    :  Borra LOG.

LEDMD m f:  Activa modo fijo o parapeadnte para led m (f = F/P).
LEDWN m f:  Activa/desactiva  modo aviso bateria para led m (f = 0/1).
LEDR  m p:  Pone periodo de parpadeo p para led m.
SETWV v  :  Pone limite tension (v) para aviso de bateria baja.
GETWV    :  Devuelve limite tension de aviso de bateria baja.
GETLED m :  Devuelve modo (P o F) y aviso activo (0 o 1) para LED m.

SYNC     :  Guarda indices (usado para pruebas).
STOP     :  Para el proceso de LOG (usado para pruebas).
START    :  Arranca el proceso de LOG (usado para pruebas).



Sobre la lectura del pulso PPM que van a los servos.

Como sabeis esta codificación usa pulsos de longitud variable entre 1000 us y 2000 us cada 20ms ( aunque esto rangos pueden variar entre fabricantes),
para medirlo y obtener valores entre 0 y 100 necesito tener una resolución de 10 us. Habia pensado en usar la interrupcion del timer TMR1 ( cada 10us) y contar cuando el la entrada PPM este a nivel alto, lo que no me gusta es que la interrupción se produce cada 10us y no sé si voy a afectar al proceso de comunciación USB o a las grabciones en EEPROM, se os ocurre algún otro metodo SW menos "molesto"????

Podría utilizar el "INT on change" de los port RB4-RB7, pero tendria que cambiar la placa ... :( :(

Saludos.

Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: ALE1973 en 17 de Noviembre de 2009, 10:21:56
splasma2, ahora estoy en la oficina, en cuanto llegue a casa te paso una rutina para determinar el valor del ppm, solo que yo no lo tengo echo de 0 a 100, pero es facil de cambiar, yo utilizo una interrupcion externa, y en ese momento arranco un timer, al cambiar nuevamente, tomo la lectura del timer, y ahi tengo el valor, seria cuestion de mejorarla un poco para que tengas valores de 0 a 100, que seria hacer una simple cuenta.

Saludos
Alejandro.

Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: NANO1985 en 17 de Noviembre de 2009, 10:39:13
vaya! que buenos avances!... impecable.... mis felicitaciones,...
german  8)
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: Veguepic en 17 de Noviembre de 2009, 16:24:37
Y no se puede desactivar la interrupcion cuando se va a hacer la transferencia de datos via USB, pues segun entendi los datos que guarda son durante el vuelo.
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: splasma2 en 17 de Noviembre de 2009, 18:26:10
Tienes razón Veguepic, los datos solo se grabarán durante el vuelo, pero ahora como estoy en fase de pruebas puedo leer los datos registrados también "en tierra".

Seguiré con la idea de usar la interrupción cada 10us para obtener el valor PPM, si tuviera problemas intentaré otro metodo que use la interrupcion que el PIC genera cuando cambia el estado de los ports RB4-RB7.

Sobre los imanes en la corona, ya están puestos, son muy pequeños por lo que no creo que provoque vibraciones... ya veremos

Por cierto, me uno a la propuesta de droky: Subforo RC   :-/ :-/ :-/ :-/  creo que daría mucho juego....

Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: ALE1973 en 17 de Noviembre de 2009, 23:17:31
Hola, te paso la rutina que uso para capturar lo que envia la radio, lo hago por interrupcion externa.


Código: CSS
  1. #int_ext
  2. void ext_handler(void){
  3.      //output_toggle(Pin_b7);
  4.    
  5.      if (rNroCanal!=0){
  6.         Tx_msg[rNroCanal]=rTiempo;
  7.         rNroCanal++;
  8.         if (rNroCanal > 6){//Cantidad de datos por ppm JR 8, WFLY 6,
  9.             rNroCanal=0;
  10.             fTX=1;
  11.             set_timer0(0);
  12.             //WFLY FT06-C
  13.             /*TxUSB[0] = Tx_msg[1];//ACELERADOR
  14.             TxUSB[1] = Tx_msg[2];//elevador
  15.             TxUSB[2] = Tx_msg[3];//aleron
  16.             TxUSB[3] = Tx_msg[4];//rudder
  17.             TxUSB[4] = Tx_msg[5];//gear
  18.             TxUSB[5] = Tx_msg[6];//aux1
  19.             TxUSB[6] = Tx_msg[7];//aux2
  20.             TxUSB[7] = Tx_msg[8];*/
  21.             //JR 7202 /9303 /8103
  22.             TxUSB[2] = Tx_msg[1];//ACELERADOR
  23.             TxUSB[0] = Tx_msg[2];//elevador
  24.             TxUSB[1] = Tx_msg[3];//aleron
  25.             TxUSB[3] = Tx_msg[4];//rudder
  26.             TxUSB[4] = Tx_msg[5];//gear
  27.             TxUSB[5] = Tx_msg[6];//aux1
  28.             TxUSB[6] = Tx_msg[7];//aux2
  29.             TxUSB[7] = Tx_msg[8];
  30.             output_toggle(Pin_b7);
  31.            
  32.         }
  33.      }
  34.    
  35.      if (fInicio){
  36.          rNroCanal=1,fInicio=0;
  37.          set_timer0(180);
  38.      }
  39.  
  40.      #ASM bcf  0xd,0
  41.           bcf  0xc,2
  42.      #ENDASM  
  43.      rTiempo=0;
  44. }

Espero te sirva...

Olvide la parte del timer0, ahi cuento entre pulso y pulso la cantidad de interrupciones, y con ello obtengo el valor...
Código: CSS
  1. #int_RTCC
  2. void RTCC_isr() {
  3.    rTiempo++;
  4.    if (rTiempo==0)fInicio=1;
  5.    if (rNroCanal!=0)Set_timer0(161);
  6. }
Saludos.
Alejandro.
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: splasma2 en 18 de Noviembre de 2009, 18:59:39
Sigo avanzando, he puesto los imanes en la corona del heli y el sensor Hall A1101.

Parece que funciona, porque leo unos valores bastantes estables, todavia no sé si en vuelo habrá algún problema, los imanes como veis son pequeños.

Os pongo una foto del invento:

(http://img689.imageshack.us/img689/2521/img1413a.jpg)
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: splasma2 en 23 de Noviembre de 2009, 17:43:08


Hola a todos.

Más avances, :P :P ya tengo una versión totalmente funcional, bueno casi, me registra las RPMs del heli y la tensión de la bateria, también controla ya los LEDs.

Los LEDs pueden funcionar de 2 modos : Fijo o Parpadenate, ademas también pueden avisar de bateria baja, parpadeando más deprisa.

Todos estos modos son configurables via USB, os pongo una foto de los parametros que se pueden configurar...

(http://img175.imageshack.us/img175/3361/qpicheli1.png)

Como veis aparte del funcionamiento de los LEDs, se puede configurar el perido de log, la tensión de bateria a la que avisa de bateria baja y se puede activar un modo que he llamado auto-pausa, que consiste en que cuando las RPMs llegan a 0 deja de almacenar datos, (pausa) hasta que vuelvan a subir, puede ser util al parar el heli momentaneamente para no gastar espacio en la EEPROM. Por cierto, la EEPROM que uso es pequeña, 24C64 porque es la que tenía a mano, pero se puede poner una de mayor capacidad, cambiando una constante del firmware...


Otra imagen con la pantalla de presentación de datos, son reales , una pequeña prueba de 40 segundos  :) :)

(http://img525.imageshack.us/img525/91/qpicheli2.png)



Este es el HEX del PIC por si alguien quiere montar la placa, cuando este finalizado pondré los fuentes también:

Hex Picheli (http://rapidshare.com/files/311207059/PICHELI.hex)



Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: tinchosalamero en 24 de Noviembre de 2009, 09:02:33
Que linda que te quedo la interface. podes poner los fuentes??

Gracias y excelente trabajo
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: PISBUS en 24 de Noviembre de 2009, 18:11:08
 :shock: :shock:Espectacular trabajo, gracias por compartir tu trabajo.Estaremos atentos a tus avances.
Una y mil gracias :) :) :) :) :) :)
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: NANO1985 en 24 de Noviembre de 2009, 18:15:53
lindos avances hermano...
saludos
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: droky en 25 de Noviembre de 2009, 04:23:31
Te está quedando genial, compañero.
Muy buen avance.
Salu2
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: xerex en 25 de Noviembre de 2009, 06:29:52
Sigo avanzando, he puesto los imanes en la corona del heli y el sensor Hall A1101.

Parece que funciona, porque leo unos valores bastantes estables, todavia no sé si en vuelo habrá algún problema, los imanes como veis son pequeños.

Os pongo una foto del invento:

(http://img689.imageshack.us/img689/2521/img1413a.jpg)

Hola, buen datalogger, utiliza una de las fases del motor como activador de la señal de interrupcion, con los polos del motor puedes contar las rpm del mismo ;) el poner un iman en la corona puede dañarte los rodamientos, a no ser que pongas 2 imanes a 180º. Ademas, asi eliminas peso que siempre es un incordio jeje.

Saludos.

P.D.: porque en vez de grabar en EEPROM no utilizar un modulo de Radiofrecuencia para enviar los datos al PC en tiempo real a traves del puerto serie? Yo lo tengo diseñado en mi sistema FPV como posible opcion...

Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: splasma2 en 25 de Noviembre de 2009, 07:22:12
[
Hola, buen datalogger, utiliza una de las fases del motor como activador de la señal de interrupcion, con los polos del motor puedes contar las rpm del mismo ;) el poner un iman en la corona puede dañarte los rodamientos, a no ser que pongas 2 imanes a 180º. Ademas, asi eliminas peso que siempre es un incordio jeje.

Saludos.

P.D.: porque en vez de grabar en EEPROM no utilizar un modulo de Radiofrecuencia para enviar los datos al PC en tiempo real a traves del puerto serie? Yo lo tengo diseñado en mi sistema FPV como posible opcion...



Gracias xerex, no habia considerado la idea de poner el sensor hall cerca del motor. En cualquier caso ,  tengo 2 imanes en la corona a 180º ( en la foto no se ve el otro) y no he notado nada raro ( vibraciones ).

Si lo pongo en el motor necesitaré saber el número de polos, también la frecuencia de interrupción será mucho más alta ( menos tiempo para hacer cosas en la rutina de la INT) ... lo estudiaré.
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: splasma2 en 01 de Diciembre de 2009, 19:56:34


Bueno creo que ya tengo una versión del firmware decente :) :).

Hay un pequeño "bug" que hace que cuando la EEPOM se llene y empieza a sobreescribir desde el principio, a veces se desmadran un poco los indices,
pero bueno por ahora lo dejaré así   :oops: :oops:. Como digo esto solo ocurre si se llena la EEPROM.

Por lo demás , parece que todo va bien, se graban las RPMs, la tensión de la bateria y los valores PPM de la entrada de servo. Para ello he utilziado
el siguiente código que se ejecuta cada 50us, pro lo tanto esa es la resolución que obtengo al leer los valores del pulso PPM.

Código: [Seleccionar]
if (PIR1bits.TMR1IF == 1) // Interrupt  each 50 us.
{
// Ya se habia detectado pulso High
if (highPPM1)
{
// Sigue HIGH, count++
if (IN_PPM1 == 1)
{
if (countPPM1 > PPM1_MAX) // Error, pulso demasiado largo
countPPM1 = 255;
else
countPPM1 += 5; // Sube 50 us

}
// paso a LOW
else
{
if ((countPPM1 >= PPM1_MIN) && (countPPM1 <= PPM1_MAX))
valuePPM1 = countPPM1 - PPM1_MIN;
else
// valuePPM1 = 0;
highPPM1  = 0;
countPPM1 = 0;
}
}
else
{
// Se detecta pulso HIGH
if (IN_PPM1 == 1)
{
countPPM1 = 0;
highPPM1  = 1;
}
}
TMR1H = TIMER1_PRELOAD / 256;
TMR1L = TIMER1_PRELOAD % 256;
PIR1bits.TMR1IF = 0;

}



La comunicación via USB con el PC parece que también va bien.

PICHELI puede funcionar de 2 modos:

- Conectado al puerto USB, en este modo se pueden ejecutar los comandos usando el puerto serie virtual (CDC) , incluido un comando START, que
  permite ver los valores de la medida instantaneos ( modo traza), pero en este caso no se graban en EEPROM. En este modo la placa se alimenta del puerto
  USB si no está conetada a la bateria.

- En modo autónomo, "on board", se alimenta de la bateria y los datos leidos ( RPMs, bateria y PPM) se registran en EEPROM.


La lista de comandos soportados se muestran con el comando HELP.

VER  : Muestra la veriosn del firmware
OPEN : Abre el LOG leyendo los indices de la EEPROm del PIC.
SYNC : Sincroniza el LOG , salvando los indices a la EEPROM interna del PIC.
CLEAR : Borra los indices del LOG, los datos de la EEPROM externa no se borran fisicamente.
SETR n   : Pone el intervalo (n) de grabación del LOG.
GETR     : Obtiene el intervalo de LOG.
SETC n   : Pone el factor de corona ( n. de imanes en corona).
GETC     : Obtiene el factor de corona.
LEDM n m : Pone el mode m del LED n ( 1 o 2).
GLED n   : Obtiene modo LED n
LEDV n f : Activa o desactaiva (f) el modo aviso de bateria baja en LEDN n
GLEV n   : Obtiene modo aviso de LED n
SETV     : Pone el valor limite de bateria baja.
GETV     : Obtiene el valor limite de bateria baja.
SETP f   : Activa o desactaiva (f) el modo auto-pausa.
GETP     : Obtiene modo auto-pausa.
TIME     : Obtiene fecha ultimo log grabado en EEPROM.
DUMP     : Descarga del LOG de formato : "tiempo,RPM,VBAT,RPM"
LEN      : Obtiene tamaño actual del LOG
START    : Activa modo traza.
STOP     : Desactiva modo traza.


Os pongo los fuentes (para MCC18) , el hex de PICHELI y el bootloader USB de Microchip modificado para 8Mhz

Fuentes V1.1 (http://rapidshare.com/files/314954875/CDC-PICHELI_V1.1.rar)

Hex V1.1 (http://rapidshare.com/files/314953455/PICHELI_V1.1.hex)


Ya sabeis, si quereis programar el PIC con este HEX, primero hay que grabar "a mano" el bootloader USB de Microchip , una vez hecho
esto ya solo hay que usar la aplicacion PICDEM USB Demo Tool cada vez que se quiera grabar el HEX en el PIC via USB. Cuidado con los fuses
hay que dejar la configuracion actual de la placa (8 Mhz ).

S2 a tod@s
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: Drod en 03 de Diciembre de 2009, 12:15:48
Hola Splasma!

Estou siguiendo el tema, pues estoy haciendo un sistema semejante para un aeromodelo!

Felicitaciones!
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: splasma2 en 07 de Diciembre de 2009, 12:22:14
Gracias drod,

No te importará que te copie  la interface que estás haciendo, me ha dado un poco de envidia  :oops: :oops: y he incluido esos relojes tan chulos a mi programilla,
buscando, he encontrado unos hechos para las librerias Qt (C++).

Así ha quedado por ahora...

(http://img215.imageshack.us/img215/1744/qpicheli3.png)

Saludos
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: Drod en 07 de Diciembre de 2009, 13:33:52
Hombre que vá!  ;-)

Aqui nada se copia, todo se comparte!!! :-/

Y creo que en determinado punto yo tambien cojere algo de tu proyecto!

Muy bueno los relojes!

Estare pendiente de tus avances!

Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: splasma2 en 12 de Mayo de 2010, 17:35:14
Hola de nuevo-

Despues de una temoporada practicando con el heli y modificando pichelim os presento la version V2.

La gran diferencia es que ahora registro también los amperios consumidos, lo cual es útil para ver como se comprta el consumo del bicho.
Esta es la foto del sensor:

(http://img37.imageshack.us/img37/9677/sensoramp.jpg)

Y la nueva ventana de presentación de datos, donde se ven los Amp ( en rojo) y la carga consumida en mAh ( marrón) , son 2 sesiones seguidas grabadas con mi mini-titan:

(http://img341.imageshack.us/img341/3991/qpicheliv20.jpg)

En breve , pondré código y diseño de la nueva placa.

Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: Veguepic en 31 de Mayo de 2010, 21:27:44
Hola Splasma, sigo pendiente de tus avances.

Me podrias decir cual es el sensor de corriente de la foto?
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: splasma2 en 01 de Junio de 2010, 19:22:46

Es este

Polulu ACS715 Current Sensor (http://www.pololu.com/catalog/product/1186)

10 euretes , seguro que hay algo mejor pero por ahora vale, hasta 30A

Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: Veguepic en 03 de Junio de 2010, 07:59:36
Gracias por el dato Splasma, creo que me animo por uno de esos que se ve muy interesante.
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: cocode en 14 de Febrero de 2012, 10:11:30
Splasma,

Los arquivos fuente e hex no se encuentram mas em rapidshare, podria fornecer-los,

Gracias
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: RaDoN en 14 de Febrero de 2012, 13:53:42
Buenas,

yo también voy a seguir este hilo con mucho interés. Compartimos ambas aficiones. He tenido helis, como un T-Rex600, pero me gustan mucho más los aviones. Tengo algún vídeo con un Extra 300S de 2,6m de envergadura. Lleva un motor MVVS de 116 ccm:


¿No te has planteado la posibilidad de conectar el "picheli" a una especie de consola con un LCD o así para leer los valores de forma cómoda en el campo de vuelo? (ya hay que llevar miles de cacharros, como el cargador, las baterias, la emisora, herramientas, etc...), a esto súmale el portatil.

Creo que lo mas interesante sería saber los valores máximos y mínimos de rpm que son criticos en figuras extremas, el consumo máximo que ha tenido y cosas así sin necesidad de un portátil.
Título: Re: PICHELI : Logger para helicopteros R/C
Publicado por: splasma2 en 15 de Febrero de 2012, 08:07:40
Buenas,

¿No te has planteado la posibilidad de conectar el "picheli" a una especie de consola con un LCD o así para leer los valores de forma cómoda en el campo de vuelo? (ya hay que llevar miles de cacharros, como el cargador, las baterias, la emisora, herramientas, etc...), a esto súmale el portatil.

Creo que lo mas interesante sería saber los valores máximos y mínimos de rpm que son criticos en figuras extremas, el consumo máximo que ha tenido y cosas así sin necesidad de un portátil.

Este proyecto lo tengo parado desde hace tiempo, volveré a poner los fuentes en cuanto saque un rato .

Sobre lo que propones, es una buena idea y además va en la linea de lo que suelo hacer ahora, poner una interface amigable facil de usar, pero yo voy por otro camino, en vez de incluir LCDs porque no usar algo que todos ( o casi todos) llevamos en el bolsillo, un smartphone con Andorid ( of course...). Ya he hecho varias cosas: un control via buetooth de un robot, empece un control de CNC también via BT... y no es muy complicado, pero necesitaría poner una tarjeta BT (baratas las encuentras en eBay)  en Picheli para  conectarse con Android, creo que eso sería lo más rápido y sencillo ya que al final lo que tenemos es una conexión serie normal.

Otra opción más compleja es que Androdi soportará el modo hosts del estandar USB ( creo que ya  lo hace en alguna versión), de esta manera podriamos conectar directamente por el puerto USB Picheli y Android. Esto como digo es más dificil pero lo estoy mirando. Precisamente este mes ha salido en la revista Elektor un montaje que soluciona este tipo de conexión con Android's actuales.

Como diría un famoso pensador : "Estamos trabajando en elllo ..." :D