13.4. ספריית OpenMV Arduino RPC

הספרייה openmv-arduino-rpc היא המקבילה בצד Arduino למודול rpc של המצלמה. המצלמה רושמת אובייקטים ניתנים לקריאה (callables) ב-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, מריץ את לולאת הסקירה (polling) של הספרייה. מסגור (framing), פרגמנטציה, וניסיונות חוזרים על אפיק רועש מטופלים על ידי שני הצדדים מתחת לפני השטח, כך שקוד היישום רואה רק ”קרא לפונקציה על הלוח השני, קבל תוצאה בחזרה“.

ה-examples במאגר מכסים את שתי הצורות שרוב הפרויקטים צריכים: קריאות שלט-רחוק קצרות (קריאת חיישן, הפעלת פין, הרצת מזהה וקריאת התוצאה בחזרה) והזרמת תמונות JPEG מהמצלמה אל ה-Arduino להעברה הלאה. סקריפטים מקבילים בצד המצלמה נשלחים בעץ openmv תחת 08-RPC-Library/.

ה-README של המאגר מכסה את החיווט לכל תעבורה; מקור העיון rpc — ספריית rpc מכסה את ה-API בצד המצלמה במלואו.