v4.5.9

A v4.5.9 nyers előnézet-streamelést hoz a hardveres JPEG-kódoló nélküli lapokhoz, hardveres érzékelő-vágást több RAM felszabadításához, gyorsabb Helium-gyorsított debayeringet, valamint egy csomag kamera-/USB-hibakeresési javítást. Megváltoztatja továbbá az AprilTag eredmény-API-t és az alapértelmezett AprilTag-családkészletet, ezért olvasd el az alábbi visszafelé nem kompatibilis változásokat.

Kiemelt változások

  • Nyers előnézet-streamelés — a hardveres JPEG-kódoló nélküli lapok mostantól lekicsinyített nyers képkockákat küldhetnek az IDE-nek/gazdagépnek ahelyett, hogy az előnézet meghiúsulna.

  • Hardveres érzékelő-vágás — kisebb képkockaméret beállítása mostantól csökkenti a pufferenkénti memóriát, és RAM-ot szabadít fel az fb_alloc() számára.

  • Gyorsabb debayering — a Bayer→RGB/szürkeárnyalatos konverzió mostantól Helium-SIMD-gyorsított a Cortex-M55 lapokon.

  • Visszafelé nem kompatibilis: az AprilTag eredményobjektum attribútum-hozzáférésre váltott, és az alapértelmezett AprilTag-családkészlet csökkent (lásd az AprilTag változásai és az AprilTag-család változása).

Új funkciók

  • Nyers előnézet-streamelés — a hardveres JPEG-kódoló nélküli lapok megkerülhetik a JPEG-et, és lekicsinyített nyers képkockákat (~60 KB-ra korlátozva) streamelhetnek az IDE-nek/gazdagépnek, így az élő előnézet ezeken a lapokon is működik.

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

  • A hardveres vágás mostantól engedélyezve van az összes STM32/NXP lapon (Giga, Nicla Vision, Portenta H7, OpenMV 1–4 / 4 Plus / Pure Thermal / RT1060). Képkockaméret vagy ablak beállításakor a pufferenkénti memória a levágott méretre csökken, így több RAM szabadul fel az fb_alloc() számára.

  • Gyorsabb debayering — a Bayer→RGB565/szürkeárnyalatos konverzió mostantól ARM Helium/MVE SIMD-gyorsított a Cortex-M55 lapokon (pl. RT1060), megosztott SIMD JPEG-kódoló útvonallal.

  • Gyorsabb IDE-hibakeresés — a hibakereső mostantól, amikor csak lehetséges, közvetlenül az USB-veremből továbbítja az adatokat, elkerülve egy extra másolást.

  • A MicroPython almodul frissítve — a lapok átméretezhetik a TinyUSB CDC-puffert, valamint GC- és build-szabály-javítások.

Hibajavítások

Kamera és érzékelők:

  • Javítva az OV7725 Bayer/CFA mintázat (GBRG → BGGR), ami helyrehozza a debayerelt színkimenetet az OV7725 kamerákon; az OV7725 mostantól a Bayer képpontformátumot jelenti, a csak Bayer érzékelők pedig mostantól 1 bájt/képpont forrásmélységet jelentenek.

  • Javítva a nyers/Bayer framebuffer méretszámítása.

Gépi tanulás:

  • A TensorFlow Lite Micro mostantól a GC-halom szabad memóriáját használja az átmeneti tenzoraréna méretezésekor, megelőzve a modellbetöltési foglalási hibákat a korlátozott képkocka-puffermemóriájú lapokon.

Gazdagép / IDE:

  • Javítva az USB-hibakeresési CDC-puffer kezelése a TinyUSB lapokon a megbízhatóbb soros/hibakeresési átviteli teljesítmény érdekében.

  • tools/pyopenmv: javítva az RGB565 bájtsorrend, hozzáadva egy scale argumentum, a képkocka-puffer eszköz pedig mostantól jelenti a kép méretét/formátumát.

Hardver- és laptámogatás

  • OV7725 — mostantól a Bayer képpontformátumot jelenti (helyes nyers/CFA kezelés).

  • Hardveres vágás engedélyezve az STM32/NXP laptartomány egészén.

Visszafelé nem kompatibilis API-változások

Felhasználó számára látható API-törések a v4.5.8 és v4.5.9 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 — azonos API, eltérő eredmények; ellenőrizd újra a finomhangolt szkripteket.

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

AprilTag eredményobjektumok és set_buffers (minor)

A find_apriltags() AprilTag eredményei mostantól attribútumokként teszik elérhetővé az adataikat metódusok helyett — használd a tag.cx, tag.cy, tag.rotation, tag.family, tag.corners formát a tag.cx(), tag.family() stb. helyett. Új name (családnév-karakterlánc) és lebegőpontos pontosságú cxf / cyf hozzáférők kerültek hozzáadásra.

Külön változás, hogy az automatikus videopuffer-konfiguráció megváltozott: a set_buffers váltja fel az auto_adjust-ot — adj át -1-et a képkockaméretű, legfeljebb három puffer használatához (vagy ahány elfér), és 1-et a teljes képkocka-puffer használatához. A puffer méretezése mostantól bit/képpont-tudatos, így 1 bpp formátumokhoz több puffer foglalható le.

Commitok: c0d4759f8, 7b36e4ef6

A ble_advertising és a hálózati RPC eltávolítva (minor)

A ble_advertising segédkönyvtár és a ble_temperature.py példa eltávolításra került — használd helyette az aioble csomagot (egy aioble hőmérséklet-példa biztosított). A hálózati RPC master/slave osztályok eltávolításra kerültek az rpc.py-ból.

Commitok: 6513276c1, 44a7e579d

Az AprilTag-családok alapértelmezetten letiltva (behavior)

Az AprilTag-családok mostantól egyenként, fordítási időben választhatók ki, és a nem használtak alapértelmezetten le vannak tiltva. Standard lapokon a find_apriltags() mostantól csak a TAG36H11 családot észleli, hacsak a firmware-t újra nem fordítják más családok engedélyezésével. Azok a szkriptek, amelyek más családokra (TAG16H5, TAG25H9, …) támaszkodnak egy standard buildben, csendben abbahagyják azok észlelését.

Commit: effe12f2c

Migrációs ellenőrzőlista

A v4.5.9-re való tiszta portoláshoz a tipikus teendők:

  1. Változtasd meg az AprilTag eredmény-hozzáférést metódushívásokról attribútumokra (tag.cx()tag.cx), és válts az auto_adjust-ról a set_buffers-re (az AprilTag / puffer változásai).

  2. Cseréld le a ble_advertising-et az aioble csomagra, és hagyd el a hálózati RPC master/slave használatát (az eltávolítások).

  3. Ha a TAG36H11-en kívül más AprilTag-családokat használsz egy standard buildben, vedd figyelembe, hogy ezek alapértelmezetten már nem kerülnek észlelésre (az AprilTag-család változása).