Sistema trasmissione dati seriali wireless

Salve a tutti,

da un po' di tempo sto lavorando ad un progetto per un controller midi utilizzando arduino e un touch screen (ci sono un paio di post miei in giro). La prima versione del progetto funziona bene anche se ci sono ancora un paio di cosette da sistemare..

Intanto vorrei pensare ad una implementazione futura, ovvero rendere il tutto wireless.
Purtroppo mi approccio solo ora per la prima volta con la trasmissione senza fili e non so bene dove andare a parare.

Il segnale che il mio controller manda è un semplicissimo segnale seriale che esce dalla porta tx di arduino e manda un set di 3 valori HEX.
Il problema è che mi serve un sistema di trasmissione che sia veloce (latenza max di qualche millisecondo) e soprattutto stabile (che risenta poco di eventuali interferenze elettromagnetiche) in quanto per applicazioni principalmente audio. La distanza di trasmissione massima è poco rilevante..difficilmente ci sono distanze da coprire superiori ai 10 metri.

Ovviamente con un occhio di riguardo al costo, per scegliere la soluzione con il miglior rapporto qualità/prezzo.

Che tipo di trasmissione mi consigliereste di utilizzare?

Ciao,
se stai nel raggio di 10 metri puoi optare per bluetooth, con 10 eur te la cavi sia per il trasmettitore che il ricevitore (configurandoli master e slave, classe 2 quindi i 10 metri li copri). Su megatopic trovi una piccola guida con cui puoi approfondire.

Oppure ancora potresti usare MIRF (ma discorso latenza non ricordo come siamo messi):
http://airspayce.com/mikem/arduino/NRF24/

Anche qui come costi siamo vicini alla cifra sopra citata.

Avevo pensato anche io al bt ma un amico me l'ha sconsigliato perchè sostiene che abbia latenza troppo lunga. Tuttavia non ne sono troppo convinto e infatti credo che alla fine opterò per testare quello, ma mi interessava eventualmente conoscere alternative.

Il sistema MIRF è praticamente un sistema di trasmissione ad onde radio?
Non so, ma a primo impatto mi sembra meno affidabile (ma è un'idea mia, sulla base essenzialmente di impressioni e basta, niente di motivato). Adesso me lo studio per bene però, così da farmi un'idea precisa.

Intanto grazie per i consigli, e se qualcun altro avesse altre proposte le ascolto volentieri, giusto per avere una panoramica generale e conoscere qualche idea nuova.

TheShredding:
Avevo pensato anche io al bt ma un amico me l'ha sconsigliato perchè sostiene che abbia latenza troppo lunga.
...

Emm .. e, secondo il tuo amico, tutti gli infiniti gadget musicali (amplificatori, colonne amplificate, cuffie, ecc.) che si collegano agli smartphone ed ai tablet ... come ci si collegano ??? ]:smiley: ]:smiley: ]:smiley:

Guglielmo

gpb01:

TheShredding:
Avevo pensato anche io al bt ma un amico me l'ha sconsigliato perchè sostiene che abbia latenza troppo lunga.
...

Emm .. e, secondo il tuo amico, tutti gli infiniti gadget musicali (amplificatori, colonne amplificate, cuffie, ecc.) che si collegano agli smartphone ed ai tablet ... come ci si collegano ??? ]:smiley: ]:smiley: ]:smiley:

Guglielmo

C'è una differenza sostanziale però, tutti questi dispositivi di RIPRODUZIONE possono ammettere qualche millisecondo di latenza, perchè comunque non devono essere sincronizzati a niente e la cosa non si avverte in alcun modo.
Ma nel momento in cui devi SUONARE o comunque inviare dati che vanno a pilotare effetti o suoni in tempo reale la cosa cambia.

Io ad esempio ho sempre evitato di utilizzare microfoni o trasmettitori wireless per gli strumenti musicali perché la qualità media di questi articoli è piuttosto scarsina e certe volte la latenza è avvertibile anche ad orecchio. Le alternative funzionanti ci sono, ma a costi esorbitanti.

A livello di produzioni audio un po' raffinate, su certi effetti, un ritardo di 10-15 millisecondi è già avvertibile e fastidioso.
Caso limite: sequenza digitale arpeggiata su semicrome a 240 bpm: una nota ogni 62,5 ms, un ritardo di 15 ms rappresenta un errore del 25% sul posizionamento della nota e uno sfasamento notevole per un orecchio allenato!!

Quello che vorrei capire è quanto sia in effetti questa latenza del bt e quale sia il dispositivo che garantisce latenze minori, per poter fare valutazioni serie su come gestire la cosa

Un attimo, tu qui NON stai trasferendo AUDIO, ma stai trasferendo dati digitali di una porta MIDI (se leggo bene) ...

Oggetti come l'economicissimo HC-05 sono in grado di lavorare a bit-rate piuttosto elevati (la seriale dell'HC-05 va da 4800 baud a 1.3 Mbaud) e quindi, come trasmissione, non dovresti avere problemi ... come ritardo nell'invio dei dati (dal momento che i dati sono presenti sulla seriale, all'invio effettivo via radio) ... purtroppo non mi sembra che il datasheet (che ti allego) dica nulla ... ho idea che dovrai fare delle prove in laboratorio ...

Guglielmo

HC-05 datasheet 201104 revised.pdf (634 KB)

gpb01:
Un attimo, tu qui NON stai trasferendo AUDIO, ma stai trasferendo dati digitali di una porta MIDI (se leggo bene) ...

Oggetti come l'economicissimo HC-05 sono in grado di lavorare a bit-rate piuttosto elevati (la seriale dell'HC-05 va da 4800 baud a 1.3 Mbaud) e quindi, come trasmissione, non dovresti avere problemi ... come ritardo nell'invio dei dati (dal momento che i dati sono presenti sulla seriale, all'invio effettivo via radio) ... purtroppo non mi sembra che il datasheet (che ti allego) dica nulla ... ho idea che dovrai fare delle prove in laboratorio ...

Guglielmo

Purtroppo non saprei da dove iniziare per fare i test che dici e temo di non essere per nulla attrezzato.

In effetti non invio audio, ma una sequenza che viene tradotta in un segnale audio dal processore (che ha latenza nota e bla bla bla compensata via software e bla bla bla, ma che comunque c'è), per cui se io invio un segnale con latenza 15 ms, si sommano ai 5 ms della scheda audio (ammettendo di poter lavorare sempre nelle condizioni migliori possibili) ad un minimo di delay che devo mettere nello sketch per eseguire la lettura dei dati dal touch...vorrei poter quantificare e valutare.

La bit rate non è un problema il MIDI gira a 31250 e basta..per cui o quella o niente.

Ma quel modulino bt di cui mi alleghi il datasheet come si monta? ha i piedini tipo DIP?
è proibitivo riprodurre il circuito per integrarlo direttamente in una pcb comune all'ATMega328P? (riduzione dello spazio)

TheShredding:
...
Ma quel modulino bt di cui mi alleghi il datasheet come si monta? ha i piedini tipo DIP?
è proibitivo riprodurre il circuito per integrarlo direttamente in una pcb comune all'ATMega328P? (riduzione dello spazio)

Se fai una ricerca su eBay lo troverai disponibile nelle configurazioni più disparate (sciolto, montato su XBee, montato su una piccola board, con o senza regolatori di tensione, ecc. ecc.) :wink:

Guglielmo