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.

Po lewej płytka Arduino, a po prawej kamera OpenMV, połączone czterema oznaczonymi liniami transportowymi -- UART (dwa przewody), SPI (cztery przewody), I2C (dwa przewody) i CAN (dwa przewody) -- pokazującymi powiązania na poziomie przewodów, które potrafi obsłużyć biblioteka Arduino RPC.

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.