in

Bluetooth + Android + PIC + LED = “Hola Mundo”

Los modernos teléfonos inteligentes con conectividad Bluetooth, que disponen del sistema operativo Android, a partir de ahora nos permiten acceder a infinitas aplicaciones que antes requerían de módulos de RF u otros medios de enlace y que, no siempre funcionaban como deseábamos. En este artículo haremos un “Hola Mundo” con un PIC y un LED de la manera más sencilla que te puedas imaginar. No te preocupes, no será necesario aprender toneladas de libros para programar sistemas útiles en Android para PICs. Juntos aprenderemos, paso a paso, como comandar un LED a distancia, por Bluetooth y luego, te darás cuenta que cualquier sistema remoto con Android estará a tu alcance de manera muy sencilla.

Para iniciar este trabajo, nos remontaremos a hacer un breve repaso del desarrollo que hemos realizado con anterioridad, cuando presentamos el módulo Bluetooth RN41, aquí en NeoTeo. Para esto, vamos a recordar algunos puntos básicos que serán comunes a cualquier sistema Bluetooth que quieras implementar. Es decir, nosotros usamos un PIC 18F25K20 programado en AMICUS, al que le conectamos el módulo RN41 de Microingenia S.L. En este montaje, lo único que hemos hecho es colocar en el pin 0 (cero) del puerto B, un LED que será el que encenderemos y apagaremos a distancia con la ansiada conectividad Bluetooth, operada desde nuestro móvil (teléfono inteligente o tableta) con Android. Por lo tanto, vamos a iniciar este trabajo desde lo básico, desde lo elemental, para que no te pierdas un solo detalle y te resulte claro y sencillo crear tus propias aplicaciones con microcontroladores comunicados vía Bluetooth sobre plataformas Android.

Luego de volver a leer y de refrescar los conocimientos de lo que hicimos en aquel “Hola Mundo” con Bluetooth, podemos definir entonces que el circuito empleado será muy sencillo y se limitará, en esta oportunidad a un LED Rojo. Por supuesto que tu imaginación hará que ese LED sea un portón levadizo de una cochera, o el sistema de iluminación de tu habitación. Es decir, podría ser el sistema de activación remota de cualquier sistema electro-mecánico que necesite ser operado a distancia. O sea, aquí será un LED convencional, pero este ejemplo tiene la intención de ser el puntapié inicial de una variedad de circuitos sin final. Vale reiterar además, que nosotros utilizamos un tipo determinado de microcontrolador por comodidad, porque lo teníamos a mano, porque utiliza un software libre y porque podríamos haber utilizado un PIC32 o un 12F675A para hacer este trabajo. ¿Qué intentamos decirte? Tú utiliza el que quieras y te haga feliz. Nosotros avanzamos con el RN41, con el PIC 18F25K20 y con AMICUS trabajando todo a una tensión de alimentación de 3,3Volts. El hardware, por lo tanto, nos quedará montado según el esquema de arriba y de la siguiente manera.

Una vez que todo está listo, definimos el software a utilizar en el PIC y procederemos a escribirlo, a compilarlo y a crear el .HEX que utilizaremos. La creación del código ya no tiene misterios a esta altura de nuestros trabajos con este PIC. Recordemos que AMICUS es un software de alto nivel que nos exime de definir absolutamente todo lo que, en otros programas estamos obligados a hacer para no cometer errores que puedan derivar en un mal funcionamiento o en el peor de los casos, que el desarrollo nunca funcione. Aquí sólo hay que escribir instrucciones y AMICUS se encarga del resto, por lo tanto, definimos la velocidad de comunicación entre el módulo Bluetooth y el 18F25K20 que será a 115Kbps, declaramos la variable que recibiremos como dato (BYTE) desde el móvil vía Bluetooth y allí comenzamos con el lazo principal de programa. HSERIN es la instrucción en BASIC para poner el PIC a “escuchar” si recibe datos por su entrada serie (EUSART) (Enhanced Universal Synchronous Asynchronous Receiver Transmitter). Si esto ocurre (recibir un dato), lo carga en la variable declarada (LED), sino, al cabo de un tiempo de espera (50mS), salta a otra instancia del programa definida por una etiqueta (Lazo). En el caso de recibir el dato, el firmware observa si es algo de lo que está esperando y actúa en consecuencia. En este caso con un 100 enciende el LED colocado en PORTB.0 (pin 0 del puerto B) y con un 200 lo apaga. Listo. Eso es todo. Así debe quedarte el listado de instrucciones:

Una vez escrito este elemental programa, lo compilamos y lo cargamos en el PIC de la manera que mejor nos convenga. Mediante una conexión ICSP (In Circuit Serial Program) o, si lo deseamos, colocando el PIC en nuestro programador habitual. El ensayo será igual al que hicimos antes, ya sea con un módulo nativo Bluetooth en un ordenador móvil o mediante el método que utilizamos nosotros, acoplando un modulo USB externo. Por lo tanto, si ya has realizado la experiencia de un enlace Bluetooth con un PIC, estaremos un paso adelante en la explicación. Si así no fuese, te recomendamos la lectura del artículo donde explicamos, paso a paso, como lograr este enlace entre el adaptador USB, conectado a nuestro ordenador móvil y al par formado por el módulo RN41 y el PIC 18F25K20. Una vez llegados a este punto, abrimos una consola serie como puede ser el Hyperterminal de Windows, o como en nuestro caso, el terminal serie que viene en el programa Proton y lo hacemos de este modo:

Una vez que tenemos ensayado el enlace Bluetooth y estamos seguros de que todo funciona, podemos comenzar a prepararnos para lo que estábamos esperando, comenzar a realizar nuestro programa para la plataforma Android. Para esto, lo primero que debes saber es que utilizaremos la aplicación “App Inventor” (creada por Google) y aunque es sencilla, intuitiva y fácil de usar, requiere de tu atención y esmero para lograr aplicaciones finales interesantes. A pesar de ser un sistema de programación de alto nivel, no posee lo que habitualmente conocemos como “Librerías”. Es decir, no podrás llamar a una librería, colocarle tu nombre, una pequeña imagen de identificación y lograr Realidad Aumentada que se pueda vender en la tienda on-line de Android. No, ni lo sueñes. Hay mucho material para leer, hay mucho que practicar y por algún lugar hay que comenzar. Lo primero que harás entonces es descargar e instalar la aplicación App Inventor según el sistema operativo que utilices, la aplicación te indicará los pasos a seguir y si es necesario, deberás instalar algún software adicional (Java). Debes saber además, que utilizarás un sistema de trabajo en línea, donde tendrás una página dedicada a tus desarrollos y desde ella podrás acceder a descargar las aplicaciones de la manera en que te resulte más cómodo.

Las aplicaciones se arman en la web, sobre una página a la que accederás mediante tu nombre de usuario de una cuenta de correo Gmail. Por supuesto, si no posees una, deberás hacerlo para acceder a la web de App Inventor. En la página inicial, encontrarás (arriba, a la izquierda) el botón de indicación para crear una aplicación nueva (estás ingresando por primera vez). Te pedirá que le asignes un nombre (a esta nueva aplicación que estás a punto de crear) y luego te aparecerá una pantalla donde se seleccionan los componentes para realizar el “diseño de la aplicación”. Esto es botones, cuadros de texto, etiquetas, imágenes, separadores, reproductores de video, animaciones, accesos directos a las redes sociales, los sensores de movimiento que tu equipo posea y todos los elementos que quieras colocar (para utilizar) en tu aplicación. Como nosotros estamos haciendo nuestra primera aplicación, comenzaremos aprendiendo a colocar botones, separadores y algún otro elemento “básico” para realizar nuestros primeros ensayos. Estos elementos se arrastrarán hasta el “lienzo” y sobre la margen derecha de la pantalla, le asignarás las propiedades, colores y demás parámetros que creas oportuno. Si alguna vez has trabajado con software orientado a objetos, estarás ante un sistema de aplicación muy similar:

A partir de allí deberás colocar en el lienzo central, que simula ser la pantalla de tu Android, los elementos que quieras, aunque al principio, con un par de botones, etiquetas y alguna imagen, ya es suficiente para no llenar de tanto la pantalla inicial. Luego que hayas colocado una imagen de fondo, que los botones tengan el tamaño que deseas y que los colores estén a tono con tu calzado deportivo, grabarás la aplicación pulsando el botón “Save”. Una vez hecho esto, observarás que en la esquina superior derecha tienes dos botones. Uno te lleva al “editor de bloques” y el otro te arma, “te construye” la aplicación para que la puedas cargar en tu dispositivo Android. Al pulsar el botón de abrir el “editor de bloques”, la aplicación te pedirá que instales (si no lo has hecho ya) el “Android SDK” que no es otra cosa que el verdadero sistema de desarrollo Android que debe estar instalado en tu máquina. A través de él tendrás acceso a montar un emulador de dispositivo que puede ayudarte mientras trabajas en el desarrollo. ¿Qué es un emulador de dispositivo? Un equipo virtual que ejecutará en tu máquina, los programas que realices, a medida que los vayas construyendo. O sea, si no tienes un dispositivo móvil con Android, igual puedes empezar a trabajar y a ensayar tus aplicaciones en este emulador ¡Ya puedes correr aplicaciones Android en tu máquina! Ten cuidado con los requisitos mínimos del sistema y la velocidad del proceso. Ten presente que, como en toda simulación virtual, algunas cosas no suceden a la misma velocidad que en el mundo real, sin embargo, puede resultarte una herramienta muy útil si le tomas la mano.

Luego de que abra la sesión de Java correspondiente, notarás que el editor de bloques posee una serie de elementos, bloques (valga la redundancia) que se manejan y organizan sin que sea necesario cuidar al extremo la estética y la elegancia. Sobre la izquierda encontrarás los elementos que has cargado sobre el lienzo, en la página del diseño de la aplicación, y al pulsar sobre cada uno de ellos, se abrirán las opciones que el editor de bloques te permitirá utilizar con cada uno de esos elementos. ¿Has visto como la muchacha del video seleccionaba el clic del botón y el sonido que ya había cargado antes, en la pantalla de diseño? Como ya te mencionamos, si has trabajado en programación orientada a objetos, notarás que los bloques poseen indicadores muy intuitivos que te guiarán y te ayudarán a ensamblar los bloques de manera apropiada, ya que no puedes unir cualquier pieza con otra sin saber porqué lo haces. No te preocupes, el mismo editor de bloques te ayudará cuando algo no coincida. Por último, conectando tu dispositivo Android al ordenador mediante uno de los puertos USB podrás observar, en tiempo real, cada avance que logres en la programación, pulsando la opción adecuada en el botón dedicado a “empaquetar” la aplicación. (No olvides, para trabajar de este modo, habilitar la opción “Depuración por USB” entrando en Configuración > Aplicaciones > Desarrollo) (Luego veremos otros métodos)

¿Te animas a jugar un poco mientras preparamos la segunda parte de este artículo? En la próxima entrega veremos como crear la aplicación que se muestra en la imagen cabecera del artículo y conectaremos nuestro móvil con Android a un PIC mediante un enlace Bluetooth, ya no con un cable USB. Colocaremos las etiquetas sobre el lienzo en la página de diseño, le agregaremos la imagen de fondo, los botones, la conectividad Bluetooth y en el editor de bloques armaremos el interesante rompecabezas que ves en la imagen superior, donde cada bloque tiene una función específica. Te reiteramos lo que te dijimos al comienzo, hay mucho para leer, para practicar, para ensayar y para experimentar. ¿Quieres verlo en funcionamiento? ¿Quieres saber como queda terminado? Así:

También tenemos que aprender a configurar nuestro dispositivo Android para que acepte las aplicaciones que construyamos y mucho, mucho más trabajo nos espera en la próxima entrega de este maravilloso “Hola Mundo”. Hasta aquí la introducción, los preparativos, algunas perlitas y algunos elementos necesarios como para comenzar a jugar. No te pierdas la próxima entrega; hay mucho por hacer y ¡todavía falta lo mejor!

Reportar

¿Qué te pareció?

Escrito por Mario

5 Comments

Leave a Reply
  1. Hola, que tal. Quisiera iniciar este proyecto, esta muy interesante! Pero mi duda surge en si es que se puede utilizar cualquier modulo bluetooth?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Made in China (III): Tiangong I

Glitch: Un juego de grandes imaginaciones