13.4. Biblioteka OpenMV Arduino RPC¶
Biblioteka openmv-arduino-rpc to odpowiednik modułu rpc kamery po stronie Arduino. Kamera rejestruje wywoływalne obiekty Pythona; Arduino wywołuje je tak, jakby były lokalnymi funkcjami, przez UART, SPI, I2C lub CAN. Pośrodku nie ma żadnego komputera.
Wzorzec jest symetryczny. Szkic Arduino wybiera klasę transportu pasującą do przewodu, wywołuje funkcję na kamerze po nazwie i otrzymuje z powrotem wartość zwracaną. Strona kamery to odzwierciedla: rejestruje wywoływalne obiekty Pythona i uruchamia pętlę odpytującą biblioteki. Ramkowanie, fragmentacja i ponawianie prób na zaszumionej magistrali są obsługiwane pod spodem po obu stronach, więc kod aplikacji widzi po prostu „wywołaj funkcję na drugiej płytce, odbierz wynik”.
Przykłady w repozytorium obejmują dwa kształty potrzebne większości projektów: krótkie wywołania zdalnego sterowania (odczyt z sensora, sterowanie pinem, uruchomienie detektora i odczytanie wyniku) oraz strumieniowanie obrazu JPEG z kamery do Arduino w celu dalszego przekazywania. Powiązane skrypty po stronie kamery znajdują się w drzewie openmv w katalogu 08-RPC-Library/.
Plik README repozytorium opisuje okablowanie dla poszczególnych transportów; dokumentacja rpc — biblioteka rpc w pełni opisuje API po stronie kamery.