v4.4.0#

v4.4.0 เพิ่ม API tf.regression() รองรับ FLIR Lepton บน OpenMV Cam H7 Pro รองรับโคโปรเซสเซอร์ Cortex-M4 บน Arduino Nicla Vision และอัปเดต MicroPython เป็นเวอร์ชัน 1.19 โมดูลเฉพาะบอร์ดและพฤติกรรม WiFi/LCD บางส่วนเปลี่ยนแปลง — อ่านรายละเอียดการเปลี่ยนแปลงที่ส่งผลกระทบด้านล่าง

จุดเด่น#

  • tf.regression() — รันโมเดล regression ของ TensorFlow Lite แบบ 1D-input/1D-output

  • รองรับเซนเซอร์ความร้อน FLIR Lepton บน OpenMV Cam H7 Pro

  • Arduino Nicla Vision — รองรับโคโปรเซสเซอร์ Cortex-M4, MicroSpeech ทำงานได้, LPUART1

  • อัปเดต MicroPython เป็น 1.19; อัปเดต ulab เป็น 5.1.1

  • การเปลี่ยนแปลงที่ส่งผลกระทบ: โมดูล lcd/tv บน Nicla Vision ถูกปิดใช้งาน และไดรเวอร์ WiFi ของ RP2040 Connect เปลี่ยนแปลง — ดูรายละเอียดการเปลี่ยนแปลงที่ส่งผลกระทบ

ฟีเจอร์ใหม่#

  • tf.regression(model, input_array) — ฟังก์ชันใหม่สำหรับโมเดล regression ของ TensorFlow Lite แบบ 1D input/output คืนค่าเป็นรายการของ float

  • การควบคุม GC2145sensor.set_auto_exposure() และ sensor.set_auto_whitebal() ตอนนี้ทำงานได้บน GC2145 (สามารถปิดการปรับแสงอัตโนมัติ/การปรับสมดุลสีขาวได้ แต่ยังไม่รองรับการตั้งค่า exposure/gain โดยตรง)

  • Arduino Nicla Vision — เปิดใช้งานโคโปรเซสเซอร์ Cortex-M4 (CM4) และอุปกรณ์ต่อพ่วง LPUART1 แล้ว

  • machine.Pin — พิน USB_VBUS เปิดเผยให้ใช้งานในสคริปต์ผู้ใช้แล้ว

การเปลี่ยนแปลงและการปรับปรุงอื่น ๆ#

  • อัปเดต MicroPython เป็น 1.19; ulab เป็น 5.1.1; อัปเดตไดรเวอร์ WiFi cyw43 ที่รวมมาด้วย

  • พอร์ต RP2 (Arduino Nano RP2040 Connect) และ nRF (Arduino Nano 33 BLE Sense) เปลี่ยนมาใช้ดีบักเกอร์แบบ TinyUSB ใหม่สำหรับการเชื่อมต่อ IDE/host

  • XCLK ของ OV7670 ถูกเพิ่มจาก 12 MHz เป็น 24 MHz (อัปเดตชุดรีจิสเตอร์)

การแก้ไขบัก#

กล้องและเซนเซอร์:

  • ค่าสถิติอุณหภูมิของ blob ใน OpenMV Pure Thermal ตอนนี้ใช้ภาพ IR แทนภาพสี ดังนั้นอุณหภูมิเฉลี่ยต่อ blob จึงถูกต้อง

  • แก้ไขการจัดการ ROI ของ draw_image() และการปรับขนาดพื้นที่ให้ได้ผลลัพธ์ที่ปรับขนาดแม่นยำยิ่งขึ้น

  • IMU จะถูก re-initialized หลังจาก soft-reset เพื่อให้ทำงานต่อไปได้เมื่อเปิดใช้งาน SPI bus ของ IMU

ระบบ:

  • แก้ไขปัญหาการเปรียบเทียบ signed/unsigned ใน FAST/AGAST feature detection, blob detection, CLAHE และไดรเวอร์ LCD/TV; แก้ไขการ de-initialize camera-GPIO / SPI / DAC ของ STM32, การแมปพิน LPUART ของ H7 และการลงทะเบียนโมดูล nn ของ STM32Cube.AI

Arduino Nicla Vision:

  • MicroSpeech ทำงานได้แล้ว (เพิ่มขนาดบัฟเฟอร์ PDM เป็นสองเท่า, เพิ่มตัวอย่าง) และแก้ไขโหมด low-power standby แล้ว

ฮาร์ดแวร์และการรองรับบอร์ด#

  • OpenMV Cam H7 Pro — รองรับเซนเซอร์ความร้อน FLIR Lepton

  • Arduino Nicla Vision — โคโปรเซสเซอร์ CM4, LPUART1, MicroSpeech, low-power standby

การเปลี่ยนแปลง API ที่ส่งผลกระทบ#

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

การเปลี่ยนแปลงแต่ละรายการมีป้ายกำกับผลกระทบ:

  • minor — API แคบ; ส่งผลกระทบเฉพาะสคริปต์บนบอร์ดเฉพาะเจาะจง

  • behavior — API เหมือนเดิม แต่ผลลัพธ์ต่างกัน; ตรวจสอบสคริปต์ที่ปรับแต่งไว้ใหม่

การเปลี่ยนแปลงถูกจัดกลุ่มตามผลกระทบตามลำดับนั้น หากต้องการ port โค้ดของคุณเพียงอย่างเดียว ให้ข้ามไปที่ รายการตรวจสอบการ migration ที่ท้ายเอกสาร แต่ละ commit hash เชื่อมโยงไปยัง diff บน GitHub

Nicla Vision modules และ RP2040 WiFi (minor)#

บน Arduino Nicla Vision โมดูล lcd และ tv ถูกปิดใช้งานเพื่อเพิ่มหน่วยความจำสำหรับรองรับโคโปรเซสเซอร์ CM4 — สคริปต์ที่ใช้โมดูลเหล่านั้นบน Nicla Vision จะไม่พบโมดูลเหล่านั้นอีกต่อไป Arduino Nano RP2040 Connect เปลี่ยนจากการใช้ WiFi/nina แบบ OpenMV-custom ไปใช้ไดรเวอร์/โมดูล NINA-W10 ของ MicroPython upstream ซึ่งมี API ที่แตกต่างกัน

Commits: f78d191e3, ddf01cb09

การหมดเวลา WiFi socket และการพลิก LCD แนวตั้ง (behavior)#

การหมดเวลาของ WINC1500 socket ตอนนี้คืนค่าข้อผิดพลาดแบบ non-blocking (EWOULDBLOCK) แทน ETIMEDOUT ดังนั้น socket ที่หมดเวลาจะไม่ถูกปิดโดยไม่คาดคิดอีกต่อไป — โค้ดที่ดักจับ ETIMEDOUT ต้องได้รับการอัปเดต SPI LCD shield display ตอนนี้ raise ValueError ("Vertical flip requires triple buffering!") เมื่อมีการร้องขอ y_scale ติดลบโดยไม่ได้เปิดใช้งาน triple buffering

Commits: 1dc4bea88, 7e52cf751

รายการตรวจสอบการ migration#

สำหรับการ port ที่สะอาดไปยัง v4.4.0 งานทั่วไปคือ:

  1. บน Nicla Vision หยุดใช้ lcd/tv; บน Nano RP2040 Connect ให้ port โค้ด WiFi ไปใช้ไดรเวอร์ NINA-W10 upstream (การเปลี่ยนแปลงโมดูลบอร์ด)

  2. อัปเดตโค้ด WINC1500 socket ให้รับมือกับ EWOULDBLOCK เมื่อหมดเวลา และเปิดใช้งาน triple buffering สำหรับ LCD output ที่พลิกแนวตั้ง (การเปลี่ยนแปลงพฤติกรรม)