Pages: [1] 2   Go Down
Author Topic: usando 2 modulos Bluetooth  (Read 3294 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 16
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Estou fazendo um protótipo de um carrinho, a ideia é que ele funcione de forma autonoma para se deslocar!
Nesse trabalho escolhi colocar 2 arduinos, cada um com Bluetooth! E preciso fazer com que os dois se comuniquem pois um será o carro e outro uma central que monitora o ambiente e diz para onde o carro deve ir!
Problemas, sou iniciante! E preciso aprender primeiramente como trocar msg entre arduino e PC! Pois liguei o módulo corretamente nos pinos! Eu fiz um código que faz o Led ligar e desligar, e funciona qnd ligado na USB!
Porem qnd eu tiro o USB ligo outra fonte de pilhas 9v, consigo parear porem qnd abro o monitore envio a mesma msg a programa trava como se não conseguisse conversar com o arduino! É necessário declarar alguma coisa para utilizar a comunicação com Bluetooth?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 16
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

consegi usar o Bluetooth do PC para trocar Info com o arduino! Pelo q vi é frescura do Windows para conectar e liberar a porta certa! Agora realmente o problema! Q comando usara para fazer um arduino se conectar ao outro pelo Bluetooth?
Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 510
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Qual módulo ou shield bluetooth você esta usando? Pergunto porque para que um arduino conecte-se a outro um precisa estar configurado como master (capacidade de solicitar conexão) e o outro como slave.

Achei esse post, só passei os olhos por cima e parece ter o que precisas: http://blog.webtronico.com/?p=727

edit: encontrei esse outro http://www.instructables.com/id/BlueTooth-Link-with-auto-detect-connect/?ALLSTEPS

Se tiver dúvidas mais específicas é só dizer
« Last Edit: April 28, 2013, 08:49:39 pm by Mortis » Logged

Curitiba PARANÁ
Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Olá a todos... tbm me encontro nesta situação, querendo utilizar dois modulos bluetooth para um protótipo de robô quadrupede e outro hexápode.

o código é simples, dentro do arduino, para se comunicar através de um modulo bluetooth

Code:
void setup(){
pinMode(13,OUTPUT);
Serial.begin(9600);
}
void loop(){
char c = Serial.read();
if(c == '1') digitalWrite(13,HIGH);
else if (c == '0') digitalWrite(13,LOW);
}


mas como o Mortis disse, precisa ser configurado o modulo como master e outro como slave, assim, encontrei um link que diz respeito a isto... porém... não está muito bem claro como faz essa configuração. http://blog.webtronico.com/?p=727

Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 510
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Fala ai GSCANDELARI,

O módulo que uso é apenas slave, para mudar o nome, baudrate, pin, eu uso comandos como exemplificado neste post do dx.com http://club.dx.com/forums/forums.dx/threadid.1166641, ou seja, é só imprimir na serial o comando AT.

Mas como pode ver no código do link do instructables, aquele módulo é diferente, não recebe comando padrão AT, deve ter uma tabela de comandos específica.

Veja o código que deste post: http://arduino.cc/forum/index.php/topic,154708.0.html. Só passei o olho, mas mostra como escrever os comandos rs
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 16
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

O modulo que estou usando é Esse http://produto.mercadolivre.com.br/MLB-477682323-modulo-transceiver-bluetooth-rs232-ttl-para-arduino-pic-_JM . Realmente eu vi algo sobre por em modo Master e slave! Mas nao achei nada que me ajudasse a configurar! Vou dar uma olhada nesses links q vcs postaram! Tô usando net no celular 2g, até religarem minha net! Mas vou ver se consigo ver td q vcs postaram! Valeu...
Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 510
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

No anuncio tem três imagens, de dois módulos diferentes. Eu tenho aqui um igual a este:

mas ela é só slave =/

Tem alguma informação no verso da tua placa? Tipo MCU ou algo mais? Como você conseguiu parear com o PC, qual nome apareceu? Linvor 1.5 ou o que?

O que eu tenho é exatamente este hardware http://dx.com/p/jy-mcu-arduino-bluetooth-wireless-serial-port-module-104299 só que a versão é 1.05
« Last Edit: April 29, 2013, 07:03:51 pm by Mortis » Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 510
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Creio que preciso de umas horas de sono, pois não vi o obvio, nas respostas o vendedor diz que é HC-06. Confirme isso, pois o HC-06 é apenas slave.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 16
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

A versão que tem atrás da placa é a 1.05, acho q dancei nessa!
Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 510
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sinto muito pela má notícia.

Mas para ter certeza, usa a biblioteca SoftwareSerial e use o comando "AT+VERSION" para checar a vesão
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 16
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Fala ai GSCANDELARI,

O módulo que uso é apenas slave, para mudar o nome, baudrate, pin, eu uso comandos como exemplificado neste post do dx.com http://club.dx.com/forums/forums.dx/threadid.1166641, ou seja, é só imprimir na serial o comando AT.

Mas como pode ver no código do link do instructables, aquele módulo é diferente, não recebe comando padrão AT, deve ter uma tabela de comandos específica.

Veja o código que deste post: http://arduino.cc/forum/index.php/topic,154708.0.html. Só passei o olho, mas mostra como escrever os comandos rs

Eu não entendi muito bem como usar esses comandos AT, pode por um exemplo para que eu consiga entender, eu fiz um codigo baseado no primeiro link, mas não mostrava nada para mim! não sei tb se estou conectando errado o arduino, pois eu fiz esse mesmo codigo e liguei o bluetooth na placa e a placa na usb, abri o monitor do programa do arduino, mas nada apareceu para mim!!
Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 510
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, primeiro testa só este exemplo:
http://arduino.cc/en/Reference/SoftwareSerial

Depois você entra no serial monitor, seleciona "no line ending" e digita os comando AT:

AT
deverá aparecer "OK" no serial monitor
AT+VERSION
deverá aparecer a versão na serial

Se você não conseguir, a noite eu posso tirar meu arduino e o módulo do fundo da gaveta e estar smiley-wink
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 16
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mortis, eu upei esse codigo, inclusive ja tinha visto ele nos exemplos que vem no programa do arduino.Upei e testei, e incrivelmente, não apareceu nada...
Axo q eu devo estar fazendo alguma coisa de errado na montagem da placa.


* WP_000209.jpg (1580.78 KB, 3264x2448 - viewed 47 times.)
Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 510
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Na verdade tens de ligar o TX e RX do módulo nas portas 11 e 10, consecutivamente, pois as portas TX e RX do arduino são usadas pela usb, pelo serial monitor.
« Last Edit: April 30, 2013, 09:12:12 pm by Mortis » Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 510
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, vamos lá! ^^

Se o módulo estiver emparelhado com o PC, desemparelha, o led vermelho tem de estar piscando (modo de espera de conexão)
Conecta o RX do módulo na porta digital 10 do arduino e o TX na porta 11 (ou seja, TX do módulo no RX definido no softwareSerial e RX do módulo no TX definida no softwareSerial)

Faz o upload no código abaixo:
Code:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(11, 10); // RX, TX

long BaudRate[] = {300,1200,2400,4800,9600,14400,19200,28800,38400,57600,115200,230400,460800,921600,1382400};

void setup()
{
  Serial.begin(9600);
  Serial.println("Finding Baud");
  
  for(int x=0; x < 15;x++){
    Serial.print("Baud: ");
    Serial.println(BaudRate[x]);  
    
    mySerial.begin(BaudRate[x]);
    delay(10);
    mySerial.write("AT");
    delay(1000);
    
    if (mySerial.available()){
     String strData;
      while (mySerial.available()){
        strData += (char)mySerial.read();
      }
      Serial.println(strData);
      break;
    }
    mySerial.end();
  }
  //mySerial.begin(1200);
  //mySerial.begin(2400);
  //mySerial.begin(4800);
  //mySerial.begin(57600);
  //mySerial.begin(19200);
  //mySerial.begin(38400);
  //mySerial.begin(57600);
  //mySerial.begin(115200);
  //mySerial.begin(230400);
  //mySerial.begin(460800);
  //mySerial.begin(921600);
  //mySerial.begin(1382400);
}

void loop()
{
  if (Serial.available()){
    mySerial.write(Serial.read());
  }
  if (mySerial.available()){
    Serial.write(mySerial.read());
  }
}

Eu uso esse código porque sempre esqueço que porta baud eu configurei  smiley-mr-green

Ao iniciar o serial monitor você verá as linhas abaixo aparecendo:

Finding Baud
Baud: 300
Baud: 1200
Baud: 2400
Baud: 4800
Baud: 9600
Baud: 14400
Baud: 19200
Baud: 28800
Baud: 38400
Baud: 57600
OK

Neste caso, o meu módulo esta configurado com 57600 ^^

Digite no serial monitor os caracteres AT
deve aparecer ok
Digite AT+VERSION
se teu módulo for igual ao meu, aparecerá OKlinvorV1.5, ou seja "OK" como resposta ao reconhecimento do comando e "linvorV1.5" que é a versão do firmware.

Edit: tentei ser mais claro em relação às portas ^^
« Last Edit: April 30, 2013, 09:17:50 pm by Mortis » Logged

Pages: [1] 2   Go Up
Jump to: