13.4. OpenMV Arduino RPC 库

openmv-arduino-rpc 库是与摄像头 rpc 模块相对应的 Arduino 端组件。摄像头注册 Python 可调用对象;Arduino 通过 UART、SPI、I2C 或 CAN 像调用本地函数一样调用它们。中间没有 PC 参与。

左侧是一块 Arduino 开发板,右侧是一台 OpenMV 摄像头,二者由四条带标签的传输线相连—— UART(两根线)、SPI(四根线)、I2C(两根 线)和 CAN(两根线)——展示了 Arduino RPC 库能够驱动的线缆级配对方式。

这种模式是对称的。Arduino 程序选择与所用线缆相匹配的传输类,按名称调用摄像头上的某个函数,并取回返回值。摄像头端则与之相镜像:注册 Python 可调用对象,运行库的轮询循环。在嘈杂总线上的成帧、分片和重试都由两端在底层处理,因此应用代码看到的只是“在另一块板上调用一个函数,取回一个结果”。

该仓库的 示例 涵盖了大多数项目所需的两种形态:简短的远程控制调用(读取一个传感器、驱动一个引脚、运行一个检测器并把结果读回)以及从摄像头到 Arduino 的 JPEG 图像流式传输以便进一步转发。与之配对的摄像头端脚本随 openmv 代码树一起提供,位于 08-RPC-Library/ 下。

仓库 README 介绍了各传输方式的接线;rpc --- rpc 库 参考资料则完整介绍了摄像头端的 API。