13.4. OpenMV Arduino RPC 라이브러리¶
openmv-arduino-rpc 라이브러리는 cam의 rpc 모듈에 대응하는 Arduino 측 라이브러리입니다. cam은 Python 호출 가능 객체를 등록하고, Arduino는 마치 로컬 함수인 것처럼 UART, SPI, I2C 또는 CAN을 통해 이를 호출합니다. 중간에 PC가 없습니다.
이 패턴은 대칭적입니다. Arduino 스케치는 전선에 맞는 전송 클래스를 선택하고, cam의 함수를 이름으로 호출하여 반환값을 돌려받습니다. cam 측은 이를 그대로 반영합니다: Python 호출 가능 객체를 등록하고 라이브러리의 폴링 루프를 실행합니다. 잡음이 많은 버스에서의 프레이밍, 단편화, 재시도는 양쪽 모두에서 내부적으로 처리되므로, 애플리케이션 코드는 그저 “다른 보드의 함수를 호출하고 결과를 돌려받는다”고만 봅니다.
저장소의 예제는 대부분의 프로젝트에 필요한 두 가지 형태를 다룹니다: 짧은 원격 제어 호출(센서 읽기, 핀 구동, 검출기 실행 후 결과 읽기)과 cam에서 Arduino로 전달하기 위한 JPEG 이미지 스트리밍입니다. 짝을 이루는 cam 측 스크립트는 openmv 트리의 08-RPC-Library/에 함께 제공됩니다.
저장소 README는 전송별 배선을 다루며, rpc — rpc 라이브러리 참조는 cam 측 API를 완전하게 다룹니다.