El Bluetooth es una tecnología usada por la gente desde hace bastante tiempo y a día de hoy, sigue más de moda que nunca con sus nuevas versiones, pero para este capítulo, vamos a aprovechar que los módulos de Bluetooth clásicos están tirados de precio y jugaremos con ellos.
La idea principal es cambiar el estado de cuatro LEDs mediante una aplicación Android que se pueda instalar en nuestros teléfonos o tablets y que mande el comando a ejecutar mediante la tecnología Bluetooth.
Para ello, se ha escogido el microcontrolador dsPIC30F4013 que estará conectado a los cuatro LEDs y al módulo de Bluetooth. En este capítulo no nos vamos a parar a explicar qué es y cómo funciona la tecnología Bluetooth, para nosotros será transparente ya que los módulos de Bluetooth que están disponibles en el mercado, su comunicación con el microcontrolador es, en su mayoría, transparente mediante el módulo de UART.
Así que por un lado, tendremos la aplicación Android instalada en nuestro teléfono móvil o tablet, y por otro lado, tendremos nuestro microcontrolador con los LEDs y el módulo de Bluetooth, para que funcione y podamos cambiar el estado de los LEDs, será necesario establecer establecer una conexión entre nuestra aplicación Android y el módulo de Bluetooth, dicha conexión será única e individual.
Una vez se establezca dicha comunicación, el microcontrolador podrá recibir los comandos para cambiar el estado de los LEDs correspondientes.
El material que vamos a necesitar y su función, es la que se muestra a continuación:
· dsPIC30F4013: Microcontrolador para este programa.
· Protoboard: Donde insertaremos nuestros componentes.
· PICKIT 3: Programador y depurador necesario para programar el código.
· Módulo Bluetooth: En este caso, el famoso módulo Bluetooth HC-05.
· APP: Aplicación Android para establecer conexión con el módulo de Bluetooth HC-05. Dicha APP estará disponible en el apartado de descargas.
· LEDs: Cuatro LEDs.
· Resistor 100 Ω: Cuatro resistores que irán conectados entre el microcontrolador y los LEDs.
· Resistor 4.7 kΩ: Un resistor que irá conectado entre los pins #MCLR y VDD.
El firmware es el que se muestra a continuación:
/** * @file main.c * @author Manuel Caballero * @date 25/7/2016 * @brief Archivo principal. * \copyright * AqueronteBlog@gmail.com * * Este archivo es propiedad intelectual del blog Aqueronte, * cuya direccion web, es la siguiente: * * http://unbarquero.blogspot.com/ * * Se permite cualquier modificacion del archivo siempre y cuando * se mantenga la autoria del autor. */ #include "xc.h" #include < stdint.h > #include "variables.h" #include "functions.h" #include "interrupts.h" /** * \brief int main( void ) * \details This firmware turns an LED on/off ( there are four LEDs ) depending on * the received command by the Bluetooth module: HC-05 ( by UART ) * * * \author Manuel Caballero * \version 0.0 * \date 25/7/2016 * \pre This firmware is tested on the dsPIC30F4013. * * \pre MPLAB X IDE v3.35. * \pre Compiler XC16 v1.22. */ int main(void) { conf_IO (); conf_UART (); while( 1 ){ Idle(); // uC in Low Power switch ( RxBuff ){ // Change the state of the chosen LED case 0x01: LATBbits.LATB9 = ~LATBbits.LATB9; break; case 0x02: LATBbits.LATB10 = ~LATBbits.LATB10; break; case 0x03: LATBbits.LATB11 = ~LATBbits.LATB11; break; case 0x04: LATBbits.LATB12 = ~LATBbits.LATB12; break; default: LATB &= ~( LED1 | LED2 | LED3 | LED4 ); // Turn off all the LEDs break; } } return 0; }
Como vemos, el ejemplo es bastante simple, se recomienda bajar los archivos disponibles más abajo para indagar entre sus librerías y leer sus funciones de manera más detallada.
Un vídeo que demuestra lo explicado anteriormente se presenta a continuación:
Os pongo a vuestra disposición el programa en lenguaje C (XC16 y CCS) para que lo podáis descargar y probar:
Microchip PIC: dsPIC30F4013 + Bluetooth + HC-05 + LEDs | |||||||||||||
Compilador XC16 | Compilador CCS | ||||||||||||
C | C | ||||||||||||
|
|
Podéis encontrar el código completo en nuestro repositorio GitHub:
· | AqueronteBlog GitHub. |
· NOTA 1: Lo comentarios están en formato doxygen. Aunque no se entrega dicha documentación ya que el MPLAB X no tiene ningún pulgin capaz de trabajar con dicho formato.
· NOTA 2: La APP ha sido diseñada en Android Studio y probada en el teléfono móvil Motorola Moto G.
1 comentarios:
Estimado te comparto una plataforma llamada CJAR para telemetría y telecontrol usando equipos Android, que te puede ser de utilidad para remotizar, para mayor información puedes visitar www.cjarperu.com o buscar las app como CJAR en Goggle Play Store , te dejo un video: https://www.youtube.com/watch?v=ttXMSWJ2Nfk
Publicar un comentario