14.5. สรุป¶
คุณได้ผ่านวงจรชีวิตของกล้องตั้งแต่สคริปต์ที่ทำงานบนโต๊ะไปจนถึงผลิตภัณฑ์ที่จัดส่งแล้ว:
การสร้าง firmware แบบกำหนดเอง -- สภาพแวดล้อมการพัฒนา การสร้าง firmware image จาก source การ flash ลงบนกล้อง และเส้นทางการ debug จาก VS Code Cortex-Debug ไปยัง
gdbrunnerบรรทัดคำสั่งเมื่อมีปัญหาในด้าน firmwareการจัดส่งแอปพลิเคชัน -- การฝัง application code เข้าไปใน firmware ผ่าน frozen modules การฝัง assets เข้าไปใน ROMFS image และลำดับการค้นหาที่กำหนดว่า runtime จะโหลดไฟล์ใดจริง ๆ เมื่อบูต การแบ่งที่เกิดขึ้น:
boot.pyสำหรับการตั้งค่าสภาพแวดล้อมก่อน REPL,main.pyเป็น entry point ของแอปพลิเคชัน, frozenmain.pyสำหรับ entry และ ROMFS สำหรับส่วนที่เหลือการ Harden เพื่อการผลิต -- ไลบรารี
loggingที่เขียนไปยัง path ที่ทราบ,machine.WDTที่ feed ครั้งหนึ่งต่อ iteration ของ main-loop,try/exceptระดับบนสุดที่เปลี่ยน crash ให้เป็น event ที่บันทึกแทนการ reset, การจัดการระบบไฟล์ที่รักษาความเร็วของการดำเนินการไฟล์เมื่อแอปพลิเคชันสะสมข้อมูลในช่วงหลายเดือนในสนาม และ -- เมื่อผลิตภัณฑ์ต้องการ -- การป้องกันการอ่าน flashเนื้อหาขั้นสูง -- ใบรับรอง TLS สำหรับกล้องที่ต้องพิสูจน์ตัวตนและเข้ารหัสการรับส่งข้อมูลกับบริการเครือข่าย
กล้องที่จัดส่งแล้วมีทั้งหมดนี้: application code รันจาก firmware image watchdog ถูก feed ครั้งหนึ่งต่อ iteration ของ main-loop log ลงไปยังไดเรกทอรีที่มีวันที่บน SD card และ -- เมื่อผลิตภัณฑ์ต้องการ -- flash ของมันถูกล็อกป้องกันการอ่าน
14.5.1. จะไปต่อที่ไหน¶
Production เป็นบทสุดท้ายของ tutorial จากที่นี่เอกสารแยกออกเป็นเนื้อหาอ้างอิง:
The library reference เป็นมุมมอง "ชื่อที่แน่นอนของการเรียกนี้คืออะไร" แบบตัวอักษรของทุก module ที่กล้อง expose --
machine,logging,os,csi,image,mlและส่วนที่เหลือThe per-board quickref pages ครอบคลุมรายละเอียดเฉพาะของกล้องทุกรุ่นในผลิตภัณฑ์ OpenMV -- pinout, bus ที่ mount ได้, board ID, ความพร้อมใช้งานของอุปกรณ์ต่อพ่วง และความแตกต่างเล็กน้อยที่สำคัญเมื่อแอปพลิเคชันต้องทำงานบนชิ้นส่วนที่เฉพาะเจาะจง
The sensor reference pages และ shield reference pages ครอบคลุม image sensor แต่ละตัวและ add-on shield ที่กล้องสามารถพกพาได้ -- ข้อกำหนดต่อชิ้น, pinout และหมายเหตุที่แอปพลิเคชันต้องการเมื่อเลือก sensor และ shield สำหรับการสร้าง
The MicroPython language reference ครอบคลุมตัวภาษาเอง -- ความแตกต่างของ syntax จาก CPython, ข้อมูลเฉพาะของการ implement ที่สำคัญเมื่อสคริปต์ครอบคลุมทั้งสอง และเอกสาร inline-assembler สำหรับกรณีที่ Python ช้าเกินไป
Tutorial คือเส้นทางจาก "ฉันมีกล้องใหม่อยู่ในมือ" ไปสู่ "ฉันได้จัดส่งผลิตภัณฑ์แล้ว" จากที่นี่กล้องเป็นชิ้นส่วนหนึ่งของระบบขนาดใหญ่ที่แอปพลิเคชันรับผิดชอบ และงานที่เหลือเป็นของแอปพลิเคชันเอง