Microcontroladores , Open Hardware , Open Software e Tecnologia em Geral
Blog do Je » Page 'Modem Bluetooth no Arduino'

Modem Bluetooth no Arduino

Realizei alguns testes com o módulo bluetooth fornecido pela Seeedstudio. O módulo funcionou de primeira sem nenhum problema. Para testa-lo, usei a minha velha Palm Tungsten T5, de quem não consigo me livrar mesmo depois do N95. Construi um exemplo bem simples de comunicação através da porta serial default do Arduino, que me permitiu avaliar a transmissão simultaneamente com a recepção:

/*
Module: Blue1
Author: Jeronimo da Silva Avelar Filho
Date: 08/10/2009
Description:
Teste do modulo bluetooth conectado a porta serial hardware do Arduino
- O Arduino a cada 1 segundo envia um valor inteiro para testar
a transmissão
- Arduino verifica a recepção de caracteres , se vier '1' acende o led
ligado ao pino 13. Se chegar '2' apaga o led ligado ao pino 13
*/

int char_in = 0;         // byte recebido na porta serial
int led = 13 ;
int out = 0 ;
unsigned long tempo ;
unsigned long tempoEspera = 1000 ; // 1000 milisegundos = 1 segundo
void setup()
{
  // configura a serial para 115200 bps:
  Serial.begin(115200);
  pinMode(led, OUTPUT);   // configura pino 13 como saida para o led
  tempo = millis() ;      // pega a qtd de milisegundos desde que ligou o arduino
}

void loop()
{
  verifica_entrada() ; // verifica se recebeu caracteres
  envia_mensagem() ;   // envia inteiro pela serial
}

void envia_mensagem() {
  // se ja se passou 1 segundo envia o inteiro e incrementa o seu valor
  if ((millis() - tempo ) > tempoEspera) {
    Serial.println(out++) ;
    tempo = millis() ;
  }
}
void verifica_entrada() {
  // se tem um byte na porta serial
  if (Serial.available() > 0) {

    // pegue o caracter que chegou
    char_in = Serial.read() ;  

    // verifique se o caracter é valido
    if(char_in != -1) {
      switch (char_in) {
        case '1':
        // se for o caracter 1 ligue o led
          digitalWrite(led,HIGH) ;
          break;
        case '2':
        // se for o caracter 2 desligue o led
          digitalWrite(led,LOW) ;
          break;
      }
    }
  }
}

O modulo apresenta uma dificuldade : ele é fornecido em formato SMT e precisei criar uma breakout board para poder usá-lo. Se fosse um bluesmirf da Sparkfun viria tudo montadinho e pronto para usar mas teria custado umas tres vezes mais do que este módulo.

O módulo funciona com 3.3 v mas é tolerante a i/o em 5 volts desde que alimentado em 3.3 v. O seeduino possui chaves que pemitem configura-lo para alimentação em 3.3v onde utiliza seu regulador interno para gerar esta voltagem, a partir dos 5 volts da alimentação principal externa ou via USB. Muito prático.

O unico problema deste modem é a documentação muito fraquinha, mas como usa chip da CSR eu acredito que vou encontrar os comandos que faltam, como verificar se está conectado, dispositivos existentes na area, conexão a um dispositivo especifico, qualidade do sinal, etc. Em tempo, a senha de pareamento default é “1234″ e não “0000″ como escrito no site.

Links:
Modulo bluetooth da Seeedstudio
Seeduino 168

Download:
Arquivo Eagle com versão preliminar do esquema da breakout board
Biblioteca Eagle para o módulo Bluetooth

Gostou deste post ? Divulgue !
delicious digg google
stumbleupon technorati Yahoo!

20 commentarios to “Modem Bluetooth no Arduino”

  1. Muito legal este módulo BT ! Affordable ? Sempre vi com preços elevados.

  2. Marcelo,
    Chega barato : custa US$ 19,50 e o frete da china para o brasil é de US$ 3,00 dolares via correio com tracking.

  3. Parabéns Je!

    Estamos fazendo isso mas com outros hardwares. quanto pagou no seu modulo bt?

  4. Wagner , dá uma olhada na resposta anterior.
    Abs

  5. ficou massa a breakout.
    estou com um modulo idêntico a esse, mesmo chipset., estou fazendo a breakout dele.

    andei pesquisando e encontrei nesse forum algumas coisas a mais sobre o bluesmirf que pode ser que funcione nesse modulo. Já testou?

    abraços

  6. esqueci de postar o link do forum. http://forum.sparkfun.com/viewtopic.php?p=42073

  7. Valeu pela dica Bruno, vou verificar se funcionam.
    jeronimo

  8. Boa noite Je! Então tenho pensado em adquirir um modulo bluetooth pra substituir o usb do meu arduino, esse modulo consegue fazer essa função, não? Ah, fiquei com outra dúvida, o link que vc postou redirecionou pra um “Serial port bluetooth module (master)” eu achei outro no site pelo mesmo valor só que slave, vc sabe me dizer a diferença?
    Valeu, abraços e parabén pelo blog!!!!

  9. Leandro, Não testei ainda mas vou verificar. Quanto ao link , na epoca que comprei o meu modulo ainda não havia a distinção entre master e slave.

  10. Jeronimo, você somente fez testes usando o palm?
    estou aqui tentando conectar o computador ao adaptador e tah um sufoco só

    abraços

  11. Bruno ,
    Usei inicialmente a T5 porque o programa de teste de bluetooth que tenho nela é muito simples para testes rápidos, Neste momento estou testando com um celular N95 com python , sem problemas. Depois irei testar com Linux e python e colocarei os resultados.

  12. Jeronimo, olhando rapidamente as imagens do teu circuito vi que tem coisas a mais que o meu. No meu somente liguei tx, rx vcc e gnd. O seu parece que tem algumas coisas alem. Pode me passar o esquema?

  13. Bruno.
    O esquema está disponível para baixar e está no post, abaixo do titulo “Download:”. É um arquivo zip contendo o esquema e a pcb e para abrir use o programa EAGLE CAD ( download em http://www.cadsoftusa.com/ ).
    Boa sorte !

  14. Fala Jê, entrei em contato com o pessoal da Seed Studio perguntando com qual modelo poderia conectar meu arduino com o PC e enviar programas para ele, recebi a seguinte resposta: “The slave module should be OK.
    Serial data communication well.
    But the current version Bluetooth module cannot program Arduino.”
    ou seja, segundo eles, posso usar o módulo Slave para a comunicação, porém não dá para transferir os programas para o Arduino, parece que aquela minha idéia não vai rolar!! :(
    Abraços, se vc, ou alguém, conseguir me dá um toque!!
    Valeu!!! ;)

  15. Puxa que legal! Tô aqui com meu kit Arduino e doida pra mexer! Já vi que vou frequentar esse blog :)

  16. Nos temos tambem um parecido aqui no BRASIL.

    http://www.basic4ever.com/bluetooth.shtml

  17. Miguel,
    Muito boa a sua dica de modulos bluetooth aqui no Brasil.

  18. Boa tarde Je!

    Cara tem como fazer um tutorial desses utilizando o WT11 da Bluegiga?

    Ou mesmo me indicar algum já feito pode ser em inglês mesmo!

    Eu sou extremamente iniciante no área do arduino porém estou desenvolvendo um projeto que involve comunicação bluetooth.

    Nas minhas pesquisas eu encontrei o WT11-E-AI3 (que é o mesmo chip bluetooth utilizado pelo ArduinoBT) por apenas U$29.33 na semiconductorstore.com que pra quem não sabe é uma loja online que tem um braço aqui no Brasil!!

    Link do Chip:
    http://www.semiconductorstore.com/cart/pc/viewPrd.asp?idproduct=42055

    Meu interesse nesse chip é o seu firmware que tem muitas funções e também pela biblioteca de códigos que pode ser encontrada no site oficial da arduino!

    Tem como você me ajudar cara?

    Mais uma dúvida com esse chip que você utilizou tem como conseguir uma lista dos dispositivos próximos e seus respectivos RSSI’s ?

    Muito Obrigado!

  19. Boa tarde Je!
    Parabéns pelo projeto! Muito interessante!
    Estou utilizando a tecnologia bluetooth no meu trabalho de diploma da universidade.
    Gostaria de saber como você pareou o palm com o arduino+BT ? E como você faz para um programa enviar continuamente uma informação serial para um arduino+BT?
    Obrigado!

  20. O Palm Tungsten tem funçoes para pareamento e discovery de dispositivos perto dele. Para testar usei um programa freeware para Palm chamado BTSerialPro. No Arduino é só ficar lendo a porta serial , ele ignora que tem uma interface bluetooth ligado nela.

Deixe um comentario

XHTML - Voce pode usar:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Topo da página / Assinar para receber novos Posts (RSS)