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 ของแอปพลิเคชัน, frozen main.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 คือเส้นทางจาก "ฉันมีกล้องใหม่อยู่ในมือ" ไปสู่ "ฉันได้จัดส่งผลิตภัณฑ์แล้ว" จากที่นี่กล้องเป็นชิ้นส่วนหนึ่งของระบบขนาดใหญ่ที่แอปพลิเคชันรับผิดชอบ และงานที่เหลือเป็นของแอปพลิเคชันเอง