0
Offline
Newbie
Karma: 0
Posts: 40
Arduino rocks
|
 |
« Reply #30 on: February 02, 2011, 04:40:29 pm » |
Msn no. Per chattare uso skype o google talk.
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Edison Member
Karma: 15
Posts: 1927
Have you mooed today?
|
 |
« Reply #31 on: February 02, 2011, 05:06:35 pm » |
ciao 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? 
|
|
|
|
|
Logged
|
|
|
|
|
Naples (IT)
Offline
God Member
Karma: 5
Posts: 711
Andrea E.
|
 |
« Reply #32 on: February 02, 2011, 05:20:37 pm » |
Cosa ci devi fare, con i comandi AT?  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 
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 40
Arduino rocks
|
 |
« Reply #33 on: February 02, 2011, 06:06:09 pm » |
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
God Member
Karma: 5
Posts: 711
Andrea E.
|
 |
« Reply #34 on: February 02, 2011, 06:52:54 pm » |
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
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 40
Arduino rocks
|
 |
« Reply #35 on: February 03, 2011, 09:40:26 am » |
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
God Member
Karma: 5
Posts: 711
Andrea E.
|
 |
« Reply #36 on: February 03, 2011, 10:25:03 am » |
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
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 40
Arduino rocks
|
 |
« Reply #37 on: February 03, 2011, 10:42:02 am » |
Codice per dare il comando AT #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
God Member
Karma: 5
Posts: 711
Andrea E.
|
 |
« Reply #38 on: February 03, 2011, 11:34:25 am » |
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 blue.begin(19200); a blue.begin(115200);
|
|
|
|
« Last Edit: February 03, 2011, 11:40:17 am by skaxxo »
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 40
Arduino rocks
|
 |
« Reply #39 on: February 07, 2011, 01:16:54 am » |
Sono riuscito ad impartire un comando AT. In particolare ho riportato l'antenna MASTER alle condizioni di default (SLAVE) con il comando: AT+ORGL \r\n Questo è il codice che ho utilizzato: #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
God Member
Karma: 5
Posts: 711
Andrea E.
|
 |
« Reply #40 on: February 07, 2011, 03:10:31 am » |
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
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 40
Arduino rocks
|
 |
« Reply #41 on: February 10, 2011, 02:51:30 pm » |
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
Edison Member
Karma: 15
Posts: 1927
Have you mooed today?
|
 |
« Reply #42 on: February 10, 2011, 04:26:08 pm » |
Ciao riddik86, io non ho fin'ora avuto problemi di riconoscimento, ho provato con Nokia (vari modelli), LG GT540, HTC G1. devo capire se è un problema software o di incompatibilità dell'hardware. Il Bluetooth è uno standard, non penso si possa parlare di incompatibilità  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
Newbie
Karma: 0
Posts: 40
Arduino rocks
|
 |
« Reply #43 on: February 10, 2011, 04:31:15 pm » |
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
Newbie
Karma: 0
Posts: 40
Arduino rocks
|
 |
« Reply #44 on: February 10, 2011, 06:15:57 pm » |
Ho risolto!!! In pratica ho cambiato il modo operativo dell'antenna, l'ho passata da SLAVE a SLAVE-LOOPBACK con questo codice: #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
|
|
|
|
|
|