Interfacciare Arduino con RaspberryPI

Ciao a tutti,

volevo mettere in comunicazione un RaspberryPI 3B+ con un Arduino Nano 33 IOT. Volevo chiedervi conferma del mio ragionamento ed, eventualmente, raccogliere vostre valutazioni o consigli.

  1. comunicazione via i2c connettendo direttamente i relativi sda e scl (entrambe i dispositivi lavorano a 3.3V quindi mi basta mettere le resistenze di pull-up e via). Questo sistema mi permetterebbe di condividere con entrambe i dispositivi (dove solo uno alla volta farà da master) eventuali ulteriori moduli slave connessi anch'essi via i2c (lcd e simili).

  2. comunicazione seriale TXRX andando a unire tra loro i due dispositivi. Buona per scambio informazioni/dati tra i due dispositivi ma arduino si gestirebbe gli eventuali suoi moduli slave e il RaspberryPI i suoi.

  3. comunicazione SPI, come la 1 ma in tal caso in condivisione ci sono solo eventuali utenze presenti sulla SPI. Anche in questo caso andrei ad utilizzare un solo dispositivo alla volta come master.

posso predisporre tutti e tre i metodi e attivarli a bisogno?

Mi chiedo il motivo per una complicazioni di tale livello... Visto che parli di moduli e sensori i2c/SPI non puoi fare tutto con uno solo dei due dispositivi visto che hanno sia l'una che l'altra interfaccia entrambi?

Domanda lecita, ho omesso la mia finalità: fare una pcb popolata dai moduli SPI e i2c compatibile Arduino-Raspberry per poi concentrarmi sullo studio della programmazione delle varie interfacce.
Il post nasce dall’idea del ‘e se raspberry e Arduino fossero connessi contemporaneamente? Come scambiare eventuali dati/condividere moduli?’

... ovviamente SI ... sono tutti bus separati e, se li hai su pin diversi, non c'è alcun motivo per cui tu non li possa avere tutti connessi e, volendo, tutti in uso.

Guglielmo

Certamente, mi rimane solo un dubbio sulla gestione SPI.

Arduino e il raspberry hanno tra loro connessi direttamente miso, mosi, sck. Ma per i pin di abilitazione delle periferiche devo prevedere una sorta di deviatore manuale che devii verso il modulo master il segnale?

Stai parlando di connettere periferiche e NON Arduino e Raspberry che parlano tra di loro ?

Perché ricorda che MISO è Master Input Slave Ourput, MOSI è Master Output Slave Input, e SCK è il clock quindi ... occorre ben definire chi fa il Master e quali sono gli Slave ed il Master gestisce i vari CS (Chip Select).

Guglielmo