v4.1.0¶
v4.1.0 รองรับ Arduino Nano RP2040 Connect / Raspberry Pi Pico อย่างเต็มรูปแบบ (WiFi, Bluetooth, การจับภาพจากกล้อง, การกระโดดไปยังบูตโหลดเดอร์), การถอดรหัส ภาพ JPEG โดยตรง, ไคลเอ็นต์ HTTP urequests ที่ฝังในเฟิร์มแวร์, รองรับเซนเซอร์ OV7670 และการรายงานข้อผิดพลาดของเซนเซอร์ที่เป็นมาตรฐาน WiFi API และข้อยกเว้นของเซนเซอร์มีการเปลี่ยนแปลง — อ่านการเปลี่ยนแปลงที่ทำให้เกิดความเข้ากันไม่ได้ด้านล่าง
จุดเด่น¶
บอร์ด RP2 — Arduino Nano RP2040 Connect / Pico รองรับ WiFi (NINA-W10), Bluetooth (NimBLE), การจับภาพจากกล้อง/DCMI และคำสั่งกระโดดไปยังบูตโหลดเดอร์
การถอดรหัส JPEG — การดำเนินการภาพรองรับการรับไฟล์ JPEG ที่บีบอัดแล้วโดยตรง
ไคลเอ็นต์ HTTP
urequestsฝังอยู่ในเฟิร์มแวร์แล้วรองรับเซนเซอร์กล้อง OV7670
การเปลี่ยนแปลงสำคัญ: WiFi API ของ NINA/RP2 ได้รับการปรับปรุงใหม่ และข้อผิดพลาดของเซนเซอร์หลายรายการตอนนี้ยกข้อยกเว้น
RuntimeError— ดูการเปลี่ยนแปลงที่ทำให้เกิดความเข้ากันไม่ได้
ฟีเจอร์ใหม่¶
Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi ผ่านไดรเวอร์ NINA-W10
network, Bluetooth/NimBLE, การจับภาพจากกล้อง (โปรแกรม DCMI PIO) และคำสั่งกระโดดไปยังบูตโหลดเดอร์การถอดรหัสภาพ JPEG —
find_apriltags(),lcd.display(),tv.display()และการดำเนินการภาพที่เกี่ยวข้องตอนนี้รองรับภาพ JPEG ที่บีบอัดแล้วโดยตรง (ถอดรหัสเป็น binary/grayscale/RGB565)urequests— ไคลเอ็นต์ HTTP (GET/POST/PUT/...) ตอนนี้ถูกฝังอยู่ใน OpenMV 4 / 4 Plus / Portenta / Nicla แล้ว พร้อมตัวอย่างhttp_post.pyไลบรารีช่วยเหลือ
ble_advertisingฝังอยู่ใน Nano RP2040 ConnectHost/debug —
pyopenmv.reset_to_bl()และคำสั่งUSBDBG_SYS_RESET_TO_BL(0x0E) ใหม่สำหรับรีเซ็ตเข้าสู่บูตโหลดเดอร์; การกระโดดไปยังบูตโหลดเดอร์บน Arduino Nano 33 BLE SenseOV7670 — รองรับเซนเซอร์กล้อง OV7670 ใหม่ เลือกได้บน OpenMV 4
การเปลี่ยนแปลงและการปรับปรุงอื่นๆ¶
RP2 UDP sockets ผูกพอร์ตชั่วคราวโดยอัตโนมัติเมื่อใช้งานโดยไม่ได้ผูกพอร์ต; อัปเดต submodule MicroPython ที่รวมอยู่
การแก้ไขบั๊ก¶
เครือข่าย:
แก้ไขการจัดการ socket accept/close/send/recv/bind ของ NINA WiFi และการหมดเวลาของการดำเนินการ รวมถึง race condition ของบัฟเฟอร์ข้อความดีบั๊กบน RP2 ที่อาจทำให้เอาต์พุต IDE เสียหาย
กล้องและระบบ:
แก้ไขการรีเซ็ต HM01B0, บัส I2C ของกล้องที่ค้างหลังจากการสแกนเซนเซอร์ล้มเหลวบน OpenMV H7, การเข้าสู่โหมดพลังงานต่ำ H7 ULPI เมื่อตัดการเชื่อมต่อ USB, การสร้างพิน ADC ของ H7 และการต่อสายกล้อง Portenta / shield SPI-CS
ฮาร์ดแวร์และการรองรับบอร์ด¶
Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi, Bluetooth, กล้อง, ระบบไฟล์แฟลชขนาดใหญ่ขึ้น, บูตโหลดเดอร์ MSC
เซนเซอร์กล้อง OV7670 (OpenMV 4)
Arduino Portenta H7 — breakout I2C4, พิน PWM/clock เพิ่มเติม, เซนเซอร์ OV7725 / MT9V034
การเปลี่ยนแปลง API ที่ทำให้เกิดความเข้ากันไม่ได้¶
การเปลี่ยนแปลง API ที่มองเห็นได้โดยผู้ใช้ระหว่าง v4.0.2 และ v4.1.0 ขอบเขต: Python C-modules ใน modules/ และไลบรารี Python ใน scripts/libraries/
การเปลี่ยนแปลงแต่ละรายการมีป้ายกำกับระดับผลกระทบ:
minor — API แคบ; มีผลเฉพาะสคริปต์ที่ใช้งานนั้น
behavior — API เดิม ผลลัพธ์ต่างกัน; ตรวจสอบสคริปต์ที่ปรับแต่งแล้วอีกครั้ง
การเปลี่ยนแปลงจัดกลุ่มตามผลกระทบตามลำดับนั้น หากต้องการพอร์ตโค้ดเท่านั้น ให้ข้ามไปที่ รายการตรวจสอบการย้าย ท้ายเอกสาร แต่ละ commit hash เชื่อมโยงไปยัง diff บน GitHub
NINA / RP2 WiFi API ได้รับการปรับปรุงใหม่ (minor)¶
ไดรเวอร์ NINA / RP2 WLAN ได้รับการปรับปรุงใหม่เพื่อให้ตรงกับอินเทอร์เฟซ network ของ MicroPython / CYW43 upstream: constructor WLAN(interface) (โหมด STA/AP), เมธอด active([bool]) ใหม่, นามแฝง config / start_ap ของ connect, อาร์กิวเมนต์ ssid ของ connect() เปลี่ยนชื่อเป็น essid, คีย์เวิร์ด channel ใหม่ และ nina.fw_version() ตอนนี้คืนค่า tuple (major, minor, patch) แทน bytes ดิบ การไม่ตรงกันของเวอร์ชันเฟิร์มแวร์ NINA ตอนนี้เป็นแค่คำเตือนที่ไม่ร้ายแรงแทนที่จะเป็น OSError
ข้อผิดพลาดของเซนเซอร์ตอนนี้ยกข้อยกเว้น RuntimeError (behavior)¶
การรายงานข้อผิดพลาดของเซนเซอร์ถูกทำให้เป็นมาตรฐานรอบตารางรหัสข้อผิดพลาดแบบรวม: ความล้มเหลวของกล้อง (หมดเวลาการจับภาพ, framesize/pixformat/window/framerate ไม่ถูกต้อง, ข้อผิดพลาด framebuffer, JPEG overflow, เซนเซอร์ที่ตรวจไม่พบ, ...) ตอนนี้ยกข้อความที่สอดคล้องกันและอธิบายได้ และหลายเงื่อนไขที่เคยยกข้อยกเว้น ValueError ตอนนี้ยกข้อยกเว้น RuntimeError (รวมถึง sensor.reset()) โค้ดที่จับ ValueError สำหรับกรณีเหล่านี้ต้องเปลี่ยนไปจับ RuntimeError แทน
รายการตรวจสอบการย้าย¶
สำหรับการพอร์ตที่สะอาดไปยัง v4.1.0 งานทั่วไปคือ:
พอร์ตโค้ด WiFi ของ NINA/RP2 ไปยังอินเทอร์เฟซมาตรฐาน
network.WLAN(WLAN(interface),active(),essid=) และคาดหวัง tuple จากnina.fw_version()(การเปลี่ยนแปลง WiFi API)เปลี่ยน
except ValueErrorเป็นexcept RuntimeErrorรอบการจัดการข้อผิดพลาดของกล้อง /sensor.reset()(การเปลี่ยนแปลงข้อผิดพลาดของเซนเซอร์)