12. โปรโตคอลโฮสต์

กล้อง OpenMV ทุกตัวมาพร้อมกับสแต็กโปรโตคอลที่เปิดเผยกล้องเป็นชุดช่องข้อมูลที่มีชื่อให้กับโปรแกรมโฮสต์ โปรแกรมโฮสต์อาจเป็นสคริปต์ Python บนแล็ปท็อปของนักพัฒนา GUI บนเดสก์ท็อป กล้องอีกตัวที่ปลายอีกด้านของ UART หรือบริการที่ทำงานบนเวิร์กสเตชันที่ดูแลกล้องหลายตัว กล้องไม่สนใจว่าจะเป็นแบบไหน -- การจัดกรอบเดียวกัน กลไกความน่าเชื่อถือเดียวกัน การแยกส่วนช่องเดียวกันทำงานได้กับทุกแบบ

นี่คือคำตอบสำหรับสองคำถามที่เกิดขึ้นบ่อยครั้งเมื่อโปรเจกต์กล้องออกจาก IDE:

  • "ฉันจะนำมุมมองสดของสิ่งที่กล้องเห็นไปแสดงใน GUI แบบกำหนดเองบนแล็ปท็อปได้อย่างไร?"

  • "ฉันจะให้ผู้ปฏิบัติงานเปลี่ยนค่าขีดแบ่งหรือเลือกบริเวณที่สนใจ (ROI) ขณะทำงานจริงโดยไม่ต้องแฟลชซ้ำได้อย่างไร?"

โมดูล protocol ฝั่งกล้องและแพ็กเกจ openmv-python ฝั่งโฮสต์ตอบทั้งสองคำถาม โดยให้คลาส Python บนกล้องเปิดเผย ช่อง ที่คลาส Python บนโฮสต์สามารถอ่าน เขียน และตอบสนองต่อเหตุการณ์ได้ ทั้งหมดผ่านการเชื่อมต่อ USB หรืออนุกรมเพียงสายเดียว

A host PC connects to a cam over USB; the cam exposes three channels -- a frame channel for image data, a config channel for control values, and the built-in stdout channel for prints -- and the host script reads or writes each.

บทนี้สอนทั้งสองฝั่ง โค้ดฝั่งกล้องแสดงวิธีลงทะเบียนช่องและป้อนข้อมูล โค้ดฝั่งโฮสต์แสดงวิธีเชื่อมต่อ แสดงรายการช่อง ดึงข้อมูล และส่งคำสั่งกลับ เครื่องมือจริงที่จัดส่งในไดเรกทอรี openmv-projects/tools/ ใช้รูปแบบที่แสดงไว้ที่นี่โดยตรง

สรุป