Modulo de Bluetooth para Microcontroladores
Tutoríal
Material necesario:
1 Modulo de Bluetooth para Microcontroladores de marca Roving Networks
1 PIC16F627A
2 LED
2 resistencias de 330ohms
1 resistencia de 10kohms
1 header macho
1 Protoboard
Alambre para protoboard de diferentes colores
El alambrado debe quedar de la siguiente manera1:
Se proporcionaran las imagenes a tamaño completo a quien las requiera al correo info@cosasdeingenieria.com
Básicamente lo que hacemos es usar la comunicación serial que viene de fabrica en el microcontrolador (modulo USART), ya que de esta manera, el microcontrolador podrá realizar otras tareas aparte de recibir datos seriales.
El microcontrolador tiene configurada su USART a 9600bps a 8bits, sin paridad. al igual que el modulo. Esta programado para recibir datos seriales uno por uno, y si le llega el dato ASCII que corresponde al numero “1”, enciende uno de los LEDs si le llega el dato correspondiente a “2”, entonces enciende el otro LED, y si le llega el dato correspondiente a “A” apaga los dos LEDs.
En seguida el código para el microcontrolador.
#INCLUDE
CBLOCK 0X20
NUM1, NUM2, NUM3, DATO ;declaración de registros
ENDC
ORG 0X00 ;declaro el origen del programa en la dirección de reset
GOTO INICIO ;voy al inicio real del programa
ORG 0X04 ;declaro el vector de interrupción
;******************C O D I G O D E I N T E R R U P C I O N************************************
MOVF RCREG,W
MOVWF TXREG
MOVWF DATO
BCF PIR1,RCIF
RETFIE
;*****************************************************************************************
;******************C O N F I G U R A C I O N D E P U E R T O S********************************
INICIO: BSF STATUS,RP0 ;CAMBIO A BANCO 1
BCF TRISB,3 ;CONFIGURO PORTB,3 Y PORTB,4 COMO SALIDA
BCF TRISB,4 ;PARA LOS LEDS INDICADORES
BSF TRISB,1 ;CONFIGURO PORTB,1 Y PORTB,2 PARA QUE
BSF TRISB,2 ;FUNCIONE EL MODULO USART
BCF STATUS,RP0 ;CAMBIO A BANCO 0
CALL USARTINI ;LLAMO A LA SUBRUTINA QUE CONFIGURA
;AL MODULO USART
START: MOVF DATO,W ;COLOCO EL CONTENIDO DEL REGISTRO
SUBLW "1" ;DATO EN W Y LO COMPARO CON UNA
BTFSS STATUS,Z ;LITERAL
GOTO NEXT ;SI NO ES IGUAL, VA A LA SIGUIENTE PREGUNTA
bsf PORTB,4 ;SI ES IGUAL, ENCIENDO PORTB,4
CLRF DATO ;BORRO EL CONTENIDO DEL REGISTRO
GOTO START ;Y REGRESO AL INICIO DEL CODIGO
NEXT: MOVF DATO,W ;COLOCO EL CONTENIDO DEL REGISTRO
SUBLW "2" ;DATO EN W Y LO COMPARO CON UNA
BTFSS STATUS,Z ;LITERAL
GOTO NEXT1 ;SI NO ES IGUAL, VA A LA SIGUIENTE PREGUNTA
bsf PORTB,3 ;SI ES IGUAL, ENCIENDO PORTB,3
CLRF DATO ;BORRO EL CONTENIDO DEL REGISTRO
GOTO START ;Y REGRESO AL INICIO DEL CODIGO
NEXT1: MOVF DATO,W ;COLOCO EL CONTENIDO DEL REGISTRO
SUBLW "A" ;DATO EN W Y LO COMPARO CON UNA
BTFSS STATUS,Z ;LITERAL
GOTO START ;SI NO ES IGUAL, REGRESA A START
CLRF PORTB ;SI ES IGUAL, BORRA TODO PORTB
CLRF DATO ;BORRO EL CONTENIDO DEL REGISTRO
GOTO START ;Y REGRESO AL INICIO DEL CODIGO
;*****************************************************************************************
;*************C O D I G O D E I N I C I A L I Z A C I O N D E L A U S A R T********************
USARTINI: BSF STATUS,RP0
MOVLW 0X24
MOVWF TXSTA
MOVLW D'25'
MOVWF SPBRG
BSF PIE1,RCIE
MOVLW 0XC0
MOVWF INTCON
BCF STATUS,RP0 ;BANCO 0
MOVLW 0X90
MOVWF RCSTA
RETURN
;*****************************************************************************************
END
Una vez programado el microcontrolador, y alambrado el circuito, basta con hacer el emparejamiento bluetooth con el modulo, de la misma manera con que se hace para un teléfono celular, manos libres o cualquier otro dispositivo bluetooth, una vez que se haya hecho este, la pc regresara un puerto com al cual estará asignado nuestro modulo.
Con esta información, abriremos un programa como el Hyperterminal en Windows y solamente le pediremos que se conecte a ese puerto.
Ya con esos pasos aparecerá una ventana en la cual se pueden escribir caracteres y estos al momento de ser escritos, serán enviados automáticamente al modulo de bluetooth.
Este, a su vez los mandara al microcontrolador y este, hara las funciones para las cuales fue programado.
Parece fácil?
Si, lo es y mucho.
Gracias a este modulo podemos usar el microcontrolador con dispositivos bluetooth de una manera muy rápida y con una curva de aprendizaje muy corta.
Cabe destacar, que esta es la manera mas simple de usar el modulo, mas adelante, nos adentraremos mas en sus comandos y posibilidades.
les dejo en este link la version descargable con la imagen mas nitida y grande y el codigo mejor organizado
Saludos Cordiales!
esta muy interesante tu post yo soy de mexico,veracruz lo malo es el precio de la interfaz bluetooth dime no se podria comprar un simple adaptador de bluetooth que solo cuesta 50 pesos y hacer una buena progrmacion para que no saliera tan caro
ResponderEliminarya que e estado investigando y el bluetooth blue snirf cuesta alrededor de mil pesos
ResponderEliminarHola, que tal?
ResponderEliminarEl modulo tiene ese costo ya que es una tarjeta de desarrollo diseñada especialmente para el desarrollo de aplicaciones, en el caso de que quisieras algo mas económico.
Existen otra versión de este mismo modulo que tiene un precio mas accesible pero no lo vendemos por la dificultad que se tiene para soldarlo y muchos clientes lo compran por barato pero terminan dañandolo al tratar de instalarlo o inclusive lo dañan al no saber hacer un cambiador de niveles de voltaje para usarlo en circuitos de 5V.
Como veras es una cuestión de perspectivas. Sin embargo si existen opciones en el mercado para diferentes presupuestos.
Saludos!
oye no tienes algun tutorial de como usar el hyperterminal?
ResponderEliminarse necesita tener algun codigo en el hyperterminal para que funcione?? tengo todo conectado exactamente como esta y pic con el programa que dejaste, pero el hyperterminal no me deja escribir caracteres, es decir aparece la hoja en blanco pero al momento de presionar alguna tecla no pasa nada, no aparece nada en la hoja, a que crees q puede deberse?
ResponderEliminarHola, que tal?
ResponderEliminarConfiguraste bien los bits de configuracion del pic?
ya revisaste este post?
http://foros.mexatronica.com/viewtopic.php?f=22&t=37&p=231&sid=18aa557f290a4861676dc6b4036971ae#p231
Ahí viene el checklist para los problemas mas comunes, saludos!
hey q onda ya probe todos los puntos del link y al parecer la parte que me esta fallando es la del pic, pero ya lo probe con otro programa y me funciono, me preguntaba si podias subir el archivo .Hex q usas en el video si no es mucha molestia, igual tenia dudas con el voltaje, lo probe usando 3.7v pero no funcionaba solo funciono con 5v (el modulo bluetooth)
ResponderEliminarAmino me funciona para nada este codigo: tengo un Blesmirf que lo aquiri de sparkfun.com segun averiando no es igual a bluetooth mate mi pregunta es si es igual a Bluesmirf Gold
ResponderEliminaroye una pregunta, hay alguna diferencia en la programacion si se utiliza el modulo rojo? o es exactamente lo mismo?
ResponderEliminarAnónimo, los módulos rojos y verdes son iguales en funcionalidad, a veces cambia el orden de los pines, pero solamente eso, el resto es igual.
ResponderEliminarSaludos!
pregunta....
ResponderEliminarqiero tratar de integrar este módulo de bluetooth a un FPGA, es posible hacer esto???.
y quiero establecer una conexión con un iphone 4, este módulo reconocerá el dispositivo???.
wi-fi no será mejor opción??? y si es que si pido que me faciliten información por favor....
Gracias dejo mi correo para recibir consejos... gracias nuevamente.....
houc_darko89@hotmail.com
Hola, que tal?
ResponderEliminarTendrias que habiitar un puerto serial en el FPGA, pero si se puede hacer.
El modulo se conecta a cualquier dispositivo con bluetooth que soporte el perfil SSP, tendría usted que revisar si el iPhone lo soporta.
El definir si usar WiFi ó bluetooth en su proyecto depende de usted, ya que nosotros no conocemos la necesidad de su aplicación.
Que tipo de información necesitas?
Toda la información que proporcionamos la ofrecemos por medio del blog o en nuestro foro de atención y soporte, ya que la función de los mismos es la de compartir información.
Saludos cordiales.
hola amigo que tal?
ResponderEliminartengo un problema espero me puedas ayudar, mira compre un modulo bluetooth JY-MCU BT_BOARD V1.02 y pucha cuando hago el emparejamiento no oscila el led ni hace nada pero si me sale que ya emparejo y cuando quiero dirijir desde matlab a traves del COM3 me dice que no se puede, tambien entro a administrador de dispositivos y si aparece los puertos COM3 Y COM4
Hola, que tal?
EliminarDonde lo compraste?
Saludos!
para el PIC16F877A
EliminarNo interfieren los protocolos bluetooth en la comunicación serial con usart. ¿como especifico en hyperterminal que es una transmisión serial?
ResponderEliminarholaaa me gustaria saber si este programa esta programada en mplab asembler,c18 librerias? gracias
ResponderEliminarHola, que tal?
EliminarEl codigo esta en lenguaje ensamblador.
Saludos cordiales.
Este comentario ha sido eliminado por el autor.
ResponderEliminarHola, me gustaria saber como poder configurar el modulo para hacer una comunicacion piconet, tengo entendido que tiene un maximo de 7 conexiones a esclavos, en modo maestro.
ResponderEliminarholo disculpa quisiera saber como hacer que el modulo sirva hasta que le mande un numero y deje de funcionar con ese mismo numero
ResponderEliminarHola, buenos días tenga usted.
ResponderEliminarTengo una duda, el código del PIC que usa para inicializar y configurar las comunicaciones con el modulo bluetooth siempre es la misma para otros pics? y si no lo es para otros... ¿para cuales?
Saludos y gracias de antemano, soy nuevo en esto y la verdad me ayudó mucho.