Go Down

Topic: Help Modulo Bluetooth (Read 7207 times) previous topic - next topic

Madwriter

Si questo l'avevo capito ma non vedo proprio la risposta a qualsiasi comando AT qeusto è il problema.
"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

pitusso

Ciao,
riguardavo adesso il codice che hai utilizzato.
Fai attenzione a collegare correttamente i pin RX e TX.

La libreria SoftwareSerial si instanzia dichiarando in ordine pin RX e TX (di Arduino), pertanto :

Quote
NewSoftSerial blue(pinRX, pinTX);


al pin dichiarato RX, va attaccato il TX del modulo BT, e al pin dichiarato TX, va attaccato il pin RX del modulo BT.

Madwriter

C'è uno sviluppo se collego il pin key al pin 8 il led del modulino non lampeggia piu ma rimane rosso fisso mmm forse ci siamo ma ancoran on lo rilevo o riesco a leggere risposte dai comandi AT
"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

carletto


C'è uno sviluppo se collego il pin key al pin 8 il led del modulino non lampeggia piu ma rimane rosso fisso mmm forse ci siamo ma ancoran on lo rilevo o riesco a leggere risposte dai comandi AT

Puoi spiegare il pin 8? di arduino vero? che funzione? 
Il pin key è il 34 suppongo sia del modulo.

Io sono ancora in panne.
Oggi ho ricevuto una chiavetta USB-Bluetooth e con questa in Windows XP rilevo che
il modulo è HC-05

Indirizzo modulo bluetooth acquistato
http://www.ebay.com/itm/ws/eBayISAPI.dll?ViewItem&item=200609548406&ssPageName=ADME:
X:AAQ:US:1123#sf

Datasheet: http://www.sendspace.com/file/xkrj08eet
   Non assomiglia al modulo arrivato.

Il modulo assomiglia a questo;
http://www.usconverters.com/downloads/bluetooth-module-btm5-datasheet.pdf


Con chiavetta USB-Bluetooth su Windows XP rileva e identifica il modulo
come HC-05.

porta in uscita    COM8 HC-05 'Dev B'
porta in ingresso COM9 HC-05

Il LED sul pin 31 continua a lampeggiare come sempre mentre il LED sul 32
non si è mai acceso.

Ho fatto un semplice programmino in Visual Basic impostando
     COM9 il LED cambia lampeggio mentre se lo imposto come
     COM8 non cambia niente

Qualche idea?

Madwriter

Allora da quanto ne ho capito io, Devi immetere uno sketch di quelli che ho postato io sopra(uno dei due piu o meno sono simili) colleghi il pin RX con il TX dichiarato dalla newsoftserial e il pin TX dichiarato con l'RX della newsoftserial poi colleghi il pin key del tuo modulo all'arduino pin AT dichiarato nello sketch upload , apri il serial monitor e se ti va bene vedi qualche risposta ai vari comandi AT.
Io faccio tutto ma non vedo alcuna risposta mah.
"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

pitusso

Ciao,
se continuate a passare da una discussione all'altra, si rischia di perdere qualche pezzo per strada  :smiley-roll:
Considerati inoltre che i vostri moduli hanno firmware diversi, pertanto dovete adottare 2 metodi diversi per poterli gestire con comandi AT.

@Mad
Quote
poi colleghi il pin key del tuo modulo all'arduino pin AT


se il tuo modulo ha fw HC06 (chiedi conferma al venditore, ma così sembrerebbe), devi considerare che:
- il pin KEY non serve allo scopo che tu credi; per poter utilizzare i comandi AT, è sufficiente che il modulo non sia connesso (e quindi status led lampeggiante);
- non devi dare il "\r\n" alla fine del comando;
- la lettura dei comandi AT viene fatta a polling: quindi i comandi devono essere inseriti moooolto velocemente (1 comando per secondo)
(qui maggiori info:
http://byron76.blogspot.it/2011/09/one-board-several-firmwares.html)
Io utilizzo, come già detto, un converitore usb-> serial per connettere direttamente pc a modulo, per la programmazione; dopo mi provo gli sketch e li adatto a questi moduli.

@carletto
per programamre i tuoi moduli, il codice riportato da Mad dovrebbe andare bene, ma datti una letta al thread originario (già linkato sopra):
http://arduino.cc/forum/index.php/topic,50252.msg366272.html#msg366272

Il pin da mettere in HIGH per la programamzione AT, nel tuo caso, è il pin PIO11 (il pin 34, l'ultimo in alto a dx).


Madwriter

#36
Apr 20, 2012, 07:29 pm Last Edit: Apr 20, 2012, 07:39 pm by Madwriter Reason: 1
per me niente da fare ho provato ogni tipo di comando AT ma il modulinon non vuole proprio rispondermi e poi continuo a non vederlo dubito che sia rotto però non so tuto è possibile.

ora mi prende anche in giro  .-.
Code: [Select]
Inizializzo sistema...
pinAT attivo
Scrivo comando: AT+ORGL
?ÿ



eeeeh che vuoi con ÿ? xD
"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

valvale97

Scusate ma mi unisco anche io alla discussione.
Io con il mio modulo ho fatto paring da PC e gli ho settato nome,pswd,baudrate con i comandi AT e mi rispondeva.
Ora stacco l'arduino dal PC alimentato con una batteria e ho collegato tra di loro i 4 pin per la trasmissione dati. Come si può notare da questo sketch:
Code: [Select]

#include <NewSoftSerial.h>
NewSoftSerial bluetooth(2,3); // (RX,TX)
int led=13;
int num=0;
void setup()
{
pinMode(led,OUTPUT);
bluetooth.begin(4800); // testare 38400
// Serial.begin(9600);
}
void loop()
{
 if(bluetooth.read()==1)
 {
 digitalWrite(led,HIGH);
 }
 if(bluetooth,read()==0)
 {
 digitalWrite(led,LOW);
 }
}

Ora vado a vedere in "gestione dispositivi" e vedo che ho due COM per il bluetooth la COM10 e la 7, nell'IDE di arduino quando vado a selezionare a a quale COM connettermi noto che c'è soltanto la COM 10 e non la 7.
Mi collego a questa, imposto il baudrate appropriato e appena inserico "1" e clicco su "Send" mi crasha sia l'IDE che il Serial Monitor.
Sapete per caso dove sto sbagliando?

Madwriter

Ora sono anche io nella tua stessa situazione mi va in palla il serial monitor e l'ide appena mi collego alla porta virtual del bluetooth e cerco di comunicarci
"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

valvale97

Mi fà piacere non essere l'unico con questo problema   :P
Ora siamo in due ad aspettare l'aiuto di qualche veterano dell'elettronica.

valvale97

Adesso aggiungendo questo codice :
Code: [Select]
  Serial.println(bluetooth.read());
Sul serial monitor vedo -1.
Cosa significa ?

pitusso

Ciao,

Quote
Ora siamo in due ad aspettare l'aiuto di qualche veterano dell'elettronica.


rispondo io che non sono un veteranod ell'elettronica, anche perchè questo non è un problema di elettronica  ]:)

Primo appunto.
Innanzitutto, io non utilizzo (neppure penso sia la cosa migliore) il Serial Monitor dell'IDE Arduino.
Utilizzo un semplice terminale, su linux, ma ho appena provato anche con putty (che c'è anche per win$) e funziona ugualmente bene.

Secondo appunto.
Code: [Select]
if(bluetooth.read()==1)
  {
  digitalWrite(led,HIGH);
  }
  if(bluetooth,read()==0)
  {
  digitalWrite(led,LOW);
  }


se mandi il valore "1" (o "0") da un monitor seriale, la condizione non sarà mai vera.
Questo perchè il read ritorna il byte della posizione nella tabella ASCII, pertanto se invii 1, il valore che ti ritrovi nel byte letto è 45.
(per approfondimenti gioca con questo sketch base: http://arduino.cc/en/Serial/read)

Quote
Sul serial monitor vedo -1.


stesso link di cui sopra:

Quote
the first byte of incoming serial data available (or -1 if no data is available) - int


valvale97

Grazie della risposta "veterano dell'elettronica"  ]:)
Adesso quando arrivo a casa faccio delle prove, poi ti faccio sapere.

carletto

Ho eseguito altre prove con risultati scarsi sia in Linux Ubuntu che Windows XP con chiavetta
USB-Bluetooth e modulino collegato a un aurduino UNO.
In Ubuntu mi trovo un elenco di dispositivi con sigle tipo: 5E-0F-00-00-FF-02 e altre 6 serie
???
Con configurazione nuovo dispositivo trova HC-05 ma segnala che non riesce ad associare il
dispositivo quindi si ferma.

In Windows XP come ho detto in altro post trova il modulo lo associa a delle porte COM
ma poi si blocca quando opero con l'IDE e non riesco a comunicare, addirittura passando sopra
il menu voce "Tools" non apre la tendina e rimane bloccato per un certo tempo.

Chiedo anchio aiuto agli esperti e in particolare a Pitusso se ci sono idee per continuare
e siccome non ho molta fiducia dei miei moduli chiedo inoltre
a Pitusso che modulo hai utilizzato visto che a te funziona per poterlo eventualmente acquistare
anche io.

Grazie Carletto
 

pitusso

Ciao

Quote
Ho eseguito altre prove con risultati scarsi sia in Linux Ubuntu che Windows XP con chiavetta
USB-Bluetooth e modulino collegato a un aurduino UNO.


relativamente alla chiavetta, sei sicuro che funzioni correttamente con linux?
Riesci a fare il pairing con un telefono?

Riposto poi questa guida, fatta bene se usi linux:
http://txapuzas.blogspot.it/2009/12/paperbluetooth-bluetooth-shield-para.html
poi se vuoi ti passo una guida analoga ma per fare tutto da terminale  :smiley-mr-green:

Quote
Pitusso che modulo hai utilizzato


io ho usato sia dei moduli HC06 con fw linvor (ne ho pure uno qui di fianco ora), che altri che doverbbero essere questi (o qualcosa di molto simile: come costo e descrizione sono in linea):
http://www.ebay.it/itm/2PCS-Wireless-Bluetooth-Master-Slave-2-in1-Module-RS232-TTL-/280833422609?pt=LH_DefaultDomain_0&hash=item4162f9f511#ht_4094wt_1170

In ogni caso, quelli che hai preso tu, carletto, hanno anche un minimo di documentazione disponibile, non ne hai cavato nulla di buono?

Cmq ribadisco che non conviene utilizzare l'IDE di Arduino per connettersi alla porta seriale associata al BT!
Piuttosto utilizzare Putty !
http://www.putty.org/

Go Up