13.4. Biblioteca OpenMV Arduino RPC

A biblioteca openmv-arduino-rpc é a contraparte, no lado do Arduino, do módulo rpc da câmera. A câmera registra objetos chamáveis do Python; o Arduino os chama como se fossem funções locais, por UART, SPI, I2C ou CAN. Nenhum PC fica no meio.

An Arduino board on the left and an OpenMV cam on the right, connected by four labelled transport lines -- UART (two wires), SPI (four wires), I2C (two wires), and CAN (two wires) -- showing the wire-level pairings the Arduino RPC library can drive.

O padrão é simétrico. O sketch do Arduino escolhe a classe de transporte que corresponde ao fio, chama uma função na câmera pelo nome e recebe o valor de retorno de volta. O lado da câmera espelha isso: registra objetos chamáveis do Python e roda o laço de polling da biblioteca. O enquadramento, a fragmentação e as retentativas em um barramento ruidoso são tratados por ambos os lados internamente, de modo que o código da aplicação vê apenas “chame uma função na outra placa e receba um resultado de volta”.

Os exemplos do repositório cobrem as duas formas que a maioria dos projetos precisa: chamadas curtas de controle remoto (ler um sensor, acionar um pino, executar um detector e ler o resultado de volta) e streaming de imagens JPEG da câmera para o Arduino para encaminhamento adiante. Scripts pareados do lado da câmera vêm na árvore do openmv em 08-RPC-Library/.

O README do repositório cobre a fiação por transporte; a referência rpc — biblioteca rpc cobre a API do lado da câmera por completo.