Comunicazione tra due o più arduino

Salve a tutti. Lo so che questo argomento è affrontato in tanti altri topic, ma non ho trovato ancora nulla che fa al caso mio. Infatti vorrei realizzare un sistema di comunicazione che sfrutti il doppino di alimentazione dei vari arduino. Qualche anno fa, quando lavoravo come elettricista, installai un sistema automatico per cancello scorrevole nel quale i sensori vari comunicavano con la centralina attraverso il doppino di alimentazione: infatti bastava passare un semplice doppino per alimentare e contemporaneamente far comunicare le varie interfacce. Lascio immaginare la semplicità di installazione di un sistema del genere e, sopratutto, il risparmio significativo in filo. Purtroppo sulla rete non ho trovato niente di soddisfacente. Non mi rispondete che esiste il sistema i2c perchè non è ciò che mi serve e non mi serve neanche che la comunicazione sia ultra veloce essendo che i dati da scambiare sono molto pochi. Il wireless non lo voglio utilizzare per problemi di schermature tra i vari ambienti. Ho solo il problema che il doppino potrebbe essere lungo anche 20 metri lineari. Qualcuno ha qualche idea? Grazie mille. ciao.

http://www.ebay.it/itm/Mamba-shield-Narrow-Band-Powerline-Communication-PLC-Shield-for-Arduino-SPI-/201025065907?pt=LH_DefaultDomain_0&hash=item2ece0713b3

prova a cercare qualche cosa per il protocollo x10 di arduino...

http://arduino.cc/en/Tutorial/x10

e vedi se fa al tuo caso

ottaviane: Lascio immaginare la semplicità di installazione di un sistema del genere e, sopratutto, il risparmio significativo in filo.

Quello che cerchi si chiama onde convogliate, power line communication in inglese, Sparkfun produceva la Mamba Shield che consente questo tipo di comunicazione, però è fuori produzione, rimane disponibile lo schema che puoi usare come base per realizzare qualcosa di simile. Da notare che qualche fornitore ha ancora disponibili delle Mamba shield, il prezzo è circa 50$, non pensare di spendere molto meno se te la fai da solo, uno dei motivi per cui questa tecnologia sta scomparendo è proprio l'elevato costo aggiuntivo per singolo apparato.

Martinix: prova a cercare qualche cosa per il protocollo x10 di arduino...

Il problema non è il protocollo di trasmissione, puoi usare quello che ti pare se non sei vincolato da hardware specifico, il problema è la parte hardware che non è semplice da realizzare e costa molto in proporzione ad Arduino.

ah ok..pensavo che il procololo x 10 e i "modem" che usano le onde convolgiate (almeno certi modelli) andassero a braccetto.

in altre parole pensavo che i modem ad onde convolgliate (almeno alcuni) usassero preferenzilamente sto protocollo, quindi diventava "relativamnte facile" teovare qualche cosa :)

Martinix: ah ok..pensavo che il procololo x 10 e i "modem" che usano le onde convolgiate (almeno certi modelli) andassero a braccetto.

l'X10 è un protocollo nato per l'uso in domotica, però se non devi dialogare con hardware specifico che utilizza questo modo di dialogare puoi benissimo utilizzare qualunque altro protocollo utilizzato su i bus seriali multidrop. Tutto dipende da cosa uno deve fare, quanti punti sono presenti sulla linea di comunicazione e come deve essere strutturato il traffico dati.

grazie a tutti per le pronte risposte.
Il neo di queste soluzioni è proprio il costo e non meno la complessità di realizzazione.
Però io avevo idea di studiare qualcosa di meno complesso visto che abbiamo
un bel processorone che è appunto l’arduino.
Se si potesse realizzare un circuito molto semplice di “IMMISSIONE DISTURBO” sulla linea DC
(a 5V o 12V poco importa) e un filtrino che capta questo disturbo sarebbe il tutto fattibile più semplicemente potendosi poi concentrare sulla parte di modulazione/demod via software
che pergiunta è già implementato in varie librerie preesistenti.
Sono convinto che si possa fare una cosa del genere perchè i sistemi che ho installato in
passato erano molto piccoli e non credo che usassero tecnologie molto costose
dato il modico prezzo in linea alla concorrenza.
allego uno schemino che ho pensato:

http://www.ebay.it/itm/Mamba-shield-Narrow-Band-Powerline-Communication-PLC-Shield-for-Arduino-SPI-/201025065907?pt=LH_DefaultDomain_0&hash=item2ece0713b3

Brunello: http://www.ebay.it/itm/Mamba-shield-Narrow-Band-Powerline-Communication-PLC-Shield-for-Arduino-SPI-/201025065907?pt=LH_DefaultDomain_0&hash=item2ece0713b3

Ci ho messo 5 minuti ad aprire questo link su smartphone, quando impariamo ad usare i tag? :cold_sweat:

pablos: http://www.ebay.it/itm/Mamba-shield-Narrow-Band-Powerline-Communication-PLC-Shield-for-Arduino-SPI-/201025065907?pt=LH_DefaultDomain_0&hash=item2ece0713b3Ci ho messo 5 minuti ad aprire questo link su smartphone, quando impariamo ad usare i tag? :cold_sweat:

il Mamba è troppo complesso per ciò di cui parlo. ecco cosa ho trovato in rete grazie ai vostri illuminanti interventi: http://www.webalice.it/crapellavittorio/electronic/conv.htm

notate come per mezzo di un trasformatore 1:1 tipo quello dei modem immette i segnali sulla AC220. Si potrebbe fare qualcosa di analogo magari lavorando su una linea 12VAC invece che 12VDC.

Apprezzo i vostri interventi perchè sono sempre costruttivi e illuminanti. grazie. ;)

ottaviane: grazie a tutti per le pronte risposte. Il neo di queste soluzioni è proprio il costo e non meno la complessità di realizzazione. Però io avevo idea di studiare qualcosa di meno complesso visto che abbiamo un bel processorone che è appunto l'arduino.

Arduino non è un bel processorone, è solo una piccola mcu otto bit abbastanza limitata come potenza di calcolo. Il costo è dato dalla parte analogica aggiuntiva, che deve esserci per forza, non esiste che moduli/demoduli con Arduino in quanto non possiede l'hardware per farlo. Le librerie che citi sono relative esclusivamente alla codifica/decodifica dei dati in funzione dei vari protocolli e la gestione delle interfacce hardware, p.e. il già citato X10, interfacce che devi comunque acquistare con costi variabili tra i 20 e i 50 Euro a seconda della tipologia e delle prestazioni.

astrobeed: Arduino non è un bel processorone, è solo una piccola mcu otto bit abbastanza limitata come potenza di calcolo. Il costo è dato dalla parte analogica aggiuntiva, che deve esserci per forza, non esiste che moduli/demoduli con Arduino in quanto non possiede l'hardware per farlo. Le librerie che citi sono relative esclusivamente alla codifica/decodifica dei dati in funzione dei vari protocolli e la gestione delle interfacce hardware, p.e. il già citato X10, interfacce che devi comunque acquistare con costi variabili tra i 20 e i 50 Euro a seconda della tipologia e delle prestazioni.

forse non mi sono espresso bene :D scusatemi: una volta fatta la parte hardware di cui ho accennato, non ci vuole un granchè a modulare un piedino qualsiasi di un arduino per immettere ad esempio la sequenza di bit 100111100011100011 o come vuoi e dall'altro capo un filtro passa alto, ad esempio, con un operazionale mi va a comandare un piedino in ingresso dell'altro arduino che registra e deduce che è stato inviato il treno di bit detto. Ripeto il problema sta solo nell'immettere e nel ricevere un segnale di disturbo che io possa poi interpretare come per esempio presenza disturbo = livello logico 1 assenza disturbo = livello logico 0. Naturalmente non mi dilungo sulla teoria della sincronizzazione, del mask, degli indirizzari perchè non è questo il luogo, e perchè so cosa fare e so che non serve una potenza di calcolo elevata per mandare ogni tanto pochi bit. Il problema è mettere su con saldatore e stagno le giuste resistenze, induttanze, condensatori e transistor che facciano da immissione eprelievo segnale di disturbo. ;) mi sarebbe di enorme aiuto se qualcuno ha in mente qualcosa in merito. grazie :grinning: