13.4. Biblioteca OpenMV Arduino RPC¶
A biblioteca openmv-arduino-rpc é a contraparte do lado Arduino para o módulo rpc da câmara. A câmara regista funções Python invocáveis; o Arduino chama-as como se fossem funções locais, via UART, SPI, I2C ou CAN. Não existe nenhum PC a intermediar.
O padrão é simétrico. O esboço Arduino seleciona a classe de transporte que corresponde ao fio, chama uma função na câmara pelo nome e obtém o valor de retorno. O lado da câmara espelha o processo: regista funções Python invocáveis e executa o ciclo de polling da biblioteca. O enquadramento, a fragmentação e as retransmissões num barramento com ruído são tratados por ambos os lados de forma transparente, pelo que o código da aplicação apenas vê «chamar uma função na outra placa e obter um resultado».
Os exemplos do repositório cobrem as duas formas mais comuns nos projetos: chamadas de controlo remoto curtas (leitura de um sensor, acionamento de um pino, execução de um detetor e leitura do resultado) e streaming de imagens JPEG da câmara para o Arduino para reencaminhamento. Os scripts correspondentes do lado da câmara estão disponíveis na árvore do openmv em 08-RPC-Library/.
O README do repositório cobre a ligação por transporte; a referência rpc — biblioteca rpc cobre a API do lado da câmara na íntegra.