13.4. Biblioteca OpenMV Arduino RPC

Biblioteca openmv-arduino-rpc este omologul de pe partea Arduino al modulului rpc al camerei. Camera înregistrează funcții Python apelabile; Arduino le apelează ca și cum ar fi funcții locale, prin UART, SPI, I2C sau CAN. Niciun PC nu se află la mijloc.

O placă Arduino în stânga și o cameră OpenMV în dreapta, conectate prin patru linii de transport etichetate -- UART (două fire), SPI (patru fire), I2C (două fire) și CAN (două fire) -- arătând perechile la nivel de fir pe care biblioteca Arduino RPC le poate gestiona.

Tiparul este simetric. Schița (sketch) Arduino alege clasa de transport care se potrivește cu firul, apelează o funcție de pe cameră după nume și primește înapoi valoarea de retur. Partea camerei o reflectă în oglindă: înregistrați funcții Python apelabile, rulați bucla de interogare a bibliotecii. Încadrarea, fragmentarea și reîncercările pe o magistrală zgomotoasă sunt gestionate de ambele părți pe dedesubt, astfel încât codul aplicației vede doar „apelează o funcție pe cealaltă placă, primește un rezultat înapoi”.

Exemplele din depozit acoperă cele două forme de care au nevoie majoritatea proiectelor: apeluri scurte de control la distanță (citirea unui senzor, comanda unui pin, rularea unui detector și citirea rezultatului înapoi) și transmiterea în flux a imaginilor JPEG de la cameră la Arduino pentru redirecționare mai departe. Scripturile pereche de pe partea camerei vin în arborele openmv la 08-RPC-Library/.

Fișierul README al depozitului acoperă cablarea per transport; referința rpc — biblioteca rpc acoperă în întregime API-ul de pe partea camerei.