Bluetooth Con Módulo RN41 y 18F25K20
Bluetooth Con Módulo RN41 y 18F25K20
Bluetooth Con Módulo RN41 y 18F25K20
18F25K20
ELECTRNICA
etiquetas: 18f25k20, bluetooth, rn41, rs232
http://www.neoteo.com/bluetooth-con-modulo-rn41-y-18f25k20/
Cuando pensamos en el estndar Bluetooth para comunicar dispositivos entre s, pensamos en
objetos como nuestro ordenador, nuestro telfono mvil o algn dispositivo costoso. Sin embargo,
gracias a las facilidades que nos brinda el mdulo RN41, podemos, por ejemplo, trasformar una
simple conexin RS232 en inalmbrica con un alcance de hasta 100 metros! En este artculo
veremos la primera parte de todas las cosas que podremos realizar con el mdulo Bluetooth de
Microingenia S.L. La magia de la radio y la conexin inalmbrica te permiten explorar este til
sistema. En una aplicacin simple y con un software gratuito, realizaremos una sencilla medicin
de temperatura que servir de ejemplo para iniciarnos en la comprensin y en el aprovechamiento
integral de este mdulo RN41.Bienvenido al mundo Bluetooth!
El mdulo de desarrollo Bluetooth de Microingenia S.L. que utilizaremos en este artculo, basado
en el RN41 de Roving Networks, es un perfecto aliado para eliminar los cables en tus proyectos o
para conectarse a ordenadores y/o telfonos mviles. Con un alcance de hasta 100 metros (Clase I),
posee antena integrada, es compatible con el estndar Bluetooth 2.1, permite velocidades de
transferencia 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 sencillos
comandos AT. El mdulo, adems, puede ser alimentado tanto a 5Volts como a 3,3Volts, y para ello
dispone de un puente (jumper) de seleccin de la tensin de alimentacin. El RN41 funciona a
3,3Volts y sus lneas NO son 5Volts compatibles, por lo que las lneas de uso normal (Rx/Tx) estn
provistas deadaptacin de niveles para su utilizacin con las placas de desarrollo que operan a
5Volts. De todos modos, posee entradas auxiliares que te permitirn trabajar en forma directa con
el RN41 y un bus Rx/Tx de 3,3Volts, tal como utilizaremos nosotros. Aqu lo tienes: nuestro
mdulo Bluetooth.
La posibilidad que nos brinda utilizar un mdulo completo (ya ensamblado) tiene la ventaja de
disponer en forma rpida de una conectividad eficiente para ensayos. Es decir, es muy
sencillo insertar el mdulo en un protoboard, alimentarlo con 3,3Volts, conectarle los canales de
transmisin y recepcin provenientes de la USART de un PIC y agregarle un diodo LED indicador de
estado de conexin. Ms sencillo, imposible! El diagrama en bloques del RN41 nos muestra las
posibilidades de trabajo que este mdulo ofrece y, como podemos apreciar, posee conexin
Serie, USB, PCM (audio). Adems, dispone de terminales de salida para activar dispositivos diversos
como rels, motores, luces y otros circuitos de salida acoplados a este maravilloso enlace
inalmbrico que es el mdulo RN41. Por supuesto, al final del artculo encontrars el enlace para
descargar la hoja de datos de este mdulo (entre otras cosas) y descubrir all todas las posibilidades.
Dems est decir que, si te atreves, con l podrs utilizar comandos AT desde tu telfono mvil
para indicarle instrucciones. Fascinante, verdad?
El circuito utilizado para iniciarnos en el mundo Bluetooth es sencillo por donde se lo mire. Es el
clsico circuito que emplea los componentes ms usuales dentro de nuestro grupo selecto de
dispositivos. UnPIC 18F25K20 con un cristal de 16Mhz. para que puedas utilizar el software
libre AMICUS y lograr de este modo un sistema que corra a 64Mhz de velocidad de reloj. Esta
velocidad ser vital para lograr una conectividad a 115.200bps. Si utilizas otros microcontroladores
con menor velocidad de reloj, debes observar la conexin de PIO7 en el mdulo para forzar la
velocidad a 9600bps. Es decir, debers colocar una resistencia pull-up (1K) en el mencionado pin
respecto a la tensin de alimentacin para lograr este objetivo. Qu ms necesitas para iniciar el
trabajo? Muy poco! Observa este video y te dars cuenta que ya posees todos los elementos
necesarios.
Algunos LEDs, un par de pulsadores, un LCD, el mdulo de temperatura con el STCN75, o
cualquiera que tengas disponible, pueden ser tiles como para construir este termmetro remoto e
inalmbrico. Es decir, si dispones de un LM35 (o ests acostumbrado a su uso) puedes utilizar
cualquiera de lasentradas analgicas que te brinda el PIC 18F25K20. Y si en lugar de utilizar
un termmetro deseas instalar otro tipo de dispositivo capaz de enviarte informacin hacia el
ordenador, bienvenido sea. Aqu, el propsito es lograr el enlace Bluetooth e intercambiar datos
entre 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:
En BASIC es comn el uso de lazos de cuenta conocidos como FOR-NEXT. Dentro de ellos
podemos incrustar muchas acciones o muchas interrogaciones (adquisicin de datos) entre el PIC y
su entorno fsico. En nuestro caso, siempre estaremos atentos a que se pulse un botn conectado al
pin 0 del puerto B o a que nos llegue algn dato proveniente desde el mdulo Bluetooth. En BASIC
utilizamos la instruccin HSERINpara leer en forma directa la USART del PIC. Con esta sencilla
instruccin, sabremos si el mdulo Bluetooth est recibiendo datos desde el ordenador. De ser as,
estos datos se vuelcan en una variable y el programa acta en consecuencia. Si es un tipo
esperado de dato, realizar una determinada accin, u otra, hasta agotar las posibilidades de
opcin. Si ningn dato coincide con los esperados, es probable que el ordenador le est hablando a
otro mdulo Bluetooth en las cercanas. 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 ha
pulsado el botn predeterminado para el envo de datos (el mensaje de saludo que vemos en el
video), hastarecibir comandos AT desde el ordenador para cambiar la configuracin de algunos
parmetros de funcionamiento del mdulo. Es decir, no vamos a enumerar aqu todas las cosas que
pueden realizarse en un enlace serie entre un ordenador y un PIC, pero al menos queramos
explicarte con palabras la estructura del programa (que en definitiva termina siendo igual a una
comunicacin 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 accin. Estas son: leer el termmetro y
enviar 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, ya
sabemos que es una aplicacin trivial, sin sentido y que podramos haber utilizado el desborde
delTMR0 para ello, pero no olvides que estamos practicando, experimentado, aprendiendo y que
este tipo de rutinas puede ser til en cualquier momento para resolver eventos que no puedan dejar
de atenderse u observarse en la forma cclica en que activamos el LED rojo. Tambin puede ser til
cuando ya has agotado el uso de todos los timers del PIC.
Entre los enlaces que te ofrecemos al final del artculo, encontrars el listado completo
de comandos AT que te permitirn configurar muchas caractersticas del mdulo RN41. Por
supuesto, una de las ms importantes es darle al mdulo nuestro nombre. Que al aparecer en
escena, no lo haga como una sucesin de letras y nmeros codificados, sino que tenga un nombre
representativo a nuestra aplicacin. Para lograrlo, bastar con abrir el software de comunicacin
serie de nuestra preferencia (por ejemplo, el Hyperterminal) y escribir: $$$, es decir, el smbolo de
pesos, tres veces seguidas. Si el mdulo lo recibe en forma correcta, devolver las
letras CMD seguido por un signo de pregunta, de igual modo que si estuviera esperando nuevas
instrucciones. Luego de esto, escribimos SN, . Nosotros escribimos: SN,NeoTeo y result lo que ves
en el video. El mdulo te devolver un AOK, indicndote que recibi la instruccin, y luego otro signo
de interrogacin. Este proceso se repite hasta que termines de enviar comandos AT al mdulo. Al
finalizar, quitas la alimentacin, la reestableces y listo!El mdulo actuar segn los comandos
enviados.
Atencin aqu! Existen dos tipos diferentes de comandos: unos determinan el funcionamiento
del mdulo (como los que te indicamos recin) y otros le indican acciones en tiempo real. Es
decir, para los primeros debes reiniciar la alimentacin, mientras que para los segundos la accin se
realizar en tiempo real, o sea, cuando t enves el comando AT. En el caso de utilizar un
ordenador como enlace a un dispositivo remoto que posea el mdulo Bluetooth RN41, ser muy
sencillo enviarle los comandos AT de accin. Desde un telfono mvil debers encontrar o elaborar
algn tipo de aplicacin capaz de realizar este trabajo. Aqu tienes una muestra para ver cmo un
telfono mvil detecta el flamanteMdulo Bluetooth NeoTeo.
Nuestro trabajo ahora estar centrado en seguir investigando acerca de las prestaciones que este
mdulo puede ofrecernos. Qu es lo primero que intentaras hacer funcionar en tu ordenador
mvil? El punto es: aplicacin remota que enva datos al ordenador de manera inalmbrica. Por
supuesto, te invitamos a charlar sobre el tema, posibles mejoras, aplicaciones tiles y todo lo que
quieras decirnos en el foro de NeoTeo. All tenemos mucho para charlar y comentar acerca de esta
maravilla del mundo de las telecomunicaciones: el Bluetooth. Te esperamos!
Cdigo del PIC:Bluetooth
RN41:Datasheet
RN41:Comandos AT
Mdulo BluetoothMicroingenia S.L.