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.comEl 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!)
////////////////////////////////////////////////////////////////////////
//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!
Y aquí una captura de pantalla del móvil corriendo la aplicación:
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.zipOs subo también el APK (instalador de Android) listo para ejecutar en vuestros móviles:
http://www.microingenia.com/temp/MiEPICBT/MiEPICBT.apkBueno 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 !!