TODOPIC

Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: J1M en 28 de Diciembre de 2010, 14:26:18

Título: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: J1M en 28 de Diciembre de 2010, 14:26:18
Bueno, con eso de que las vacaciones son ese periodo en el cual, en vez de descansar, hacemos más que cuando estamos sumidos en la rutina... me he dedicido a sacar de la pila de cosas que tenía ganas de probar, una sencilla aplicación que relaciona nuestros queridos PICs, la aclamada conexión Bluetooth y el sistema operativo para móviles de moda, Android. Para el desarrollo en esta plataforma (Android), podemos optar por dos caminos, hacer uso de las SDK ó usar una Aplicación Web de los GoogleLabs llamada App Inventor. Programación visual, por bloques, muy sencillito y con el objetivo de hacer aplicaciones de una forma rápida! Recientemente ha dejado de ser una Beta privada por lo que cualquiera de nosotros puede usarla. Como ya os imaginaréis me he decidio por el App Inventor, con el objetivo, como siempre, de hacer algo sencillo y que seais vosotros quienes lo compliquéis para hacer una aplicación con una utilidad real!! :)

- Dispositivos utilizados:
* PIC18F4553Trainer: http://www.microingenia.com/electronics/product.php?id_product=31
* ModBluetooth: http://www.microingenia.com/electronics/product.php?id_product=4
* Samsung Galaxy S: http://www.samsungmobile.es/moviles/samsung-galaxy-s

- Software utilizado:
* CCS: http://www.ccsinfo.com
* App Inventor: http://appinventor.googlelabs.com

El Objetivo de esta sencilla aplicación es hacer un toggle del led bicolor de la entrendora, verde -> rojo -> ambar -> off...

La aplicación en concreto consta de dos partes, por un lado, la aplicación para el PIC y por el otro la aplicación que cargaremos en el terminal Android.

Código fuente para el PIC (está mas menos explicado, si tenéis dudas preguntadlas en el hilo!)
Código: [Seleccionar]
////////////////////////////////////////////////////////////////////////
//ModBluetooth V1.0 Test Code - www.microingenia.com        12/02/2010//
//                                                                    //
//Simple code to show how to use a communication over bluetooth.      //
//You must link your Bluetooth dongle with ModBluetooth first.        //
//Pswd: 0000, this catch an ascii to turn on/off led                  //
//                                                                    //
//Released under the cc by-nc-sa 3.0 License.                         //
//http://creativecommons.org/licenses/by-nc-sa/3.0/                   //
////////////////////////////////////////////////////////////////////////
#include <18F4553.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,NOBROWNOUT,USBDIV,PLL2,CPUDIV1,VREGEN,PUT,MCLR
#use delay(clock=48000000)

// MiE USB HID Bootloader
#define CODE_START   0x1000
#build(reset=CODE_START, interrupt=CODE_START+0x08)
#org 0, CODE_START-1 {}

// Definitions for LEDs on Board
#define  ON    output_high
#define  OFF   output_low

// Connections in 18F4553Trainer
#define  LedV   PIN_B0
#define  LedR   PIN_B1

// Connections between ModBluetooth and 18F4553Trainer
#define  Rx     PIN_C6
#define  Tx     PIN_C7

#use rs232(UART1, baud=115200, xmit=Rx, rcv=Tx, STREAM=BLUE)
#include "string.h"

int8 CR = 0x0d; // Carriage Return

void main()
{  
   ON(LedR);      // Red: No connection
   OFF(LedV);
  
   enable_interrupts(INT_RDA);
   enable_interrupts(GLOBAL);
      
   delay_ms(3000);
   fprintf(BLUE,"$$$");                // Get into command mode
      
   delay_ms(250);
   fprintf(BLUE,"SA,1");               // Enable authentication
   fputc(CR,BLUE);

   delay_ms(250);
   fprintf(BLUE,"SP,0000");            // Set Password
   fputc(CR,BLUE);
  
   delay_ms(250);
   fprintf(BLUE,"SN,ModBluetooth");    // Device name
   fputc(CR,BLUE);
  
   delay_ms(250);
   fprintf(BLUE,"SS,ModBluePort");     // Service name
   fputc(CR,BLUE);

   delay_ms(250);
   fprintf(BLUE,"ST,0");               // Enable vinculation
   fputc(CR,BLUE);                

   delay_ms(250);
   fprintf(BLUE,"---");                // Get out command mode
   fputc(CR,BLUE);
  
   ON(LedV);      // Green: Bluetooth ready! Link it now.
   OFF(LedR);
      
   while(true);
}

#INT_RDA
void rda_isr(void)
{  
   char c;
   c = fgetc(blue);
  
   if(c == '@')
   {    
      ON(ledR);
      OFF(ledV);
   }  
   else if(c == '#')
   {    
      ON(ledV);
      OFF(ledR);
   }  
   else if(c == '$')
   {    
      ON(ledR);
      ON(ledV);
   }  
   else if(c == '%')
   {    
      OFF(ledR);
      OFF(ledV);
   }
}

Código para Android, como ya os he comentado, es visual y por bloques... aquí la imagen!

(http://www.microingenia.com/temp/MiEPICBT/MiEPICBT_C.png)

Y aquí una captura de pantalla del móvil corriendo la aplicación:

(http://www.microingenia.com/temp/MiEPICBT/MiEPICBT_S.png)

Ya que el App Inventor da la posibilidad de importar/exportar el código fuente de la aplicación os lo dejo acontinuación, así os ahorrais tener que construir el puzzle...!
http://www.microingenia.com/temp/MiEPICBT/MiEPICBT.zip

Os subo también el APK (instalador de Android) listo para ejecutar en vuestros móviles:
http://www.microingenia.com/temp/MiEPICBT/MiEPICBT.apk

Bueno ahora os toca a vosotros empezar a cacharrear! Me imagino que os surgirán dudas, así que id poniendolas por aquí abajo.

Un saludo a todos y feliz 2011 !! :mrgreen:
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: Nocturno en 28 de Diciembre de 2010, 16:41:50
Siempre innovando, Jaime  :shock:

Me suscribo al hilo porque me interesa mucho. Gracias por la info
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: jeremylf en 28 de Diciembre de 2010, 16:51:34
Interesantisimo! Gracias J1M!
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: MLO__ en 11 de Enero de 2011, 11:57:00
Hola.

Disculpa la pregunta ... como ejecuto el .apk? lo copie a mi móvil y no reconoce el archivo. Necesito algo más?

Saludos
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: migsantiago en 11 de Enero de 2011, 12:03:04
Hola.

Disculpa la pregunta ... como ejecuto el .apk? lo copie a mi móvil y no reconoce el archivo. Necesito algo más?

Saludos

Hola MLO. Yo sólo he instalado APKs en el emulador Android. Talvez esta guía (http://electrolinks.blogspot.com/2009/03/instalar-aplicaciones-apk-en-emulador.html) te pueda dar alguna pista.
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: MLO__ en 11 de Enero de 2011, 12:13:03
Gracias mig. Lo leo con mucha antención  ;-)

Entonces, para que la aplicación corra en el celular .... que se debe hacer? toca usar otro soft? he visto que los juegos son .jar, es decir en JAVA cierto?

Saludos
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: migsantiago en 11 de Enero de 2011, 12:32:44
Gracias mig. Lo leo con mucha antención  ;-)

Entonces, para que la aplicación corra en el celular .... que se debe hacer? toca usar otro soft? he visto que los juegos son .jar, es decir en JAVA cierto?

Saludos

No sé si te vaya a servir ya que el link es para una SD card y no conozco bien los Android, pero me avisas si hay suerte.

JAR corre en la máquina virtual de Java y es independiente del móvil que uses.

Los APK sólo corren dentro del OS Android. Es como los EXE de Microsoft.
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: MLO__ en 11 de Enero de 2011, 13:09:15
Hola mig.

Esos comandos (mksdcard) en donde los escribo?  :oops:

Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: J1M en 11 de Enero de 2011, 13:09:44
Para instalarlo puedes hacerlo de dos formas diferentes:

- Lanzarlo mediante un File Manager, yo uso el AndroZip. Mete el archivo en la memoria SD de tu móvil y desde el AndroZip lo ejecutas.
- Mete el código fuente del App Inventor en el panel de control de aplicaciones (deberás loguearte en Google y darte de alta en el App Inventor... de esta forma podrás crear tus aplicaciones) y la descargas al móvil mediante el código QR que genera. Para ello necesitarás un scanner de códigos QR, por ejemplo el Google Goggles.

Saludos!

PD: Entiendo que tu móvil lleva Android como SO verdad??
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: migsantiago en 12 de Enero de 2011, 12:47:30
MLO, mejor haz lo que el amigo J1M recomienda.  ;-)
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: MLO__ en 12 de Enero de 2011, 16:36:27
Gracias J1M.

Pues no se que SO tendrá, no soy ni medio en celulares  :D es un Nokia 5310 ... creo que es Symbian S40 (http://www.tuexperto.com/2007/12/18/nokia-5310-xpress-music-a-fondo/) si sirve mi carcacha???

Voy a intentar hacerlo a ver como me va ... cualquier cosa silbo  :oops:

Saludos
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: J1M en 12 de Enero de 2011, 18:02:50
Nop MLO_ por eso te lo decía, esto es solo para los móviles con sistema Android.

Saludos!
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: MLO__ en 12 de Enero de 2011, 20:03:42
 :(

No hay forma entonces ...

Gracias
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: sergioaiki07 en 11 de Agosto de 2011, 18:32:33
hola tengo una consulta con el envió de datos, solo envía por carácter ya que para mensajes largos es un poco engorroso y lo otro la recepción de datos tendrás algún ejemplo por ahí

gracias
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: sergioaiki07 en 12 de Agosto de 2011, 03:42:17
perdón por el up y me colgare de este tema alguien que maneje android para que me pueda dar una mano revisando mi código

desde ya gracias
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: dcp1985 en 14 de Febrero de 2012, 09:34:51
Hola que tal?

Me preguntaba si me podriais ayudar, ya que estoy haciendo una aplicacion para leer un sensor desde el pic, que lo manda por BT a la app de android.
Si que me funciona pero tengo alguna dudilla sobre el modulo BT.

Como puedo leer 2 variables, es decir, discretizar en la aplicacion del movil cuando recibo los datos por BT, que en una etiqueta ponga el valor de la primera variable, y en otra etiqueta ponga el valor de la otra??
Utilizo un timer, y con la funcion BluetoothClient1.BytesAviableToReceive, leo todos los bytes juntos, los paso mediante printf(), y fuera de la interrupcion del puerto serie del pic.
(Si habeis visto un articulo de NeoTeo donde lee un sensor, es basicamente eso lo que hago, pero no se como leer varios sensores a la vez)
Estoy un poco atascado..., si me pudierais dar alguna sugerencia os lo agracería.
Tambien preguntaros si hay algun tutorial sobre el bloque BT de app inventor?

Muchas gracias, y perdon por las molestias!!
Un saludo, David.
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: irukza en 14 de Febrero de 2012, 13:42:29
Buenisimo!!! :-/
Ya me lo estoy bajando. Yo tambien quiero jugar con esto!
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: MGLSOFT en 09 de Julio de 2012, 16:24:00
Si quiero ejecutarlo en una tablet sin bluetooth, puedo hacerlo por USB ??
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: MGLSOFT en 15 de Septiembre de 2012, 20:41:44
Me contesto solo.
NO se puede...
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: Suky en 15 de Septiembre de 2012, 20:51:07
Me contesto solo.
NO se puede...

Yo no pude ni hacer funcionar el adaptador USB/bluetooth en la tablet  :tongue:
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: MGLSOFT en 16 de Septiembre de 2012, 13:21:10
Huyy, yo estaba por comprar uno para hacer eso mismo... :shock: :shock:
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: Suky en 16 de Septiembre de 2012, 13:26:00
Huyy, yo estaba por comprar uno para hacer eso mismo... :shock: :shock:

Por lo que he leido, me parece que funcionan pero en las versiones actuales de android, en el 2.1 no lo logre  :mrgreen:
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: MGLSOFT en 16 de Septiembre de 2012, 13:30:51
Que tablet tenes y que version tiene ??
Una pregunta que siempre me hice es:
Pueod actualizarle la version a mi tablet??
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: Suky en 16 de Septiembre de 2012, 14:45:33
Que tablet tenes y que version tiene ??
Una pregunta que siempre me hice es:
Pueod actualizarle la version a mi tablet??

La Zenithink creo que era, ya no la tengo, con Android 2.1.

Se puede actualizar, hay que buscar en la pagina del fabricante que generalmente largan actualizaciones compatibles. O sino buscar por la red, pero ya no es seguro  :tongue:
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: kiketron en 16 de Septiembre de 2012, 17:38:10
que tal, espero no interrumpir, por lo que pasa es que quiero hacer algo parecido, pero primero quiero ver si logro hacer funcionar este proyecto  usando un pic18f2550 y tengo un cristal de 20 M y 12 M. la pregunta es... me funcionaria si solo cambio el nombre del pic y en  #use delay(clock=48000000) le pongo 20000000 y los pines de tx y rx que creo que son diferentes ??
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: kiketron en 16 de Septiembre de 2012, 17:43:03
aaa y se me olvidaba, también seria la velocidad a 9600 baudios ya que así esta configurado mi modulo
( por que de hecho ya lo intente y no logro que funcione  :?
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: Suky en 16 de Septiembre de 2012, 18:18:24
que tal, espero no interrumpir, por lo que pasa es que quiero hacer algo parecido, pero primero quiero ver si logro hacer funcionar este proyecto  usando un pic18f2550 y tengo un cristal de 20 M y 12 M. la pregunta es... me funcionaria si solo cambio el nombre del pic y en  #use delay(clock=48000000) le pongo 20000000 y los pines de tx y rx que creo que son diferentes ??


Tenes dos maneras colocando el de 20MHz:



Saludos!

Saludos!
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: kiketron en 16 de Septiembre de 2012, 18:36:41
gracias por contestar, ahora mismo lo hago y veo que pasa
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: kiketron en 16 de Septiembre de 2012, 19:20:36
no pues ya intente de las dos formas y sigue sin funcionar  :?
Título: Re: MiEPICBT: PIC, Bluetooth y Android... juntos pero no revueltos!
Publicado por: kiketron en 17 de Septiembre de 2012, 02:30:35
una vez mas yo  :?  realmente quiero hacer la comunicación  y ya pase casi todo el día y no logro controlar mi modulo, hice lo que dijo suky y no funciono, busque en la red y me encontré con que alguien tenia un problema mas o menos al mio pero el lo soluciono conectando el tx del modulo  al rx del pic y el rx de modulo al tx del pic, por que así vienen unos módulos,( el mio es un JY -MCU) así que lo hice  y resulto que cuando le daba en togle! el led rojo encendía y el verde se apagaba pero solo se quedaba así hasta recetar y de nuevo tenia que hacer lo mismo, entonces decidí encender otro led modificando el programa del pic y el del app  pero resulta que sigue haciendo lo mismo entonces  no se que hacer. esto es lo que modifique, aver si alguien me puede ayudar ( solo quiero prender y apagar un led)

adjunto el programa del pic ( los cambios son: pic a utilizar, baudios , pines xt y xr, clock, led ( B2) y creo que ya )
y una imagen de app inventor, sn lo mismo solo que en vez de togle puse on y otro botón que dice of y en panel de bloques mande los datos  $ y %)

espero que alguien me pueda ayudar,gracias