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การควบคุม GC2145 —
sensor.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 ที่แตกต่างกัน
การหมดเวลา 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
รายการตรวจสอบการ migration#
สำหรับการ port ที่สะอาดไปยัง v4.4.0 งานทั่วไปคือ:
บน Nicla Vision หยุดใช้
lcd/tv; บน Nano RP2040 Connect ให้ port โค้ด WiFi ไปใช้ไดรเวอร์ NINA-W10 upstream (การเปลี่ยนแปลงโมดูลบอร์ด)อัปเดตโค้ด WINC1500 socket ให้รับมือกับ
EWOULDBLOCKเมื่อหมดเวลา และเปิดใช้งาน triple buffering สำหรับ LCD output ที่พลิกแนวตั้ง (การเปลี่ยนแปลงพฤติกรรม)