v4.1.0

A v4.1.0 teljes körű Arduino Nano RP2040 Connect / Raspberry Pi Pico támogatást hoz (WiFi, Bluetooth, kamerafelvétel, ugrás a rendszerbetöltőbe), közvetlen JPEG-képdekódolást, egy beépített urequests HTTP-klienst, OV7670 érzékelőtámogatást és egységesített érzékelőhiba-jelentést. A WiFi API és az érzékelő-kivételek megváltoztak — olvasd el a lentebbi töréses változásokat.

Kiemelt újdonságok

  • RP2 lapok — az Arduino Nano RP2040 Connect / Pico WiFi-t (NINA-W10), Bluetooth-t (NimBLE), kamera/DCMI felvételt és ugrás-a-rendszerbetöltőbe funkciót kap.

  • JPEG-dekódolás — a képműveletek mostantól közvetlenül elfogadnak tömörített JPEG-képeket.

  • Az urequests HTTP-kliens beépítve a firmware-be.

  • OV7670 kameraérzékelő-támogatás.

  • Töréses: a NINA/RP2 WiFi API-t átdolgozták, és több érzékelőhiba mostantól RuntimeError kivételt vált ki — lásd a töréses változásokat.

Új funkciók

  • Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi a NINA-W10 network illesztőprogramon keresztül, Bluetooth/NimBLE, kamerafelvétel (DCMI PIO program) és ugrás-a-rendszerbetöltőbe parancs.

  • JPEG-képdekódolás — a find_apriltags(), lcd.display(), tv.display() és a kapcsolódó képműveletek mostantól közvetlenül elfogadnak tömörített JPEG-képeket (dekódolás binárisra/szürkeárnyalatosra/RGB565-re).

  • urequests — a HTTP-kliens (GET/POST/PUT/…) mostantól be van építve az OpenMV 4 / 4 Plus / Portenta / Nicla lapokra, egy http_post.py példával együtt.

  • ble_advertising segédkönyvtár, beépítve a Nano RP2040 Connectre.

  • Host/hibakereséspyopenmv.reset_to_bl() és egy új USBDBG_SYS_RESET_TO_BL (0x0E) parancs a rendszerbetöltőbe való újraindításhoz; ugrás-a-rendszerbetöltőbe az Arduino Nano 33 BLE Sense-en.

  • OV7670 — új OV7670 kameraérzékelő-támogatás, OpenMV 4-en kiválasztható.

Egyéb változások és fejlesztések

  • Az RP2 UDP socketek automatikusan egy efemer porthoz kötődnek, ha kötés nélkül használják őket; a beépített MicroPython almodul frissítve lett.

Hibajavítások

Hálózatkezelés:

  • Javítva a NINA WiFi socket accept/close/send/recv/bind kezelése és a műveleti időtúllépések, valamint egy RP2 hibakeresési szövegpuffer-versenyhelyzet, amely megsérthette az IDE kimenetét.

Kamera és rendszer:

  • Javítva a HM01B0 resetelése, a kamera I2C buszának beragadása egy sikertelen érzékelő-keresés után az OpenMV H7-en, a H7 ULPI alacsony fogyasztású belépés USB-leválasztáskor, a H7 ADC láb generálása, valamint a Portenta kamera-lábkiosztás / shield SPI-CS.

Hardver- és laptámogatás

  • Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi, Bluetooth, kamera, nagyobb flash fájlrendszer, MSC rendszerbetöltő.

  • OV7670 kameraérzékelő (OpenMV 4).

  • Arduino Portenta H7 — breakout I2C4, további PWM/órajel lábak, OV7725 / MT9V034 érzékelők.

Töréses API-változások

Felhasználó által észlelhető API-törések a v4.0.2 és v4.1.0 között. Hatókör: Python C-modulok a modules/ mappában és Python könyvtárak a scripts/libraries/ mappában.

Minden változás meg van jelölve a hatásával:

  • minor — szűk API; csak az azt használó szkripteket érinti.

  • behavior — ugyanaz az API, eltérő eredmények; ellenőrizd újra a hangolt szkripteket.

A változások hatás szerint, ebben a sorrendben vannak csoportosítva. Ha csak át szeretnéd portolni a kódodat, ugorj a migrációs ellenőrzőlistához a végén. Minden commit hash a GitHubon lévő diffjére hivatkozik.

NINA / RP2 WiFi API átdolgozva (minor)

A NINA / RP2 WLAN illesztőprogramot átdolgozták, hogy megfeleljen az upstream MicroPython / CYW43 network interfésznek: egy WLAN(interface) konstruktor (STA/AP mód), egy új active([bool]) metódus, a connect config / start_ap aliasai, a connect() ssid argumentum átnevezve essid-re, egy új channel kulcsszó, és a nina.fw_version() mostantól egy (major, minor, patch) tuple-t ad vissza nyers bájtok helyett. A NINA firmware-verzió eltérése mostantól nem végzetes figyelmeztetés egy OSError helyett.

Commitok: eb2f98277, e14470f68, 0c40f4832

Az érzékelőhibák mostantól RuntimeError kivételt váltanak ki (behavior)

Az érzékelőhiba-jelentést egy egységes hibakód-tábla köré szabványosították: a kamera-hibák (felvételi időtúllépés, érvénytelen framesize/pixformat/window/framerate, framebuffer-hiba, JPEG-túlcsordulás, fel nem ismert érzékelő, …) mostantól következetes, leíró üzeneteket váltanak ki, és több olyan állapot, amely korábban ValueError kivételt váltott ki, mostantól RuntimeError kivételt vált ki (beleértve a sensor.reset() függvényt is). Az ezeket az eseteket ValueError kivételre elkapó kódnak ezentúl RuntimeError kivételt kell elkapnia.

Commitok: 0491a6a88, c8bf0af6f, 2fb226562

Migrációs ellenőrzőlista

A v4.1.0-ra való tiszta portoláshoz a tipikus munka a következő:

  1. Portold át a NINA/RP2 WiFi kódot a szabványos network.WLAN interfészre (WLAN(interface), active(), essid=), és számíts arra, hogy a nina.fw_version() egy tuple-t ad vissza (a WiFi API változása).

  2. Cseréld le az except ValueError kifejezést except RuntimeError kifejezésre a kamera / sensor.reset() hibakezelése körül (az érzékelőhiba változása).