comprendere da zero il modulo bluetooth HC-05

Ciao ragazzi sto cercando di capire la logica di funzionamento del modulo bluethoot HC-05.

Ho dato un occhiata al megatopic [HOWTO] Guida (più o meno) completa all’utilizzo di Moduli Bluetooth
e al post “Problema Modulo Bluetooth HC-05”…

Alcune cose sono chiare, ad esempio il cablaggio:

RX HC-05 ← TX Arduino
TX HC-05 → RX Arduino
GRND-GRND
VCC-5V

Ma altre cose sono un po nebbiose…
Ad esempio, ho acquistato un modulo bluetooth usb da attaccare al pc che da quel capito sara’ il master mentre l’ HC-05 sara’ in modalita’ slave… e’ corretto?

Ora, stavo anche cercando come consigliato da gpb01 degli esempi ma non so proprio come cercare nel forum solo per un utente una specifica parola… quindi non riesco a trovare gli esempi a cui si riferisce appunto gpb01.

mi aiutate? grazie

La ricerca la fai da Google, limitandola alla sezione Italiana del forum ...

Esempio, i miei post (gpb01) che parlano di HC-05 :

site:http://forum.arduino.cc/index.php?board=34.0 HC-05 gpb01

... basta saper usare Google :stuck_out_tongue_closed_eyes:

Guglielmo

gpb01:
La ricerca la fai da Google, limitandola alla sezione Italiana del forum …

Esempio, i miei post (gpb01) che parlano di HC-05 :
… basta saper usare Google :stuck_out_tongue_closed_eyes:

Guglielmo

Ok allora, per ora ho capito che il collegamento migliore e’ :

RX HC-05 ← TX Arduino (PIN PWM 11)
TX HC-05 → RX Arduino (PIN PWM 10)
GRND-GRND
VCC-5V

Utilizzando i pin PWM 1 e 0 di Arduino come TX e RX, comporta diversi problemi;
tali problemi possiamo evitarli utilizzando la SoftwareSerial che prevede l’utilizzo ad esempio del PIN PWM 11 come TX e il PIN PWM 10 come RX.

Spero di aver capito bene… per ora ci sono? :-*

Il PWM non c'entra nulla :grin: , ma i collegamenti sono giusti :smiley:

Guglielmo

gpb01:
Il PWM non c'entra nulla :grin: , ma i collegamenti sono giusti :smiley:

Guglielmo

:cold_sweat: mmm ma non sono i pin 11 e 10 PWM? (o almeno c'e' scritto PWM per tutta quella serie di pin..)

Oltre questo ho seguito questa procedura per verificare innanzi tutto se il modulino bluetooth e' visibile dal mio bluetooth USB del pc:

1) Connetti insieme i pin TX e RX del modulo con un filo o magari utilizzando quei cavallotti che si trovano sui vecchi hard-disk e CD per configurarli sul bus.
2) Alimenti il modulo con i 5V.
3) Associ il modulo con il PC (pairing)

purtroppo, a differenza del mio telefono, perfettamente visibile, il modulo HC-05 non viene visto dal mio bluetooth USB del pc...

Ho esattamente fatto come da procedura mettendo un jumper tra l'rx e il tx dell'hc-05 e unendo il VCC dell'hc-05 con i 5V dell'Arduino mega ma nulla :\

L'hc-05 ha qualche spia che si deve accendere? perche' non vedo luci nonostante sia alimentato.. :\

mmm ho paura di star facendo un bel po di casino..

aldoz:
:cold_sweat: mmm ma non sono i pin 11 e 10 PWM? (o almeno c'e' scritto PWM per tutta quella serie di pin..)

Si, certo, sono pin che hanno la capacità di lavorare in PWM, ma la cosa non ha nulla a che vedere ed è trascurabile per quello che devi fare tu che ... è una normale comunicazione seriale ...

aldoz:
L'hc-05 ha qualche spia che si deve accendere? perche' non vedo luci nonostante sia alimentato

Per accoppiarlo NON è necessario che colleghi TX ed RX (... cosa che può essere usata per provarlo facendo l'eco dei caratteri) ... basta alimentarlo (... se è in modalità SLAVE) e comunque, SI, c'è un LED che lampeggia lentamente se non è accoppiato e velocemente quando è accoppiato.

Guglielmo

gpb01:
Si, certo, sono pin che hanno la capacità di lavorare in PWM, ma la cosa non ha nulla a che vedere ed è trascurabile per quello che devi fare tu che ... è una normale comunicazione seriale ...

Per accoppiarlo NON è necessario che colleghi TX ed RX (... cosa che può essere usata per provarlo facendo l'eco dei caratteri) ... basta alimentarlo (... se è in modalità SLAVE) e comunque, SI, c'è un LED che lampeggia lentamente se non è accoppiato e velocemente quando è accoppiato.

Guglielmo

Ah okok quindi niente ponticello TX/RX e sopratutto mi sto accorgendo di aver si collegato il VCC al 5V di Arduino ma non il GND.. quindi e' giusto che non si accenda no?

Si apposto ora il mio bluetooth USB del PC vede la schedina :slight_smile:

Ora mi organizzo qualche nuova domanda :stuck_out_tongue: :slight_smile:

e per iniziare.. : mi dice che il dispositivo e' sia sulla com7 sia sulla com8??

Comunque... qual'e' il prossimo passo che dovrei compiere per programmare il mio robot senza il cavo USB e utilizzando il dispositivo bluetooth?

aldoz:
Comunque... qual'e' il prossimo passo che dovrei compiere per programmare il mio robot senza il cavo USB e utilizzando il dispositivo bluetooth?

Nel senso che vuoi programmare un Arduino (... che immagino tu hai nel tuo robot) via bluetooth ? Se SI ...
... basta sforzarsi a cercare :smiling_imp:

Guglielmo

gpb01:
Nel senso che vuoi programmare un Arduino (... che immagino tu hai nel tuo robot) via bluetooth ? Se SI ...
... basta sforzarsi a cercare :smiling_imp:

Guglielmo

Grrrr :smiling_imp: lo sapevo che mi avresti risposto cosi :wink: ma hai ragione, le informazioni vedo che ci sono e tante pure, faro' del mio meglio per capirci meglio.

Si, programmare Arduino, ricevere i dati e visulizzarli su Processing 2 (come gia' ora faccio) ma non tramite usb ma tramite bluetooth.

Ma aspettati qualche nuova domanda tra non molto!! :grin:

aldoz:
Ma aspettati qualche nuova domanda tra non molto!! :grin:

Hai visto la "firma" dei miei post ... quindi, sempre a disposizione ... dopo San GOOGLE :grin:

Guglielmo

gpb01:
Hai visto la "firma" dei miei post ... quindi, sempre a disposizione ... dopo San GOOGLE :grin:

Guglielmo

Sisi e' molto indicativa ma credo sia giusto cosi' :slight_smile:

Non aprire un thread su una cosa ampiamente illustrata:

in questo caso da pitusso..
bisogna cercare prima su megatopic , se non c'è niente passi ad altre fonti ma trovi sempre

icio:
Non aprire un thread su una cosa ampiamente illustrata:

http://forum.arduino.cc/index.php?topic=104903.0

in questo caso da pitusso..
bisogna cercare prima su megatopic , se non c'è niente passi ad altre fonti ma trovi sempre

Io ho letto questo thread e relativi link prima di scrivere questo post proprio perche' non riuscivo a trovare un' "aderenza" al mio progetto, avendo le basi che ho.
Per quello ho aperto questo thread.

Come ho scritto nel primo messaggio di questo thread, alcune cose sono chiare, altre meno e solo una risposta "personalizzata" puo' aiutarmi dato che rileggendo nuovamente quella guida, mi allontano da un'idea chiara ma anzi mi si formano parecchie nuvole di dubbi...

Mi sorgono queste domande:

  1. Da quel che ho letto, devo evitare come la rogna la programmazione AT, mi metterei solo in guai ancora piu' grossi come più volte accennato da gpb01, quindi evitero', ma ho capito che da comandi AT posso cambiare la velocita' della comunicazione seriale se no settata di default a 9600.. A me serve in maniera totale l'utilizzo della velocita' seriale di 115200 quindi dovro' utilizzare come minimo un comando AT per settarla.. e' corretto?

  2. Seguendo le varie guide del thread in questione sono riuscito a far linkare il bluetooth usb del pc con il modulino hc-05 ma tra tutti i vari esempi non riesco a trovare un modo diretto per programmare la mia MEGA2560 esattamente come quando si utilizza la connessione seriale standard da cavo USB...
    in poche parole..
    Vorrei semplicemente avviare il mio programma e osservare le variabili (e settarle) da monitor seriale di Arduino.. ma senza cavo usb.. appunto utilizzando l'hc-05..
    ma fin'ora non ho capito se questo sia possibile... (e per ora non parlo di Processing2 eh.. non oso :slight_smile: )
    Il mio punto riguardo questa domanda n°2 e':
    La logica, una volta configurata la connessione bluetooth e' la stessa di quando utilizzo il seriale da usb?
    mi sto seriamente incasinando.. :frowning:

  3. Se decidessi di utilizzare il cavo usb attaccato alla mega2560 NON per la comunicazione seriale MA SOLO per alimentare Arduino (e il modulo bluetooth quindi)..
    potrei a quel punto comunicare tramite bluetooth o il fatto che il cavo USB e' collegato, prende la precedenza rispetto all' hc-05?

  4. avrei dubbi anche riguardo processing (che da seriale USB utilizzo tranquillamente sia per visualizzare che per settare le variabili di Arduino) ma per ora e' inutile chiedere senza aver chiare le domande 1,2 e 3..

Purtroppo questi sono alcuni dubbi che leggendo tutti i vari link e tutorial non sono riuscito ad averli chiari in mente :confused:

1), si per programmare la velocita' devi per forza entrare in command mode, pero' non mi pare che poi la SoftwareSerial riesca a supportare quella velocità

2)Non puoi programmare la Mega attraverso il Bluetooth. Si, lo usi come se fosse una seriale, ma quando invii lo sketch ci vuole qualcuno che prema il Reset e il Bluetooth non lo fa'
2a) La logica di comunicazione e' la stessa, ma non per quanto riguarda la programmazione. In pratica, se riesci a premere il pulsante di Reset al momento giusto ( appena l'IDE ha finito la compilazione ) puoi programmarla anche con il Bluetooth ( sempre che sia installato nella seriale Rx0-Tx0 per la Mega )

  1. Non esiste un diritto di precedenza

Ciao Brunello.. le tue risposte equivalgono ad una brutta sbronza del vinello in questione... :cry:

Speravo di reggerlo meglio ma mi sono ritrovato steso a terra bene cotto! :sweat_smile:

1), si per programmare la velocita' devi per forza entrare in command mode, pero' non mi pare che poi la SoftwareSerial riesca a supportare quella velocità

Oh ecco.. quindi gia' questo rappresenta un dannatissimo problema per me.. il mio robot necessita, per motivi troppo complicati per essere elencati, della velocita' di 115200 baud :frowning:
Quindi gia' questo, se la tua informazione e' corretta, mi taglia le gambe

2)Non puoi programmare la Mega attraverso il Bluetooth. Si, lo usi come se fosse una seriale, ma quando invii lo sketch ci vuole qualcuno che prema il Reset e il Bluetooth non lo fa'
2a) La logica di comunicazione e' la stessa, ma non per quanto riguarda la programmazione. In pratica, se riesci a premere il pulsante di Reset al momento giusto ( appena l'IDE ha finito la compilazione ) puoi programmarla anche con il Bluetooth ( sempre che sia installato nella seriale Rx0-Tx0 per la Mega )

Mmm interessante. Quindi bisogna aggiungere questo qualcosa che prema il reset.. ma a quale reset ti riferisci?
E' un pulsante fisico o ti riferisci alla procedura di reset dell'Arduino quando finisce di compilare il codice?
E a questo punto, cosa mi consiglieresti per eseguire questa procedura? un programma stand-alone da utilizzare con l'Ide Arduino?

  1. Non esiste un diritto di precedenza

Oh ok quindi se configuro il mio seriale con il bluetooth, il fatto che l'Arduino sia alimentata dal cavo USB non rappresenta un problema per l'utilizzo del bluetoth stesso.. ok.

:slightly_smiling_face:

ora che ci ripenso, non hai detto di avere la Mega2560 ?
Allora hai 4 seriali Hardware, ti colleghi a una di quelle (Serial1, Serial2, Serial3 ) e non hai problemi di velocita'
La SoftwareSerial si usa solo sulla UNO, che ha una sola seriale fisica, quella collegata all'USB

Il Pulsante di RESET, quello rosso vicino al connettore ISP al centro della scheda. Quello devi premere

Brunello:
2)Non puoi programmare la Mega attraverso il Bluetooth. Si, lo usi come se fosse una seriale, ma quando invii lo sketch ci vuole qualcuno che prema il Reset e il Bluetooth non lo fa'

NI, ovvero ... così di base non lo fai, ma con una piccolissima modifica ci dovresti riuscire.

Il pin 32 (PIO9) del modulo BT-05 è l'uscita per LED2 che accende il LED quando la connessione è avvenuta.

Collegando a tale pin un condensatore elettrolitico da 1 µF si può generare l'impulso per il reset al momento della connessione. Immediatamente dopo la connessione (quindi del reset) devi trasmettere il codice ...

C'è da giocare un po' con la tempistica, ma ... ho già visto progettini così fatti :wink:

Guglielmo

Brunello:
1), si per programmare la velocita' devi per forza entrare in command mode, pero' non mi pare che poi la SoftwareSerial riesca a supportare quella velocità

Nel reference della SoftwareSerial è indicato :

It is possible to have multiple software serial ports with speeds up to 115200 bps

... quindi, in teoria ... i 115 Kbps sono raggiungibili :wink:

Guglielmo

e voi vorreste fare un pairing per usare questa procedura

 1) aprire l'IDE
 2) caricare uno sketch qualunque, anche il "blink" modificato (prova a mettere un delay doppio)
 3) prendere l'Arduino e tenere premuto il pulsante "reset".
 4) MENTRE si tiene questo tasto pigiato, collegare l'Arduino al PC.
 5) adesso, MENTRE si continua a tenere pigiato il pulsantino, premere il tasto di upload dello sketch
 6) ora rilasciare il pulsantino di reset
 7) [i]se si è trovato la sincronizzazione giusta tra la pressione del pulsante grafico di upload dello sketch 
ed il rilascio del reset, verrà caricato lo sketch[/i]