Pages: 1 2 [3] 4 5   Go Down
Author Topic: Moduli bluetooth  (Read 8530 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 40
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Msn no. Per chattare uso skype o google talk.
Logged

0
Offline Offline
Edison Member
*
Karma: 20
Posts: 2227
Have you mooed today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao
Quote
Vedo le print dei vari comandi AT ma il bluetooth non risponde ai comandi AT.
ci avevo provato anche io, a mio tempo, ma questi modulini non sembrano supportare comandi AT.. (riportato anche da Fabio per i suoi moduli bt).

Cosa ci devi fare, con i comandi AT?  smiley-grin
Logged

Naples (IT)
Offline Offline
God Member
*****
Karma: 5
Posts: 712
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Cosa ci devi fare, con i comandi AT?  smiley-grin

Mi è stato fornito un pdf con i comandi AT, con qualche printscreen di un caso d'uso...
In realtà mi sono un pò affossato per via di questi comandi, so che non servono a molto ma... mi sono fissato smiley
Logged

Arduino, MODs e DIY: blackstufflabs.com

0
Offline Offline
Newbie
*
Karma: 0
Posts: 40
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non riesco ad avere una connessione stabile con l'antenna.
Con il mac la rilevo, faccio il pairing con codice "1234" ma dopo circa 10s si disconnette.
Penso sia questo il mio problema principale.
Spero di aver capito il funzionameto:
- connetto TX ed RX dell'antenna con RX e TX dell'arduino o sui pin scelti con NewSoftSerial
- stabilisco una connessione con l'antenna
- quello che mando alla seriale relativa all'antenna sul mac arriva alla seriale dell'arduino.
Giusto?
« Last Edit: February 02, 2011, 06:10:22 pm by riddick86 » Logged

Naples (IT)
Offline Offline
God Member
*****
Karma: 5
Posts: 712
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ti consiglio:
collega anche i pin 32 e 31 a due led connessi a gnd.
uno dei due lampeggia di continuo quando è in cerca di connessione, quando l'ha trovata rallenta il blinking e si accende l'altro fisso.
una volta collegato, devi distinguere tre porte com:
1. dove è collegato arduino ed è la stessa dell'ide dell'arduino
2. una dovrebbe essere la com del dispositivo bluetooth che hai sul pc (usb o interno)
3. una porta com che bluesoleil associa al nuovo dispositivo

Io mi collego tramite putty alla porta del punto 3; unico problema è che quando apro putty durante la connessione avvenuta, il modulo si scollega dal pc.

domani faccio un video...
Logged

Arduino, MODs e DIY: blackstufflabs.com

0
Offline Offline
Newbie
*
Karma: 0
Posts: 40
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ci sono riuscito con Mac OS X.
Il problema era che usavo il modulo MASTER invece di quello SLAVE.
Ho fatto così:
Connetto la TX e RX dell'antenna ad RX e TX sull'arduino usando NewSoftSerial con una connessione a 115200
Il mac rileva l'antenna e vi associa una porta seriale /dev/tty.BC-05-xxxx
Apro minicom sulla porta /dev/tty.BC-05-xxxx a 115200 e quello che scrivo viene trasmesso all'Arduino.

P.S. Per dare i comandi AT, bisogna mettere l'antenna in modalità AT, mettendo un valore di tensione alto (3.3V o 5V) sul pin 34.
Con questi comandi è possibile cambiare le configurazioni dell'antenna, per esempio è possibile convertire il MASTER in SLAVE e viceversa.
« Last Edit: February 03, 2011, 09:43:42 am by riddick86 » Logged

Naples (IT)
Offline Offline
God Member
*****
Karma: 5
Posts: 712
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

P.S. Per dare i comandi AT, bisogna mettere l'antenna in modalità AT, mettendo un valore di tensione alto (3.3V o 5V) sul pin 34.
Con questi comandi è possibile cambiare le configurazioni dell'antenna, per esempio è possibile convertire il MASTER in SLAVE e viceversa.

Ma il pin 34 deve stare fisso a 3.3v per abilitare la modalità AT?
Appena puoi posta il codice che hai usato che faccio un pò di prove... grazie!
Logged

Arduino, MODs e DIY: blackstufflabs.com

0
Offline Offline
Newbie
*
Karma: 0
Posts: 40
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Codice per dare il comando AT

Code:
#include <NewSoftSerial.h>

int pinRX = 6;
int pinTX = 5;
int pinAT = 12;

NewSoftSerial blue(pinRX, pinTX);

void setup()
{
 
  blue.begin(19200);
  Serial.begin(9600);
  pinMode(pinLed, OUTPUT);
  pinMode(pinAT, OUTPUT);
  digitalWrite(pinAT, HIGH);


}

void loop()
{
  //Comando AT
  //Risposta OK
 
  blue.print('A');
  blue.print('T');
  blue.print('\r');
  blue.print('\n');
 
//Leggo la risposta
if(blue.available() > 0)
{
Serial.print(blue.read());
Serial.println(blue.read());
}
}

Per questo codice ho un problema:
dopo un paio di riposte OK, mi vengono ritornati caratteri strani.
Logged

Naples (IT)
Offline Offline
God Member
*****
Karma: 5
Posts: 712
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ma il pin dell'AT, l'hai messo a 3.3v o hai messo qualche resistenza in serie?
appena lo metto a 3.3v non riesco più a farlo collegare al mio modulo bluetooth (del pc)...


prova a farlo girare a 115200 baud

Code:
 blue.begin(19200);


a


Code:
 blue.begin(115200);
« Last Edit: February 03, 2011, 11:40:17 am by skaxxo » Logged

Arduino, MODs e DIY: blackstufflabs.com

0
Offline Offline
Newbie
*
Karma: 0
Posts: 40
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sono riuscito ad impartire un comando AT.
In particolare ho riportato l'antenna MASTER alle condizioni di default (SLAVE) con il comando:
Code:
AT+ORGL \r\n

Questo è il codice che ho utilizzato:
Code:
#include <NewSoftSerial.h>

int pinRX = 6;
int pinTX = 5;
int pinAT = 8;
NewSoftSerial blue(pinRX, pinTX);
int pinLed = 13;



void commandAT(char *v)
{
  int i=0;
  while(v[i] != '\n')
  {
    blue.print(v[i]);
    i++;
  }
  blue.print('\n');
}

void readResponse(int nchar)
{
  if(blue.available() > 0){
  for(int i=0; i < nchar; i++){
 
     char data = (char)blue.read();
   
    Serial.print(data);
    delay(100);
   
    }
 
  }
}

void setup()
{
 
  blue.begin(115200);
  Serial.begin(9600);
  Serial.println("Inizializzo sistema...");
  pinMode(pinLed, OUTPUT);
  pinMode(pinAT, OUTPUT);
 
  //Valore ALTO per switchare in modalità AT
  // il 34 sull'antenna
  digitalWrite(pinAT, HIGH);
  Serial.println("pinAT attivo");
 
  //Comando AT da inviare
  char s[] = "AT+ORGL \r\n";
  Serial.print("Scrivo comando: ");
  Serial.print(s);
 
  delay(50);
 
  //Invio comando all'antenna
  commandAT(s);
  delay(50);
 
  //Leggo la risposta
  readResponse(2);
}

void loop()
{
   
 
}

Con questo codice però non riesco a leggere la risposta, ma la configurazione dell'antenna è cambiata, quindi l'invio ha funzionato.
Logged

Naples (IT)
Offline Offline
God Member
*****
Karma: 5
Posts: 712
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Con questo codice però non riesco a leggere la risposta, ma la configurazione dell'antenna è cambiata, quindi l'invio ha funzionato.

Bravo riddick!
Oggi/domani provo un pò il tuo codice, questi moduli sono davvero antipatici...
Logged

Arduino, MODs e DIY: blackstufflabs.com

0
Offline Offline
Newbie
*
Karma: 0
Posts: 40
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Questi moduli non vengono rilevati da LG Optimus One e HTC Desire HD.
Ho provato con vari altri cellulari e smartphone e vengono rilevati senza problemi.
Poichè ho un LG O1 devo capire se è un problema software o di incompatibilità dell'hardware.
Logged

0
Offline Offline
Edison Member
*
Karma: 20
Posts: 2227
Have you mooed today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao riddik86,
io non ho fin'ora avuto problemi di riconoscimento, ho provato con Nokia (vari modelli), LG GT540, HTC G1.
Quote
devo capire se è un problema software o di incompatibilità dell'hardware.
Il Bluetooth è uno standard, non penso si possa parlare di incompatibilità  smiley-roll
Nel senso che potrebbe non andare a buon fine il pairing, ma il modulo dovrebbe essere sempre visibile...

Forse il modulo bt era associato e connesso con altro device, quando effettuavi la ricerca con gli smartphone che hai citato?
(potrei aver detto una castronata, non ci ho provato)
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 40
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Forse il modulo bt era associato e connesso con altro device, quando effettuavi la ricerca con gli smartphone che hai citato?
(potrei aver detto una castronata, non ci ho provato)

No, non era associato a nessun dispositivo, anche perchè non conoscevano il pin di connessione.
Poi le prove le ho fatte anche da solo con il mio Optimus One e non lo "vede".
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 40
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho risolto!!!
In pratica ho cambiato il modo operativo dell'antenna, l'ho passata da SLAVE a SLAVE-LOOPBACK con questo codice:
Code:
#include <NewSoftSerial.h>

int pinRX = 6;
int pinTX = 5;
int pinAT = 8;
NewSoftSerial blue(pinRX, pinTX);
int pinLed = 13;



void commandAT(char *v)
{
  int i=0;
  while(v[i] != '\n')
  {
    blue.print(v[i]);
    i++;
  }
  blue.print('\n');
}

void readResponse()
{
  int a = blue.available();
  Serial.print("Caratteri disponibili: ");
  Serial.println(a);
  if(a > 0){
  for(int i=0; i < a; i++){
 
     char data = (char)blue.read();
   
    Serial.print(data);
    delay(100);
   
    }
  }
 

}

void setup()
{
 
  blue.begin(38400);
  Serial.begin(9600);
  Serial.println("Inizializzo sistema...");
  pinMode(pinLed, OUTPUT);
  pinMode(pinAT, OUTPUT);
 
  //Valore ALTO per switchare in modalità AT
  // il 34 sull'antenna
  digitalWrite(pinAT, HIGH);
  Serial.println("pinAT attivo");
 
  //Comando AT da inviare
  char s[] = "AT+ROLE=2\r\n";
  Serial.print("Scrivo comando: ");
  Serial.print(s);
 
  delay(50);
 
  //Invio comando all'antenna
  commandAT(s);
  delay(50);
 
  //Leggo la risposta
  readResponse();
}

void loop()
{
   
 
}

Ora si riescono a leggere anche le risposte, bisogna che l'antenna sia connessa con qualche dispositivo via bluetooth, non basta la seriale di Arduino.
Ho fatto in questo modo:

Arduino <---> Modulo BT <----> MacBook PRO BT (connessione con minicom)

e magicamente il monitor seriale di Arduino stampa anche le risposte!!!
Logged

Pages: 1 2 [3] 4 5   Go Up
Jump to: