v4.0.0

A v4.0.0 a nagy v3 → v4 kiadás. Bevezeti a modern, többképkockás sensor pufferelő API-t (dupla / hármas pufferelés és egy video FIFO), egy képkocka-kész visszahívást, egy Bluetooth modult (NimBLE stack) Portenta-támogatással, a kezdeti MT9M114 kamera-illesztőprogramot, az MDMA-ra terhelt kameraképrögzítést, a Bayer/JPEG támogatást az image.draw_image()-ben, valamint egy ugrást a MicroPython 1.15-re. A régi streamelési mód eltávolításra került, és a sensor.set_windowing() átdolgozásra került — olvasd el az alábbi megszakító változásokat.

Kiemelt változások

  • Többképkockás pufferelés — a sensor dupla pufferelést, hármas pufferelést és egy video-FIFO módot kap a magasabb, simább képkockasebességhez.

  • Képkocka-kész visszahívás — regisztrálj egy visszahívást, amely akkor fut le, amikor egy új képkocka elkészül, a nem blokkoló rögzítési láncokhoz.

  • Bluetooth — egy NimBLE stackre épülő bluetooth modul, engedélyezve az Arduino Portenta H7-en (egy BLE példával).

  • MT9M114 — kezdeti kameraérzékelő illesztőprogram.

  • Gyorsabb rögzítés — MDMA-tehermentesítés a kameraadatok rögzítéséhez; a draw_image() mostantól elfogad Bayer- és JPEG-forrásokat/célokat.

  • MicroPython 1.15 — a mellékelt MicroPython 1.13-ról 1.15-re frissítve.

  • Megszakító: a régi streamelési mód eltávolításra került, és a sensor.set_windowing() átdolgozásra került — lásd a megszakító változásokat.

Új funkciók

  • Sensor többszörös pufferelés — hozzáadva a sensor.set_framebuffers() / sensor.get_framebuffers(), valamint a SINGLE_BUFFER / DOUBLE_BUFFER / TRIPLE_BUFFER / VIDEO_FIFO módok, továbbá a sensor.get_frame_available() a dupla, hármas és video-FIFO rögzítéshez.

  • Képkocka-kész visszahívás — hozzáadva a sensor.set_frame_callback(), így minden új képkocka befejeztekor egy Python-visszahívás fut le.

  • Bluetooth — hozzáadva egy NimBLE stackre épülő bluetooth modul (NimBLE almodul, CYW-BT illesztőprogram), engedélyezve az Arduino Portenta H7-en egy BLE példával.

  • MT9M114 — hozzáadva a kezdeti MT9M114 kameraérzékelő illesztőprogram.

  • draw_image — hozzáadva a debayering-támogatás és a JPEG-másolási támogatás, így az image.draw_image() elfogad Bayer- és JPEG-forrás-/célképeket.

  • MDMA rögzítés-tehermentesítés — a kameraadatok rögzítése MDMA-ra van terhelve a nagyobb átviteli teljesítményhez.

  • Egy színpaletta-argumentum mostantól letiltható a -1 átadásával (mivel a None érvényes argumentumként van fenntartva).

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

  • Áttérés az új szoftveres I2C-megvalósításra; igazítás a MicroPython upstreamhez; laponkénti ulab-konfiguráció; alapvető beépített modulok engedélyezve az OpenMV 2-höz; igazságosabb képkocka-puffer kiolvasási zárolás; mutex-támogatás kiterjesztve a Cortex-M0/M0+-ra zárolási időtúllépéssel.

Hibajavítások

Kamera és képalkotás:

  • Kijavítva a FLIR Lepton inicializálási megbízhatósága a Pure Thermal lapon, az ImageIO JPEG-puffer / szüneteltetés kezelése, a HM01B0 vflip/hmirror beállításai, a JPEG-puffer ürítése egy kép érvénytelenítésekor, és egy cropped jelző, amely akkor lett beállítva, amikor a framesize érvénytelen volt.

Rendszer és kapcsolatkezelés:

  • Kijavítva az USB-parancs kiürítése és a reset-to-bootloader parancs, a mutex-inicializálás, az UART órajelforrása, a FatFS code-page definíció, a WINC1500 sávon kívüli ACK kezelése, a WiFi-hibakeresés és a Nano33 USB PID; elkülönítve a dedikált analóg padek.

Hardver- és laptámogatás

  • MT9M114 kameraérzékelő (kezdeti illesztőprogram).

  • Arduino Portenta H7 — Bluetooth engedélyezve (NimBLE) egy BLE példával.

  • Arduino Nano RP2040 Connect / Nano 33 BLE Sense — a WiFi-hibakeresési jelző letiltva ott, ahol nem támogatott; blinky példa hozzáadva; USB PID javítás.

Megszakító API-változások

Felhasználó számára látható API-törések a v3.9.4 és v4.0.0 között. Hatókör: a modules/ mappában lévő Python C-modulok és a scripts/libraries/ mappában lévő Python-könyvtárak.

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

  • major — a legtöbb szkriptet érinti; szinte biztosan portolnod kell a kódot.

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

  • behavior — azonos API, eltérő eredmények; ellenőrizd újra a behangolt szkripteket.

A változások hatás szerint, ebben a sorrendben 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 GitHubon lévő diffjére hivatkozik.

A streamelési mód eltávolítva (major)

A régi érzékelő streamelési mód eltávolításra került az új többképkockás pufferelő API javára. Az a kód, amely engedélyezte a streamelési módot, át kell hogy térjen a sensor.set_framebuffers() használatára a DOUBLE_BUFFER / TRIPLE_BUFFER / VIDEO_FIFO módokkal, és a rögzítést a sensor.snapshot() / sensor.get_frame_available() segítségével kell vezérelnie helyette.

Commitok: a42f3a647

A sensor.set_windowing() átdolgozva (behavior)

A sensor.set_windowing() sokkal rugalmasabbá vált: mostantól több argumentumformát is elfogad (egy régió-tuple, vagy szélesség/magasság középre igazítva, vagy x, y, w, h), és az ablakot az aktuális felbontáshoz viszonyítva oldja fel. Azok a szkriptek, amelyek a régi, rögzített formában adták át az ablakargumentumokat, eltérő régiót választhatnak, és ezeket újra kell ellenőrizni.

Commitok: 3e9c43554

MicroPython 1.13 → 1.15 (behavior)

A mellékelt MicroPython-mag 1.13-ról 1.15-re frissült (az 1.14-en keresztül). A standard könyvtár és nyelvi viselkedés az upstream MicroPython 1.15-öt követi; ellenőrizd újra azokat a szkripteket, amelyek verziófüggő micropython / standard modul viselkedésre támaszkodnak.

Commitok: 364eea6c7, 26c5376b0

Az ImageIO update_jpeg_buffer argumentum eltávolítva (minor)

Az ImageIO JPEG-puffer frissítése átdolgozásra került, hogy a puffert a kép forrásargumentumából vezesse le, és az explicit update_jpeg_buffer argumentum eltávolításra került. Azoknak a szkripteknek, amelyek update_jpeg_buffer-t adtak át az ImageIO-nak, el kell hagyniuk ezt az argumentumot.

Commitok: 5c6937bd1

Migrációs ellenőrzőlista

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

  1. Cseréld le az eltávolított streamelési mód minden használatát az új sensor.set_framebuffers() többszörös pufferelő API-ra (a streamelési mód eltávolítva).

  2. Ellenőrizd újra a sensor.set_windowing() hívásokat az átdolgozott, rugalmasabb argumentumkezeléssel szemben (az ablakozási változás).

  3. Validáld újra azokat a szkripteket, amelyek verziófüggő MicroPython-viselkedésre támaszkodnak, a MicroPython 1.15-tel szemben (a MicroPython-frissítés).

  4. Hagyd el az update_jpeg_buffer argumentumot az ImageIO-hívásokból (az ImageIO-változás).

Az összes többi szkript változtatás nélkül fut.