v3.6.8

v3.6.8 เพิ่มบอร์ด OpenMV Cam Pure Thermal ทำให้การอนุมาน tf เร็วขึ้นประมาณ 4 เท่า โดยย้าย TensorFlow ไปใช้ CMSIS-NN ขยายไลบรารี rpc บนเดสก์ท็อปด้วยอินเทอร์เฟซ UART / Kvaser CAN / I2C / SPI และเปิดใช้งาน SD card บน Arduino Portenta H7 การจัดการพาร์ติชัน SD card และ import sensor บนบอร์ดที่ไม่มี sensor มีการเปลี่ยนแปลง — อ่านการเปลี่ยนแปลงที่ทำให้เกิดความเสียหายด้านล่าง

Highlights

  • OpenMV Cam Pure Thermal — รองรับบอร์ดใหม่

  • TensorFlow เร็วขึ้น ~4 เท่า — การอนุมาน tf ตอนนี้ทำงานบน CMSIS-NN

  • ไลบรารี rpc — เพิ่มอินเทอร์เฟซ UART, Kvaser CAN และ I2C/SPI master/slave

  • Portenta H7 SD card — เปิดใช้งาน SD card พร้อมการแก้ไขนาฬิกา PLL1/HSE/ADC

  • ความเสียหาย: การบูต SD card ตอนนี้ตรวจจับพาร์ติชันโดยอัตโนมัติ และ import sensor จะแสดงข้อผิดพลาดเมื่อไม่มี image sensor — ดูการเปลี่ยนแปลงที่ทำให้เกิดความเสียหาย

New features

  • rpc — เพิ่มอินเทอร์เฟซ UART, Kvaser CAN และ I2C/SPI master/slave ในไลบรารี RPC บนเดสก์ท็อป (rpc_uart_master / rpc_uart_slave, rpc_kvarser_can_master / rpc_kvarser_can_slave และ I2C/SPI master/slave)

  • บอร์ดที่ไม่มี sensor — เฟิร์มแวร์ตอนนี้รองรับบอร์ดที่ไม่มี image sensor (เปิดใช้งานบอร์ด Pure Thermal)

  • เรขาคณิต JPEG — เพิ่ม struct สำหรับอ่านค่าตั้งค่า JPEG (jpg_w / jpg_h / jpg_size) สำหรับการอ่านเรขาคณิต JPEG

Other changes and improvements

  • TensorFlow ถูกเปลี่ยนไปใช้ CMSIS-NN เพื่อให้การอนุมาน tf เร็วขึ้นประมาณ 4 เท่า (ปรับการตั้งค่า imlib ต่อบอร์ด); ตัวอย่าง ulab ใช้ ulab.numerical.mean / std; ตัวอย่าง deep-sleep ตอนนี้เรียก sensor.sleep(True) ก่อนการเขียนรีจิสเตอร์ regulator-bypass ของ OV7725

Bug fixes

Camera and imaging:

  • แก้ไขการโหลดภาพ JPEG จากดิสก์ (เรขาคณิต JPEG ถูกปฏิเสธว่าเป็นรูปแบบที่ไม่รองรับ) ทำให้ sensor.reset() ทำการรีเซ็ตแบบ hard reset เพื่อให้ sensor ฟื้นตัวหลังจากการปิดตัว regulator แก้ไขการตั้งค่า alternate-function / clock ของ FLIR Lepton SPI บน OpenMV 4 / 4 Plus และแก้ไขการกำหนดพิน FSYNC บน OpenMV 4 / 4 Plus

Connectivity and system:

  • แก้ไขการเขียน pyb.DAC แบบมีเวลาบน H7 ทำให้ WINC1500 WLAN.start_ap() ไม่ต้องใช้ key สำหรับความปลอดภัย OPEN แก้ไขการใช้ I2C bus ร่วมกันระหว่าง camera และอุปกรณ์ต่อพ่วงของผู้ใช้บน Portenta และทำให้ self-test SWD framebuffer marker เป็นแบบต่อบอร์ดเพื่อไม่ให้เขียนทับ framebuffer bpp บนบอร์ดที่ไม่มี

Hardware and board support

  • OpenMV Cam Pure Thermal — บอร์ดใหม่

  • Arduino Portenta H7 — เปิดใช้งาน SD card พร้อม PLL1 (400 MHz/40 MHz, USB/RNG บน HSI48), HSE (25 MHz) และการแก้ไขแหล่งนาฬิกา ADC

Breaking API changes

การเปลี่ยนแปลง API ที่ผู้ใช้มองเห็นได้ระหว่าง v3.6.7 และ v3.6.8 ขอบเขต: Python C-modules ใน modules/ และ Python libraries ใน scripts/libraries/

การเปลี่ยนแปลงที่ทำให้เกิดความเสียหายทั้งสองอย่างเป็นการเปลี่ยนแปลง พฤติกรรม (API เดิม ผลลัพธ์ต่างกัน) — ตรวจสอบสคริปต์ที่ได้รับผลกระทบอีกครั้ง แต่ละ commit hash เชื่อมโยงไปยัง diff บน GitHub

การตรวจจับพาร์ติชัน SD card อัตโนมัติ (พฤติกรรม)

การบูต SD card ตอนนี้ตรวจจับพาร์ติชันโดยอัตโนมัติแทนที่จะ mount พาร์ติชัน 1 เสมอ การ์ดที่ใช้พฤติกรรม fixed-partition-1 เดิมอาจ mount filesystem ที่แตกต่างออกไป ตรวจสอบ SD card หลายพาร์ติชันและ mount ที่คาดหวังอีกครั้ง

Commits: 1f7f003b8

import sensor แสดงข้อผิดพลาดบนบอร์ดที่ไม่มี sensor (พฤติกรรม)

เพื่อรองรับบอร์ดที่ไม่มี image sensor การตรวจสอบการเริ่มต้นของโมดูล sensor จะทำงานเมื่อ import ดังนั้น import sensor จะ raise RuntimeError เมื่อไม่พบ image sensor (แทนที่จะล้มเหลวในภายหลัง) บนบอร์ดที่มีเฉพาะ thermal ให้ป้องกัน import sensor ด้วย try / except หรือหลีกเลี่ยงการ import

Commits: 17b444ad1

Migration checklist

ตรวจสอบ SD card หลายพาร์ติชันกับการตรวจจับพาร์ติชันอัตโนมัติใหม่อีกครั้ง (การเปลี่ยนแปลง SD card) และป้องกัน import sensor บนบอร์ดที่ไม่มี sensor / thermal-only (การเปลี่ยนแปลง sensor-import) สคริปต์อื่นๆ ทั้งหมดทำงานได้โดยไม่ต้องแก้ไข