Go Down

Topic: PJON - Multi-master, multi-media network protocol stack  (Read 76908 times) previous topic - next topic

manolomao

Nel setup
Code: [Select]

bus.strategy.set_serial(&busHC12);

Giusto??
Tornando sul discorso
Se metti qui le caratteristiche del centrale e eventuali dubbi che non ti permettono un rapido cambio di piattaforma si può vedere se in molti si trova una soluzione migliore.
Per la parte software più semplice di come PJON ti permette non mi viene in mente nulla, puoi usare due bus separati e gestire tu quli e qunado inviare messaggi tra un bus e l'altro o demandare il tutto alla libreria in modo automatico, meglio di così :)
Arduino centrale (chiamo2) dovrebbe comunicare con arduino 1 via radio (o wi-fi) e arduino 3 via rs485 (o anch'esso via radio-wi-fi). Arduino 2 ha degli attuatori su I2C (con due PCF8574) e due uscite digitali che comandano dei led.
Arduino 2 legge una tensione sull'analogica ed invia a arduino 1 lo stato di questo segnale (se supera una soglia imposta).
Ovviamente arduino 2 fa da trammite quando i dati sono destinati da arduino 1 a arduino 3.
Spero di essere stato chiaro sulle caratteristiche e funzionamento.
I miei dubbi sono:
-lavorare con due softwareserial su arduino nano
-configurare correttamente i tre arduino per farli parlare a dovere (come già fanno ora con la rs485)

fabpolli

Mi sono perso nella tua descrizione  :)
Comunque le risposte ai tuoi dubbi sono:
Non puoi lavorare con due SoftwareSerial contemporaneamente, o meglio solo una è in ascolto quindi se da una ricevi e basta e con l'altra invii e basta allora si puoi ma se devi contemporaneamente ricevere da entrambe e senza saperlo con altri mezzi allora non funziona (che è la cosa che mi ha fatto spostare su una Mega per un mio progetto)
Configurare i tre arduino sicuramente puoi se quello che fa da "ponte" lo configuri come switch come ti ho indicato (se non ricordo male) seguendo la documentazione di PJON sul relativo sito di riferimento, magari in fase iniziale non ti tornerà tanto semplice ma non è impossibile o troppo difficile da fare, se poi puoi farti un progetto demo con tre arduino per fare le prove allora è ancora meglio  ;)

manolomao

Mi stai illuminando!!!
Arduino 2 comunica con arduino 1 in maniera bidirezionale, mentre arduino 2 con arduino 3 trasmette solo...
Quindi secondo te riesco a gestire il tutto????

fabpolli

Si ma quando stai trasmettendo da arduino 2 ad arduino 3 se ti arrivano messaggi da Arduino 1 li perdi irrimediabilmente, se invece Arduino 1 ti invia qualcosa solo su richiesta di Arduino 2 allora riesci a gestirlo.
Io comunque passerei ad una scheda con almeno due seriali hardware in modo da averne solo una software, una HW per il debug e l'altra HW per sostituire una SW, tanto esiste una scheda con form factor molto simile al nano ma con due seriali HW, poi vedi tu

Standardoil

#364
May 16, 2019, 04:43 pm Last Edit: May 16, 2019, 04:44 pm by Standardoil
Se ricordo bene c'è una libreria, la "altsoftserial" che permette trasmissione r ricezione contemporanee su più canali
https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html
provate a darci uno sguardo
Prima legge di Nelson (che sono io): Se vuoi il mio aiuto dimostrami almeno che hai letto il nostro "aiutateCi ad aiutarVi"

Non bado a studenti, che copino altrove

Tu hai problema-Io ti domando-Tu non mi rispondi: vuol dire che non ti serve più

fabpolli

Interessante, ma da quel che ho letto ha vincoli stringenti sul baudrate per usarle in contemporanea occorre prestarvi attenzione! OP Avvisato mezzo salvato ;) :)

steve-cr

In tutta franchezza non vedo la necessità di inventarsi un nuovo protocollo di comunicazione quando ne esistono molti free, perfettamente documentati, completi di librerie per Arduino stracollaudate e affidabilissime, tanto per citarne uno il modbus.
Far dialogare una rete con un sistema onewire sulle lunghe distanze, sopratutto in ambito casalingo, è volersi fare del male da solo, oltre alla eccessiva lentezza della linea c'è la scarsa affidabilità, anche in questo caso esistono soluzioni super collaudate e iperaffidabili, p.e. la RS485.
Scusate, ma non ho resistito !!! Per la serie "Non ragioniam di lor, ma guarda e passa..."

Ho visto solo adesso questo thread e lo trovo notevole!
Cioè, abbiamo un genio qui dentro e non lo sapevo?
Complimenti davvero! Con calma comincerò dall'inizio il thread, me lo leggerò tutto e mi farò una cultura anche su PJON
Samantha Cristoforetti: "Mi fai fare un giro sul tuo ultraleggero?". "Certamente, però piloto io !"

ivanmeneo

Come consigliatomi da Guglielmo in risposta ad un mio post https://forum.arduino.cc/index.php?topic=616932.0, faccio i complimenti all'autore del thread e a tutto lo studio e l'apporto degli altri utenti per lo sviluppo di questo metodo di comunicazione.
Ho iniziato ad interessarmi da poco e lo trovo molto stimolante.
Vorrei applicarlo appunto al mio progetto che si propone di far comunicare tra loro circa una ventina di MCU's Arduino in modalità Slave, con un Master (..inizialmente pensavo ad uno Yun Rev2) che richiede ad ogni Slave le informazioni ricavate da un pacchetto di sensori uguali, posti appunto su ogni Slave.

Avevo pensato ad una comunicazione wireless in alternativa ad una I2C wired.
Sto ancora studiando che tipo di moduli hardware utilizzare (...tipo BT HC-05 oppure nRF24, per non spendere troppo il budget con gli XBee), perché ero partito con degli Arduino WiFi Rev2 ma ho trovato non poche difficoltà!

Resto in ascolto per suggerimenti ed intanto mi rileggo bene la comunicazione PJON!  ;)

Grazie in anticipo
Arduino UNO, Mega, Yun Rev 2, WiFi Rev 2

gpb01

... in alternativa ad una I2C wired.
... questa cosa dimenticala subito! Il bus I2C è nato per collegare chip sulla stessa board, poi utilizzato anche per sensori a piccola distanza (parliamo di 10/20 cm) ma certamente NO per fare collegamenti a distanza (... anche se esistono chip dedicati per poter collegare sensori a distanze superiori).

Se puoi "cablare", allora pensa ad una molto più robusta ed affidabile RS485 che metti in piedi semplicemente con un doppino telefonico ;)

Guglielmo
Search is Your friend ... or I am Your enemy !

Standardoil

Parzialmente OT
Futura regola tre dello aiutateci ad aiutarvi:
Descrivi il problema, non incaponirti su una soluzione
Che si può cablare è cosa nuova?
Non me lo ricordavo
Fine OT
Prima legge di Nelson (che sono io): Se vuoi il mio aiuto dimostrami almeno che hai letto il nostro "aiutateCi ad aiutarVi"

Non bado a studenti, che copino altrove

Tu hai problema-Io ti domando-Tu non mi rispondi: vuol dire che non ti serve più

ivanmeneo

... questa cosa dimenticala subito! Il bus I2C è nato per collegare chip sulla stessa board, poi utilizzato anche per sensori a piccola distanza ...
Grazie per la precisazione, sempre utilissima Guglielmo!
Purtroppo in rete molte volte trovi info discordanti o approssimative, che mi avevano indotto a pensare di poter collegare tutti  i microcontrollori su una rete cablata I2C, ipoteticamente con 2 semplici fili, per intenderci.
Ora sto studiando la comunicazione wireless, perché la wired mi crea non pochi problemi. Ma non lascio nulla al caso, visto che comunque, utilizzando per esempio moduli nRF24, il budget andrebbe comunque a crescere, moltiplicato per schede wireless, adattatori SPI e dispositivi vari.

Arduino UNO, Mega, Yun Rev 2, WiFi Rev 2

gpb01

Due cose ...

1. Quando si quota un post, NON è necessario riportarlo (inutilmente) tutto; bastano poche righe per far capire di cosa si parla ed a cosa ci si riferisce. Gli utenti da device "mobile" ringrazieranno per la cortesia ;)

2. prova a prendere in considerazione gli economici, ma potenti HC-12.

Guglielmo
Search is Your friend ... or I am Your enemy !

Standardoil

Mi domandavo infatti perché tra tutti quelli che lo OP aveva preso in considerazione mancassero proprio HC12 e i loro gemelli HC11
Che però qui sarebbero un po' OT, visto che non serve molto SW per farli andare
Se lo OP da uno sguardo, magari, al mio "era stagione di pin remoti" trova idee a cariolate
Prima legge di Nelson (che sono io): Se vuoi il mio aiuto dimostrami almeno che hai letto il nostro "aiutateCi ad aiutarVi"

Non bado a studenti, che copino altrove

Tu hai problema-Io ti domando-Tu non mi rispondi: vuol dire che non ti serve più

ivanmeneo

Si Guglielmo, errori da nuovo utente il fatto del quote!
Aggiungo che nella mia ricerca ho incluso gli HC-08, con un riferimento ad un tuo post dove ne spiegavi il funzionamento in merito a questi moduli. E sono andato avanti fino agli HM-10. Gli HC-12 gli avevo scartati in un primo momento perché mi ero focalizzato sugli HM-10 (che però se non erro credo siano di tipo BLE), e vedendoli provvisti di antenne per un uso "long range" e con costi superiori, mi erano parsi sovradimensionati per le mie esigenze.
Però se me li consigli mi studio il software di funzionamento e faccio qualche prova.
Arduino UNO, Mega, Yun Rev 2, WiFi Rev 2

gpb01

... e vedendoli provvisti di antenne per un uso "long range" e con costi superiori ...
... costi superiori? :o

Stiamo parlando di moduli che si trovano normalmente (dagli "spacciatori" cinesi :D) intorno ai 2.5 US$ !

Guglielmo
Search is Your friend ... or I am Your enemy !

Go Up