Comunicazione veloce (ESP8266 || ESP32 ) <=> Arduin_I_
Ciao Forum, credo sia il mio primo post del 2024 quindi con infinito ritardo buon anno a tutti.
Vorrei connettere alcuni arduini a uno di questi due "micro", per alleggerirgli una parte del carico. Sto pensando nello specifico a un campionamento di un segnale analogico, campionamento rapido quanto è possibile a un arduino, una serie di elaborazioni nello stesso arduino di lettura (es. media, mediana, dispersione, etc.) e a ulteriori ed eventuali elaborazioni nel ESP che si occuperebbe anche della comunicazione verso la LAN.
Tempo fa mi ero occupato di cercare qualcosa e scrivere qualche sketch di prova ma solo tra arduini. Credo che scelsi il RS485 ma ho cancellato i vecchi esperimenti. Ora ho "scoperto" che esistono gli ESP e questo cambia tutto, dato che costano una frazione di un arduino e hanno prestazioni globali imparagonabili e tutte a loro favore.
Una cosa che ricordo è che incontrai difficoltà per trasmettere lo zero che almeno in un protocollo di comunicazione segnala il fine buffer. Ma qualsiasi numero codificato in binario ha uno zero da qualche parte; girando in rete si consigliava di usare una print e trasmettere la sequenza ASCII, ma questo non è mai un sistema veloce. Suppongo sia meglio trasmettere direttamente il numero binario.
Prima che me lo diciate voi è ovvio che sto mescolando cose diverse e appunto, chiedo per fare ordine. Quello che vorrei è:
1) Implementazione senza ricorrere a funzionalità e costrutti esoterici tipo interrupt o simili. Mi accontenterei di poter trasmettere una sequenza di zeri e uno di lunghezza condivisa tra lato trasmissione e lato ricezione, in modo accessibile a un dilettante come sono; mi accontenterò della velocità permessa da una soluzione che io sia in grado di implementare.
2) Che possa connettere un master a diversi slave. Non mi serve una totale bidirezionalità ma mi basta che lo slave sia in ascolto e risponda a seconda del comando ricevuto.
3) Che si possa debuggare facilmente. Tra i miei confusi ricordi c'è quello che viene usata la seriale, e molti modelli di Arduino ne hanno solo una. RIcordo anche che comprai una specie di decoder e che con un software Pulseview potevo sniffare il traffico abbastanza facilmente. Ricordo bene? In questo caso potrei anche occupare il solo sistema di comunicazione che alcuni arduini hanno, dal momento che potrei intercettare il flusso dati in entrambe le direzioni; cercherei nei cassetti dove ho messo questo oggettino e potrei utilizzarlo.
Infine mi pare di ricordare che gli ESP emulano qualche funzionalità che in Arduino è nativa, se non sbaglio proprio la seriale, e che questo di fatto quasi allinea le prestazioni degli ESP a quelle di Arduino, beninteso in specifiche aree applicative. Anche questo potrebbe avere un peso ma non lo so.
Ovviamente qualsiasi suggerimento anche non solo strettamente limitato al problema è benvenuto.
Grazie :)
Vorrei connettere alcuni arduini a uno di questi due "micro", per alleggerirgli una parte del carico. Sto pensando nello specifico a un campionamento di un segnale analogico, campionamento rapido quanto è possibile a un arduino, una serie di elaborazioni nello stesso arduino di lettura (es. media, mediana, dispersione, etc.) e a ulteriori ed eventuali elaborazioni nel ESP che si occuperebbe anche della comunicazione verso la LAN.
Tempo fa mi ero occupato di cercare qualcosa e scrivere qualche sketch di prova ma solo tra arduini. Credo che scelsi il RS485 ma ho cancellato i vecchi esperimenti. Ora ho "scoperto" che esistono gli ESP e questo cambia tutto, dato che costano una frazione di un arduino e hanno prestazioni globali imparagonabili e tutte a loro favore.
Una cosa che ricordo è che incontrai difficoltà per trasmettere lo zero che almeno in un protocollo di comunicazione segnala il fine buffer. Ma qualsiasi numero codificato in binario ha uno zero da qualche parte; girando in rete si consigliava di usare una print e trasmettere la sequenza ASCII, ma questo non è mai un sistema veloce. Suppongo sia meglio trasmettere direttamente il numero binario.
Prima che me lo diciate voi è ovvio che sto mescolando cose diverse e appunto, chiedo per fare ordine. Quello che vorrei è:
1) Implementazione senza ricorrere a funzionalità e costrutti esoterici tipo interrupt o simili. Mi accontenterei di poter trasmettere una sequenza di zeri e uno di lunghezza condivisa tra lato trasmissione e lato ricezione, in modo accessibile a un dilettante come sono; mi accontenterò della velocità permessa da una soluzione che io sia in grado di implementare.
2) Che possa connettere un master a diversi slave. Non mi serve una totale bidirezionalità ma mi basta che lo slave sia in ascolto e risponda a seconda del comando ricevuto.
3) Che si possa debuggare facilmente. Tra i miei confusi ricordi c'è quello che viene usata la seriale, e molti modelli di Arduino ne hanno solo una. RIcordo anche che comprai una specie di decoder e che con un software Pulseview potevo sniffare il traffico abbastanza facilmente. Ricordo bene? In questo caso potrei anche occupare il solo sistema di comunicazione che alcuni arduini hanno, dal momento che potrei intercettare il flusso dati in entrambe le direzioni; cercherei nei cassetti dove ho messo questo oggettino e potrei utilizzarlo.
Infine mi pare di ricordare che gli ESP emulano qualche funzionalità che in Arduino è nativa, se non sbaglio proprio la seriale, e che questo di fatto quasi allinea le prestazioni degli ESP a quelle di Arduino, beninteso in specifiche aree applicative. Anche questo potrebbe avere un peso ma non lo so.
Ovviamente qualsiasi suggerimento anche non solo strettamente limitato al problema è benvenuto.
Grazie :)