sexta-feira, 25 de fevereiro de 2011

Módulo Bluetooth ( Serial Bluetooth RF Transceiver ) e aplicações

O módulo (retirado do GoodluckBuy)

Em um Post do Blog "Badulaques da China" (aqui) tive o primeiro contato com tais módulos de comunicação, decidi me arriscar e comprei 2, foram enviados dia 23/jan e recebi 23/fev, após alguns testes resolvi postar aqui o que já aprendi.

Aparentemente esses módulos ja são bem difundidos entre os hobbystas pelo mundo (eu estava atrasado!) e por isso são vendidos em diversas versões e em vários preços, mas a grande maioria tem em comum este mesmo layout e o mesmo chip base (o CSR Bluetooth, da Cambridge Silicon Radio Ltd.), dentre os sites em que procurei (ebay, mercadolivre, webstores especializados, etc) o GoodLuckBuy foi o que apresentava o menor preço ($6.35), o que foi fator decisivo para a compra, mesmo que a versão vendida seja a com menos funcionalidades (apenas modo escravo, o que impossibilita a conexão entre 2 módulos).


Aparentemente por compartilharem o mesmo hardware, tais módulos "apenas escravo" podem receber uma atualização de firmware para fornecerem as funções extras (quando descobrir como, faço um guia aqui), mas mesmo sendo a versão mais simples, estes módulos já permitem uma série de configurações e possibilidades de projeto.

Antes de tudo tive que arranjar um modo de fixar o módulo em alguma placa e conseguir fazer as conexões elétricas, uma opção seria encomendar uma PCB, mas demoraria muito e sairia caro, então improvisei (gambiarrei) um suporte com fita dupla face (do tipo espuma) e uma placa universal, fazendo as ligações elétricas com um fio bem fino de 30 AWG (aquele utilizado em reparos de PCBs), o resultado ficou razoavelmente bom e até mesmo superou a minha expectativa:


Resolvi começar testando a comunicação com o módulo através do cabo, para isso usei o próprio conversor USB-serial presente no launchpad, já que ele ja fornece a alimentação e um canal serial com os níveis de tensão certos (3.6v) , também foi bem útil o protoshield que montei para o launchpad (mostrado no post anterior), evitando aquela confusão de fios ligando a placa a uma protoboard.


Quando o módulo é ligado ele fica no estado "aguardando conexão" (com o led piscando), é apenas nesse estado que ele aceita os comandos de configuração, para configura-lo você deve utilizar comandos AT, como a loja aonde comprei os meus não fornece nenhuma informação de modelo ou datasheet e não veio nenhum tipo de informação junto, dei uma procurada na internet e sai testando alguns comandos, aparentemente o modulo vendido por este site é o mesmo que o nosso módulo, aceitando exatamente os mesmos comandos: testar a comunicação, mudar o nome, mudar a senha e mudar o baud rate (listados no site em questão).

Configurei meu módulo trocando o nome / senha e comecei a testar a comunicação por Bluetooth, um detalhe interessante para quem utiliza Windows Seven é que depois de adicionar o módulo como um "dispositivo", o windows apenas se conecta com ele quando a porta serial referente (a porta serial virtual do bluetooth) é aberta, e a conexão é encerrada logo após a porta serial ser fechada pelo programa que a utilizou, para descobrir qual porta serial "virtual" o windows associou ao seu módulo, vá nas configurações do dispositivo adicionado, no meu caso o módulo se chama "BTSD" (renomeado através dos comandos AT) e o windows associou a ele a porta COM3:


Depois que tudo foi configurado, agora é só desenvolver, acabei me empolgando e fiz um pequeno projetinho para testar a comunicação serial por bluetooth entre o PC e o uC, e gravei um vídeo com o resultado:


Bom, por enquanto é isso
Até mais ;)

29 comentários:

  1. Já foi o suficiente para esclarecer algumas dúvidas minhas. Obrigado!

    ResponderExcluir
  2. Não por isso

    É bom saber que minhas opiniões e análises são úteis para outras pessoas :)

    ResponderExcluir
  3. Olá, será que consigo por exemplo utilizar esta plaquinha para transformar uma porta serial em bluetooth? grato

    ResponderExcluir
  4. Gustavo poderia realizar esse teste conforme o Linneu falow.

    Acessar um dispositivo serial via bluetooth.

    ResponderExcluir
  5. Olá Linneu e Jose!
    como assim? vocês gostariam de conectar algum equipamento que tenha conexão serial com um PC ou celular por Bluetooth?
    acredito que seja possível sim, uma vez que depois que se estabelece uma conexão entre o computador/celular e a placa, ela se torna uma "extensão sem fio" de uma porta serial do computador.. não necessitando de nenhum comando extra por parte da serial do equipamento (desde que o módulo já tenha sido previamente configurado, como expliquei no post)

    ResponderExcluir
  6. Opa, eaí Gustavo...
    Eu estou iniciando em microcontroladores, e comprei um launchpad da ti tbm, igual o seu...
    Teria como vc disponibilizar o código fonte daquele video que vc conecta o msp430 com o pc via bluetooth!? Se possivel, envie no meu email... ricardoperazza@hotmail.com
    Vlw abraço!

    ResponderExcluir
  7. onde posso comprar esse módulo bluetooth?tenho um msp 430 e queria acionar uma carga á distancia com esse módulo desde já agradeço.

    ResponderExcluir
  8. Muito bom esse artigo! vou comprar para brincar com esse módulo! qual a documentação e aplicativos vc tem para controlar diretamente a porta? precisou desenvolver? abs

    ResponderExcluir
  9. Ricardo:
    Cara na verdade acredito que não tenho mais o source que estava rodando nesse msp430 do vídeo! mas que eu me lembre, peguei um código de exemplo de comunicação serial em algum lugar e só adicionei uma rotina de temporização pra controlar o servo! não foi muito difícil

    Anonimo:
    existem diversos sites que vendem, inclusive o e-bay, mas este meu eu comprei no goodluckbuy.com, como eu relatei no começo do post

    Felipe:
    Não precisei desenvolver soft não! usei um programa de terminal serial que encontrei na internet, chamado "hercules", é só um executável de 1.5mb que cumpre bem a função para ler/enviar as portas seriais do pc.

    ResponderExcluir
  10. Ola gustavo muito interessante seu post,,,
    Estou com um projeto,,,mas por incrivel que pareça o mais dificil está sendo mudar o nome ou o baud... poderia me explicar passo a passo como fez isso ?!Desde já agradeço..

    ResponderExcluir
  11. Gustavo, primeiramente parabéns pelo projeto.

    Eu gostaria de desenvolver um projeto semelhante porém creio eu que menos complexo.

    Gostaria de ligar o módulo para ser controlado através de uma aplicação do celular.

    Ele vai ficar ligado em uma espécie de campainha e qdo eu conectar ao módulo através de uma senha eu possa acionar a campainha por 1 segundo.

    Vc tem idéia de como eu posso fazer isso??

    Muito obrigado.

    Alexandre

    ResponderExcluir
    Respostas
    1. Olá!

      Essa ideia é totalmente possível com esse hardware, você precisaria montar um circuito com um microcontrolador ligado ao modulo para acionar essa sua saída quando recebesse um certo comando pela serial (enviado pelo celular através do modulo bluetooth), a parte mais complicada seria desenvolver o software para o celular, já andei pesquisando sobre desenvolvimento JAVA mobile (J2ME) e não é nada impossível, só exige algum tempo de aprendizado, se o celular em questão for Android acredito que fique mais fácil, pois já ouvi falar de programas prontos para enviar e receber dados pelo protocolo serial do bluetooth..

      Excluir
  12. Olá gustavo sabe dizer se posso fazer comunicação entre 2 uC com esse modulo, sem a utilização do pc?? Te mais e vlw aee pelo post!!

    ResponderExcluir
    Respostas
    1. Olá Ljunior!

      Então, como eu citei no post, esse modelo vendido pelo GoodluckBuy aceita apenas "modo escravo", ou seja ele não é capaz de procurar por outros dispositivos para se conectar e iniciar uma conexão, ficando sempre no aguardo de alguém se conectar a ele, para se fazer a comunicação entre 2 uC através de 2 módulos BT você precisaria que ao menos um deles tivesse "modo mestre", é possível encontrar em diversos sites por aí módulos parecidos com esse mas que possuem essa função, porém serão um pouco mais caros..

      Excluir
  13. Gustavo,
    Gostaria de saber se você consegue fazer a comunicação sem o microcontrolador. apenas lingado os pinos 12 e 13 e o pino do led. Eu consigo encontro o dispositivo que esta com o nome linvor, conecto ele solicita a senha 1234, Estabiliza o led para de piscar, mas quando digito algo no terminal nao acontece nada. Digitei AT como encontrei em varios site mais nada acontece.
    Estou querendo utilizar um arduino.

    ResponderExcluir
    Respostas
    1. Olá Junior!

      Então, no caso dos comandos AT é porque o modulo só pode ser configurado pela serial física (pinos TX e RX) e somente quando não está com nenhuma conexão estabelecida pelo bluetooth, quando eu configurei utilizei um conversor USB serial 3.3V para comunicar com o modulo e testar a comunicação com um adaptador bluetooth ligado ao próprio PC (nesse caso o adaptador usb serial era uma porta COM e o adaptardor bluetooth era outra, e testava a comunicação entre as duas).

      Caso você só queira testar o funcionamento do módulo, ligue um jumper entre o TX e o RX do módulo e teste a comunicação por bluetooth, com isso tudo o que voce enviar pela serial do bluetooth deverá retornar

      Excluir
  14. Gustavo,
    como utilizar os comandos AT? 3.3v no PIO3? da para usar o hyperTerminal? qual programa vc usou? utilizou esses comandos atraves da serial do PC ou pela conexao bluetooth? Obrigado.

    ResponderExcluir
    Respostas
    1. Olá Tarcizio!

      Os comandos AT devem ser enviados através da serial física do módulo, e não pelo bluetooth, até mesmo porque o módulo só aceita os comandos AT quando não está conectado pelo bluetooth, acredito que o hyperterminal possa ser usado sim, mas eu utilizei um outro programa (como expliquei no post).

      Excluir
  15. É possivel através do celular via bluetooth ativar o módulo para que este ative o microcontrolador?

    ResponderExcluir
    Respostas
    1. Olá!

      é possível sim, mas voce precisa que a aplicação no celular mande os comandos pelo perfil serial do bluetooth após a conexão com o módulo

      Excluir
  16. ola amigo, sou técnico eletrônico mas sei pouco ou quase nada sobre bluetooth, quero fazer um projeto onde vou ligar dois transmissores blue em um PC, mas preciso que cada transmissor tenha 3 sensores, e quando um dos sensores for acionado ele envia o codigo referente ao sensor, poderia me dar uma ajuda? endrigo27 g mail co m

    muito obrigado

    ResponderExcluir
    Respostas
    1. Olá Endrigo!

      não tenho certeza se o PC se conecta a mais de um módulo ao mesmo tempo, mas acredito que muito provavelmente sim, cada módulo sendo associado a uma porta COM, nesse caso, o seu programa deveria monitorar cada uma dessas portas COM referentes a cada transmissor para receber o código do sensor acionado

      Excluir
  17. Amigão, parabéns pelo post, me esclareceu muita coisa!! No entanto ainda tenho umas duvidas. Eu tenho um módulo que nem este, preciso mudar sua BaudRate, mas não tenho um conversor USB-Serial TTL. Vc sabe se posso fazer estas coonfigurações usando um Arduino UNO??? Obrigado!

    ResponderExcluir
    Respostas
    1. Boa noite Adriano!

      não possuo o código escrito para arduino para isso, mas não deve ser problema implementa-lo, ainda mais considerando a facilidade de programação para arduinos, o que o seu arduino deverá fazer é enviar para o pino RX do módulo a mensagem "AT+BAUD2" (sem as aspas) por serial enquanto o módulo não está com nenhuma conexão serial aberta pelo bluetooth (ou seja, quando o led está piscando) para setar a conexão em 9600, isso deverá gerar uma resposta do tipo: OK9600

      pronto, a velocidade estará configurada =)

      só tome cuidado com a alimentação do módulo, que deverá ser em torno de 3.3V

      Excluir
  18. Gustavo, pelo amor de Deus me ajuda ai cara! kkk
    É o seguinte, comprei um módulo bluetooth JY-MCU v1.02,
    eu consegui comunicar com ele pelo HyperTerminal, joguei todos comandos e tive retorno, AT+VERSION = linfor1.5...
    O problema é que nenhum celular consegue "enxergar" o módulo, é como se ele não tivesse ligado, e também ele fica com seu LED vermelho piscando sem parar.
    Faz dois dias que comprei ele, o que eu devo fazer? kkk

    ResponderExcluir
    Respostas
    1. Olá Bruno!
      o led está piscando mas o modulo não é encontrado?
      já tentou encontra-lo com outro celular ou com o pc?
      o seu módulo tem a opção de master?
      o que a documentação diz?

      Excluir
    2. Isso exatamente, o led está piscando mas o modulo não é encontrado.
      Já tentei com outros celulares.
      Opção master? Como sei se ele tem essa opção?
      Não tenho documentação.

      Você pode me adicionar no Facebook por favor?
      http://www.facebook.com/bruno.sudario

      Vlew cara!! :D

      Excluir
  19. Gustavo, me ajude aí !
    Tenho um bluetooth, USB, que roda um programinha de conexão com telefones celulares. Pergunto: é possível fazer uma cópia ( ISO ), e instalar em outro bluetooth USB, para ter as mesmas funcionalidades que o anterior.

    ResponderExcluir
  20. É possível também utilizar um programa.ino de configuração da taxa de transmissão do modem bluetooth de 9600 para 19200 (mais rápido). O tutorial de os programas estão disponíveis no link: https://dl.dropbox.com/u/101922388/ModemBluetooth19200.zip e no link: https://dl.dropbox.com/u/101922388/sanusbee.zip
    Ligações dos pinos do arduino com o modem bluetooth :
    modem-----------Arduino
    RX--------------- PINO 3
    TX----------------PINO 2
    GND---------------GND
    VCC-----------------5V

    ResponderExcluir