13.4. Libreria OpenMV Arduino RPC

La libreria openmv-arduino-rpc è la controparte lato Arduino del modulo rpc della camera. La camera registra dei callable Python; l’Arduino li chiama come se fossero funzioni locali, tramite UART, SPI, I2C o CAN. Nessun PC si frappone in mezzo.

Una scheda Arduino a sinistra e una camera OpenMV a destra, collegate da quattro linee di trasporto etichettate -- UART (due fili), SPI (quattro fili), I2C (due fili) e CAN (due fili) -- che mostrano gli accoppiamenti a livello di filo che la libreria Arduino RPC può pilotare.

Il pattern è simmetrico. Lo sketch Arduino sceglie la classe di trasporto che corrisponde al filo, chiama una funzione sulla camera per nome e ottiene indietro il valore di ritorno. Il lato camera lo rispecchia: registra dei callable Python, esegue il ciclo di polling della libreria. La gestione del framing, della frammentazione e dei tentativi su un bus rumoroso è curata da entrambi i lati sottostante, così il codice applicativo vede semplicemente «chiama una funzione sull’altra scheda, ottieni un risultato indietro».

Gli esempi del repository coprono le due forme di cui la maggior parte dei progetti ha bisogno: brevi chiamate di controllo remoto (leggere un sensore, pilotare un pin, eseguire un rilevatore e leggerne indietro il risultato) e lo streaming di immagini JPEG dalla camera all’Arduino per inoltrarle ulteriormente. Gli script lato camera abbinati sono forniti nell’albero openmv sotto 08-RPC-Library/.

Il README del repository copre il cablaggio per ciascun trasporto; il riferimento rpc — libreria rpc copre per intero l’API lato camera.