lunes, 16 de noviembre de 2009

Tutorial para uso de modulo de bluetooth para microcontroladores


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!

22 comentarios:

  1. 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

    ResponderEliminar
  2. ya que e estado investigando y el bluetooth blue snirf cuesta alrededor de mil pesos

    ResponderEliminar
  3. Hola, que tal?

    El 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!

    ResponderEliminar
  4. oye no tienes algun tutorial de como usar el hyperterminal?

    ResponderEliminar
  5. se 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?

    ResponderEliminar
  6. Hola, que tal?

    Configuraste 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!

    ResponderEliminar
  7. 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)

    ResponderEliminar
  8. Amino 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

    ResponderEliminar
  9. oye una pregunta, hay alguna diferencia en la programacion si se utiliza el modulo rojo? o es exactamente lo mismo?

    ResponderEliminar
  10. Anó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.

    Saludos!

    ResponderEliminar
  11. pregunta....
    qiero 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

    ResponderEliminar
  12. Hola, que tal?

    Tendrias 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.

    ResponderEliminar
  13. hola amigo que tal?
    tengo 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

    ResponderEliminar
  14. No interfieren los protocolos bluetooth en la comunicación serial con usart. ¿como especifico en hyperterminal que es una transmisión serial?

    ResponderEliminar
  15. holaaa me gustaria saber si este programa esta programada en mplab asembler,c18 librerias? gracias

    ResponderEliminar
    Respuestas
    1. Hola, que tal?
      El codigo esta en lenguaje ensamblador.
      Saludos cordiales.

      Eliminar
  16. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  17. Hola, 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.

    ResponderEliminar
  18. holo disculpa quisiera saber como hacer que el modulo sirva hasta que le mande un numero y deje de funcionar con ese mismo numero

    ResponderEliminar
  19. Hola, buenos días tenga usted.
    Tengo 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.

    ResponderEliminar