13.4. Бібліотека OpenMV Arduino RPC

Бібліотека openmv-arduino-rpc є аналогом модуля rpc на стороні Arduino. Камера реєструє виклики Python; Arduino викликає їх як локальні функції через UART, SPI, I2C або CAN. Жодний ПК не перебуває посередині.

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.

Схема симетрична. Скетч Arduino обирає клас транспорту відповідно до з’єднання, викликає функцію на камері за іменем та отримує повернене значення. Сторона камери дзеркально відображає це: реєструє виклики Python та запускає цикл опитування бібліотеки. Обрамлення, фрагментація та повторні спроби на зашумленій шині обробляються обома сторонами приховано, тому код застосунку бачить лише «виклик функції на іншій платі та отримання результату».

Репозиторій містить приклади, що охоплюють дві схеми, які найчастіше потрібні проектам: короткі дистанційні виклики (зчитати датчик, керувати виводом, запустити детектор і повернути результат) та потокове передавання JPEG-зображень з камери на Arduino для подальшої пересилки. Парні скрипти для камери постачаються в дереві openmv в розділі 08-RPC-Library/.

README репозиторію охоплює підключення для кожного транспорту; довідник rpc — бібліотека rpc повністю описує API на стороні камери.