bluetooth con módulo rn41 y 18f25k20

Upload: estetico

Post on 06-Jul-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/17/2019 Bluetooth Con Módulo RN41 y 18F25K20

    1/5

     

    Bluetooth con módulo RN41 y18F25K20 

    ELECTRÓNICA 

    etiquetas: 18f25k20, bluetooth, rn41, rs232 

    http://www.neoteo.com/bluetooth-con-modulo-rn41-y-18f25k20/ 

    Cuando pensamos en el estándar Bluetooth para comunicar dispositivos entre sí, pensamos enobjetos como nuestro ordenador, nuestro teléfono móvil o algún dispositivo costoso. Sin embargo,gracias a las facilidades que nos brinda el módulo RN41, podemos, por ejemplo, trasformar unasimple conexión RS232 en inalámbrica ¡con un alcance de hasta 100 metros! En este artículoveremos la primera parte de todas las cosas que podremos realizar con el módulo Bluetooth deMicroingenia S.L. La magia de la radio y la conexión inalámbrica te permiten explorar este útilsistema. En una aplicación simple y con un software gratuito, realizaremos una sencilla mediciónde temperatura que servirá de ejemplo para iniciarnos en la comprensión y en el aprovechamientointegral de este módulo RN41.¡Bienvenido al mundo Bluetooth! 

    http://www.neoteo.com/bluetooth-con-modulo-rn41-y-18f25k20/http://www.neoteo.com/bluetooth-con-modulo-rn41-y-18f25k20/http://www.neoteo.com/category/electronica/http://www.neoteo.com/category/electronica/http://www.neoteo.com/tag/18f25k20/http://www.neoteo.com/tag/18f25k20/http://www.neoteo.com/tag/18f25k20/http://www.neoteo.com/tag/bluetooth/http://www.neoteo.com/tag/bluetooth/http://www.neoteo.com/tag/bluetooth/http://www.neoteo.com/tag/rn41/http://www.neoteo.com/tag/rn41/http://www.neoteo.com/tag/rn41/http://www.neoteo.com/tag/rs232/http://www.neoteo.com/tag/rs232/http://www.neoteo.com/tag/rs232/http://www.neoteo.com/bluetooth-con-modulo-rn41-y-18f25k20/http://www.neoteo.com/bluetooth-con-modulo-rn41-y-18f25k20/http://www.neoteo.com/mi-primer-receptor-tda7000.neohttp://www.neoteo.com/mi-primer-receptor-tda7000.neohttp://www.neoteo.com/mi-primer-receptor-tda7000.neohttp://www.neoteo.com/bluetooth-con-modulo-rn41-y-18f25k20/http://www.neoteo.com/mi-primer-receptor-tda7000.neohttp://www.neoteo.com/bluetooth-con-modulo-rn41-y-18f25k20/http://www.neoteo.com/tag/rs232/http://www.neoteo.com/tag/rn41/http://www.neoteo.com/tag/bluetooth/http://www.neoteo.com/tag/18f25k20/http://www.neoteo.com/category/electronica/http://www.neoteo.com/bluetooth-con-modulo-rn41-y-18f25k20/http://www.neoteo.com/bluetooth-con-modulo-rn41-y-18f25k20/

  • 8/17/2019 Bluetooth Con Módulo RN41 y 18F25K20

    2/5

     

    El módulo de desarrollo Bluetooth de Microingenia S.L. que utilizaremos en este artículo, basadoen el RN41 de Roving Networks, es un perfecto aliado para eliminar los cables en tus proyectos o

    para conectarse a ordenadores y/o teléfonos móviles. Con un alcance de hasta 100 metros (Clase I),posee antena integrada, es compatible con el estándar Bluetooth 2.1, permite velocidades detransferencia de hasta 921Kbps, y lo puedes conectar de forma sencilla mediante la UART(RX/TX) de cualquier microcontrolador, desde donde puedes controlarlo haciendo uso de sencilloscomandos AT. El módulo, además, puede ser alimentado tanto a 5Volts como a 3,3Volts, y para ellodispone de un puente ( jumper ) de selección de la tensión de alimentación. El RN41 funciona a3,3Volts y sus líneas NO son 5Volts compatibles, por lo que las líneas de uso normal (Rx/Tx) estánprovistas deadaptación de niveles para su utilización con las placas de desarrollo que operan a5Volts. De todos modos, posee entradas auxiliares que te permitirán trabajar en forma directa conel RN41 y un bus Rx/Tx de 3,3Volts, tal como utilizaremos nosotros. Aquí lo tienes: nuestromódulo Bluetooth.

    La posibilidad que nos brinda utilizar un módulo completo (ya ensamblado) tiene la ventaja dedisponer en forma rápida de una conectividad eficiente para ensayos. Es decir, es muysencillo insertar el módulo en un protoboard, alimentarlo con 3,3Volts, conectarle los canales detransmisión y recepción provenientes de la USART de un PIC y agregarle un diodo LED indicador deestado de conexión. ¡Más sencillo, imposible! El diagrama en bloques del RN41 nos muestra lasposibilidades de trabajo que este módulo ofrece y, como podemos apreciar, posee conexiónSerie, USB, PCM (audio). Además, dispone de terminales de salida para activar dispositivos diversoscomo relés, motores, luces y otros circuitos de salida acoplados a este maravilloso enlaceinalámbrico que es el módulo RN41. Por supuesto, al final del artículo encontrarás el enlace paradescargar la hoja de datos de este módulo (entre otras cosas) y descubrir allí todas las posibilidades.

    Demás está decir que, si te atreves, con él podrás utilizar comandos AT desde tu teléfono móvilpara indicarle instrucciones. Fascinante, ¿verdad? 

    El circuito utilizado para iniciarnos en el mundo Bluetooth es sencillo por donde se lo mire. Es elclásico circuito que emplea los componentes más usuales dentro de nuestro grupo selecto dedispositivos. UnPIC 18F25K20 con un cristal de 16Mhz. para que puedas utilizar el softwarelibre AMICUS y lograr de este modo un sistema que corra a 64Mhz de velocidad de reloj. Estavelocidad será vital para lograr una conectividad a 115.200bps. Si utilizas otros microcontroladorescon menor velocidad de reloj, debes observar la conexión de PIO7 en el módulo para “forzar ” la

    http://www.neoteo.com/cargador-usb-de-pared-dentro-de-la-pared.neohttp://www.neoteo.com/cargador-usb-de-pared-dentro-de-la-pared.neohttp://www.neoteo.com/cargador-usb-de-pared-dentro-de-la-pared.neohttp://www.neoteo.com/adaptador-de-niveles-para-bus-i2c-3-3v-5v.neohttp://www.neoteo.com/adaptador-de-niveles-para-bus-i2c-3-3v-5v.neohttp://www.neoteo.com/conecta-tus-proyectos-al-puerto-usb.neohttp://www.neoteo.com/conecta-tus-proyectos-al-puerto-usb.neohttp://www.neoteo.com/conecta-tus-proyectos-al-puerto-usb.neohttp://www.neoteo.com/pwm-mosfet-y-motores-cc-parte-iii.neohttp://www.neoteo.com/pwm-mosfet-y-motores-cc-parte-iii.neohttp://www.neoteo.com/pwm-mosfet-y-motores-cc-parte-iii.neohttp://www.neoteo.com/amicus-software-libre-para-pic-18f25k20.neohttp://www.neoteo.com/amicus-software-libre-para-pic-18f25k20.neohttp://www.neoteo.com/amicus-software-libre-para-pic-18f25k20.neohttp://cdni.neoteo.com/BFAC_1024_44483.jpghttp://cdni.neoteo.com/CD87_1024_44482.gifhttp://www.neoteo.com/amicus-software-libre-para-pic-18f25k20.neohttp://www.neoteo.com/pwm-mosfet-y-motores-cc-parte-iii.neohttp://www.neoteo.com/conecta-tus-proyectos-al-puerto-usb.neohttp://www.neoteo.com/adaptador-de-niveles-para-bus-i2c-3-3v-5v.neohttp://www.neoteo.com/cargador-usb-de-pared-dentro-de-la-pared.neo

  • 8/17/2019 Bluetooth Con Módulo RN41 y 18F25K20

    3/5

    velocidad a 9600bps. Es decir, deberás colocar una resistencia pull-up (1K) en el mencionado pinrespecto a la tensión de alimentación para lograr este objetivo. ¿Qué más necesitas para iniciar eltrabajo? ¡Muy poco! Observa este video y te darás cuenta que ya posees todos los elementosnecesarios.

     Algunos LEDs, un par de pulsadores, un LCD, el módulo de temperatura con el STCN75, ocualquiera que tengas disponible, pueden ser útiles como para construir este termómetro “ remoto einalámbrico”. Es decir, si dispones de un LM35 (o estás acostumbrado a su uso) puedes utilizar

    cualquiera de lasentradas analógicas que te brinda el PIC 18F25K20. Y si en lugar de utilizarun termómetro deseas instalar otro tipo de dispositivo capaz de enviarte información hacia elordenador, bienvenido sea. Aquí, el propósito es lograr el enlace Bluetooth e intercambiar datosentre el ordenador y el PIC, del mismo modo que si estuvieras conectado mediante el puerto serie.

     Aquí tienes el circuito que utilizamos en el protoboard:

    El Software del PIC Todos saben que, para aplicaciones de ensayo y en los casos en que no son críticos los tiempos deacción del programa, prefiero el lenguaje BASIC de programación. A partir de la apariciónde AMICUS, la facilidad de uso de este programa se ha potenciado debido a que es un softwaregratuito y totalmente funcional, sin restricciones de ninguna especie. Por lo tanto, la simplicidaddel BASIC, sumada a la potencia de un lenguaje de alto nivel como Proton, facilita mucho la tareade prácticas y experimentos poco exigentes. De todos modos, como sé que hay muchos entusiastasde otros programas, explicar el código puede servir para facilitar la comprensión del funcionamientode este proyecto. Por lo tanto, lo primero que haremos es definir (como en todos los lenguajes deprogramación) los parámetros que determinarán el funcionamiento del PIC: velocidad de datospor puerto serie, utilización del mismo, utilización de display y todas aquellas librerías que seannecesarias.

    Luego vienen las variables que utilizaremos en el programa, algunos valores constantes quedebemos cargar, un mensaje de bienvenida y, por fin, iniciar el lazo principal de programa.

    http://www.neoteo.com/microcontroladores-termometro-i2c.neohttp://www.neoteo.com/microcontroladores-termometro-i2c.neohttp://www.neoteo.com/microcontroladores-termometro-i2c.neohttp://www.neoteo.com/datalogger-de-temperatura-con-18f2550-ii.neohttp://www.neoteo.com/datalogger-de-temperatura-con-18f2550-ii.neohttp://www.neoteo.com/datalogger-de-temperatura-con-18f2550-ii.neohttp://www.neoteo.com/conectando-un-pic-al-puerto-serie-rs232.neohttp://www.neoteo.com/conectando-un-pic-al-puerto-serie-rs232.neohttp://www.neoteo.com/conectando-un-pic-al-puerto-serie-rs232.neohttp://cdni.neoteo.com/EFA3_1024_44484.jpghttp://www.neoteo.com/conectando-un-pic-al-puerto-serie-rs232.neohttp://www.neoteo.com/datalogger-de-temperatura-con-18f2550-ii.neohttp://www.neoteo.com/microcontroladores-termometro-i2c.neo

  • 8/17/2019 Bluetooth Con Módulo RN41 y 18F25K20

    4/5

    En BASIC es común el uso de lazos de cuenta conocidos como FOR-NEXT. Dentro de ellospodemos incrustar muchas acciones o muchas interrogaciones (adquisición de datos) entre el PIC ysu entorno físico. En nuestro caso, siempre estaremos atentos a que  se pulse un botón conectado alpin 0 del puerto B o a que nos llegue algún dato proveniente desde el módulo Bluetooth. En BASICutilizamos la instrucción HSERINpara leer en forma directa la USART del PIC. Con esta sencillainstrucción, sabremos si el módulo Bluetooth está recibiendo datos desde el ordenador. De ser así,estos datos se vuelcan en una variable y el programa actúa en consecuencia. Si es un tipo“esperado” de dato, realizará una determinada acción, u otra, hasta agotar las posibilidades de

    opción. Si ningún dato coincide con los esperados, es probable que el ordenador le esté “hablando” aotro módulo Bluetooth en las cercanías. Si los datos no corresponden a lo que estamos esperando,el ciclo se reinicia en forma indefinida y mantiene el sistema siempre “en espera y a la escucha”. 

    Entre las acciones que pueden esperarse está la de encender el LED verde, detectar que se hapulsado el botón predeterminado para el envío de datos (el mensaje de saludo que vemos en elvideo), hastarecibir comandos AT desde el ordenador para cambiar la configuración de algunosparámetros de funcionamiento del módulo. Es decir, no vamos a enumerar aquí todas las cosas quepueden realizarse en un enlace serie entre un ordenador y un PIC, pero al menos queríamosexplicarte con palabras la estructura del programa (que en definitiva termina siendo igual a unacomunicación serie tradicional). Por último, puedes observar en el listado del programa (lo puedes

    abrir con un editor de texto) que ante cualquier evento que suceda dentro de estos lazos FOR-NEXT,el programa saltará asubrutinas para realizar tal o cual acción. Estas son: leer el termómetro yenviar los datos al ordenador o transmitir (HSEROUT) el mensaje de saludo almacenado.

    ¿Para qué utilizamos los lazos FOR-NEXT? Para encender el LED rojo en forma intermitente. Sí, yasabemos que es una aplicación trivial, sin sentido y que podríamos haber utilizado el desbordedelTMR0 para ello, pero no olvides que estamos practicando, experimentado, aprendiendo y queeste tipo de rutinas puede ser útil en cualquier momento para resolver eventos que no puedan dejarde atenderse u observarse en la forma cíclica en que activamos el LED rojo. También puede ser útilcuando ya has agotado el uso de todos los timers del PIC.

    Entre los enlaces que te ofrecemos al final del artículo, encontrarás el listado completode comandos AT que te permitirán configurar muchas características del módulo RN41. Porsupuesto, una de las más importantes es darle al módulo nuestro nombre. Que al aparecer enescena, no lo haga como una sucesión de letras y números codificados, sino que tenga un nombrerepresentativo a nuestra aplicación. Para lograrlo, bastará con abrir el software de comunicaciónserie de nuestra preferencia (por ejemplo, el Hyperterminal) y escribir: $$$, es decir, el símbolo depesos, tres veces seguidas. Si el módulo lo recibe en forma correcta, devolverá lasletras CMD seguido por un signo de pregunta, de igual modo que si estuviera esperando nuevasinstrucciones. Luego de esto, escribimos SN, . Nosotros escribimos: SN,NeoTeo y resultó lo que vesen el video. El módulo te devolverá un AOK, indicándote que recibió la instrucción, y luego otro signo

    http://www.neoteo.com/-20069-datalogger-adquisicion-de-datos-con-18f2550.neohttp://www.neoteo.com/-20069-datalogger-adquisicion-de-datos-con-18f2550.neohttp://www.neoteo.com/-20069-datalogger-adquisicion-de-datos-con-18f2550.neohttp://www.neoteo.com/microcontroladores-sumando-pulsadores.neohttp://www.neoteo.com/microcontroladores-sumando-pulsadores.neohttp://www.neoteo.com/microcontroladores-sumando-pulsadores.neohttp://www.neoteo.com/10-consejos-para-un-programador-novato.neohttp://www.neoteo.com/10-consejos-para-un-programador-novato.neohttp://www.neoteo.com/10-consejos-para-un-programador-novato.neohttp://www.neoteo.com/8-canales-de-pwm-con-un-16f628a.neohttp://www.neoteo.com/8-canales-de-pwm-con-un-16f628a.neohttp://www.neoteo.com/8-canales-de-pwm-con-un-16f628a.neohttp://cdni.neoteo.com/BFAE_1024_44485.jpghttp://www.neoteo.com/8-canales-de-pwm-con-un-16f628a.neohttp://www.neoteo.com/10-consejos-para-un-programador-novato.neohttp://www.neoteo.com/microcontroladores-sumando-pulsadores.neohttp://www.neoteo.com/-20069-datalogger-adquisicion-de-datos-con-18f2550.neo

  • 8/17/2019 Bluetooth Con Módulo RN41 y 18F25K20

    5/5

    de interrogación. Este proceso se repite hasta que termines de enviar comandos AT al módulo. Alfinalizar, quitas la alimentación, la reestableces y ¡listo!El módulo actuará según los comandosenviados.

    ¡Atención aquí! Existen dos tipos diferentes de comandos: unos determinan el funcionamientodel módulo (como los que te indicamos recién) y otros le indican acciones en tiempo real. Esdecir, para los primeros debes reiniciar la alimentación, mientras que para los segundos la acción serealizará en tiempo real, o sea, cuando tú envíes el comando AT. En el caso de utilizar un

    ordenador como enlace a un dispositivo remoto que posea el módulo Bluetooth RN41, será muysencillo enviarle los comandos AT de acción. Desde un teléfono móvil deberás encontrar o elaboraralgún tipo de aplicación capaz de realizar este trabajo. Aquí tienes una muestra para ver cómo unteléfono móvil detecta el flamanteMódulo Bluetooth NeoTeo.

    Nuestro trabajo ahora estará centrado en seguir investigando acerca de las prestaciones que estemódulo puede ofrecernos. ¿Qué es lo primero que intentarías hacer funcionar en tu ordenadormóvil? El punto es: aplicación remota que envía datos al ordenador de manera inalámbrica . Porsupuesto, te invitamos a charlar sobre el tema, posibles mejoras, aplicaciones útiles y todo lo quequieras decirnos en el foro de NeoTeo. Allí tenemos mucho para charlar y comentar acerca de estamaravilla del mundo de las telecomunicaciones: el Bluetooth. ¡Te esperamos!

    Código del PIC:Bluetooth RN41:Datasheet RN41:Comandos AT Módulo BluetoothMicroingenia S.L. 

    http://www.neoteo.com/fuente-modular-para-protoboard.neohttp://www.neoteo.com/fuente-modular-para-protoboard.neohttp://www.neoteo.com/fuente-modular-para-protoboard.neohttp://www.neoteo.com/radiocontrol-modulos-comerciales-en-uhf.neohttp://www.neoteo.com/radiocontrol-modulos-comerciales-en-uhf.neohttp://www.neoteo.com/radiocontrol-modulos-comerciales-en-uhf.neohttp://www.neoteo.com/foro/forum.phphttp://www.neoteo.com/foro/forum.phphttp://www.neoteo.com/foro/forum.phphttp://www.4shared.com/file/SvwUSDKv/Bluetooth.htmlhttp://www.4shared.com/file/SvwUSDKv/Bluetooth.htmlhttp://www.4shared.com/file/SvwUSDKv/Bluetooth.htmlhttp://www.microingenia.com/electronics/upload/docs/ModBluetooth/rn-41-ds.pdfhttp://www.microingenia.com/electronics/upload/docs/ModBluetooth/rn-41-ds.pdfhttp://www.microingenia.com/electronics/upload/docs/ModBluetooth/rn-41-ds.pdfhttp://www.microingenia.com/electronics/upload/docs/ModBluetooth/rn-bluetooth-um.pdfhttp://www.microingenia.com/electronics/upload/docs/ModBluetooth/rn-bluetooth-um.pdfhttp://www.microingenia.com/electronics/upload/docs/ModBluetooth/rn-bluetooth-um.pdfhttp://www.microingenia.com/electronics/product.php?id_product=4http://www.microingenia.com/electronics/product.php?id_product=4http://www.microingenia.com/electronics/product.php?id_product=4http://www.microingenia.com/electronics/upload/docs/ModBluetooth/rn-bluetooth-um.pdfhttp://www.microingenia.com/electronics/upload/docs/ModBluetooth/rn-41-ds.pdfhttp://www.4shared.com/file/SvwUSDKv/Bluetooth.htmlhttp://www.neoteo.com/foro/forum.phphttp://www.neoteo.com/radiocontrol-modulos-comerciales-en-uhf.neohttp://www.neoteo.com/fuente-modular-para-protoboard.neo