v3.3.0

A v3.3.0 hatalmas kiadás. Teljes FLIR Lepton hőkamera-támogatást ad hozzá egy új sensor.ioctl() felülettel és színpalettákkal, egy tv SPI videókimeneti modult, global-shutter triggerelt módot, egy nagy adag új image rajzolási/elemzési metódust (gamma_corr(), draw_ellipse(), draw_edges(), számos folttulajdonság), valamint új ToF / motor / linalg könyvtárakat. A cpufreq API-t átdolgozták, és a sensor.set_framesize() most már kivételt dob — olvasd el az alábbi megszakító változásokat.

Kiemelések

  • FLIR Lepton — teljes hőkamera-támogatás az új sensor.ioctl() felületen, színpalettákon és az image.to_rainbow() metóduson keresztül.

  • tv modul — SPI TV / kompozit videókimenet.

  • Global-shutter triggerelt mód — MT9V034 triggerelt felvétel a sensor.ioctl() segítségével.

  • Képkezelésgamma_corr(), draw_ellipse(), draw_edges(), draw_image() alfa-keverés és számos új folttulajdonság.

  • Új könyvtárak — VL53L1X ToF távolságmérés, TB6612 motorvezérlő, micro-linalg.

  • Megszakító változás: a cpufreq API-t átdolgozták, a sensor.set_framesize() most már kivételt dob hiba esetén, a sensor.alloc_extra_fb() elhagyta a Bayer/JPEG támogatást, és az image.replace() pozicionális argumentumai eltolódtak — lásd a megszakító változásokat.

Új funkciók

  • FLIR Lepton — hozzáadtuk a sensor.ioctl() metódust az érzékelőspecifikus vezérléshez és a Lepton ioctl-ek teljes készletét (radiometria, frissítés/felbontás, parancsfuttatás, attribútum beállítása/lekérése, FPA/AUX hőmérséklet °C-ban, mérési mód/tartomány, szélesség/magasság), a sensor.set_color_palette() / sensor.get_color_palette() metódusokat a sensor.PALETTE_RAINBOW / PALETTE_IRONBOW konstansokkal, az image.to_rainbow() metódust, valamint Lepton példaszkripteket (27-Lepton).

  • Triggerelt módIOCTL_SET_TRIGGERED_MODE / IOCTL_GET_TRIGGERED_MODE az MT9V034 global-shutter triggerelt felvételéhez, magas FPS-es és triggerelt módú példákkal.

  • tv modul — hozzáadtuk az SPI TV / kompozit videókimenet kötéseit.

  • Képkezelés — hozzáadtuk az image.gamma_corr(), image.draw_ellipse(), image.draw_edges() metódusokat, a draw_image() alfa-keverést, egy mask= kulcsszót a clear() metódushoz, újra hozzáadtuk a mask_rectangle() / mask_circle() / mask_ellipse() metódusokat, forgatás / hmirror / vflip kulcsszavakat a draw_string() / draw_text() metódusokhoz, egy transpose kulcsszót (valamint assign / set aliasokat) a replace() metódushoz, a copy() x_scale / y_scale argumentumait a crop() / scale() mellett, egy méretekből építő Image() konstruktort, a sensor.BINARY képpontformátumot, exportált színtér-konverziós függvényeket, valamint számos új folttulajdonságot (corners, perimeter, roundness, elongation, extent, compactness, solidity, convexity, enclosing_circle, enclosed_ellipse, forgatás).

  • Könyvtárak — hozzáadtuk a vl53l1x ToF távolságérzékelő-vezérlőt, a tb6612 motorvezérlőt (DC-motor és léptetőmotor Motor-Shield példákkal), valamint egy micro-linalg könyvtárat (ulinalg / umatrix).

  • A FatFS-t FF13C-re frissítettük (exFAT-képes).

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

  • Javítottuk az alapértelmezett JPEG-minőséget (a low–high közepe egy beégetett érték helyett); a helyben végzett képműveletek már nem igénylik a kép első argumentumként való megismétlését; a draw_string() nem egész léptékértékeket is elfogad.

Hibajavítások

Kamera és érzékelők:

  • Javítottuk a Lepton 3.5 indítási elakadását (időtúllépés + helyreállítás) és a reset megbízhatóságát, az MT9V034 set_framesize() hívását a set_pixformat() előtt (a hívási sorrend már nem számít), az MT9V034 WVGA-t az STM32H7-en, az MT9V034 automatikus expozíciós tartományát és az árnyékregiszter-frissítéseket, valamint a H7 ADC-hibát.

Képkezelés:

  • Javítottunk egy érvénytelen memóriahozzáférést a find_apriltags() metódusban, a copy() hibáját skálázott kép fő képkocka-pufferbe másolásakor, a to_grayscale() / to_rgb565() képkocka-puffer-foglalást, a kulcspont-objektum len() értékét, a JPEG MCU-határok kezelését, a binary() küszöbértéklista-elemzését, valamint a draw_keypoints() kulcspont-tuple-ök elfogadását.

Rendszer:

  • Javítottuk az fb_alloc mark/free egyensúlyhiányból eredő memóriaszivárgásokat a image / fir / lcd / tv / nn metódusokban, elértük, hogy a py_assert felszabadítsa a képkocka-puffer memóriáját elkapott kivételek esetén (#417), töröltük a UART túlcsordulás (ORE) jelzőbitet, hogy a túlcsordulások többé ne akasszák meg a UART-olvasásokat, javítottuk az RTC IRQ-kezelőt, valamint a Windows cascade_convert.py eszközt.

Hardver- és lapkatámogatás

  • FLIR Lepton hőkamera.

  • TV shield — SPI TV / kompozit videókimenet.

  • Global-shutter (MT9V034) triggerelt mód.

Megszakító API-változások

A felhasználó számára látható API-változások a v3.2.0 és a v3.3.0 között. Hatókör: Python C-modulok a modules/ könyvtárban és Python könyvtárak a scripts/libraries/ könyvtárban.

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

  • major — a funkciót használó legtöbb szkriptet érinti; 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 hangolt 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 található migrációs ellenőrzőlistára. Minden commit-hash a hozzá tartozó diffre hivatkozik a GitHubon.

cpufreq API átdolgozva (major)

A cpufreq modult átdolgoztuk a H7 támogatása érdekében. A cpufreq.CPUFREQ_120MHZ / 144 / 168 / 192 / 216MHZ konstansokat és a cpufreq.get_frequency() metódust eltávolítottuk. A cpufreq.set_frequency() most már egyszerű MHz-egészet vár (pl. cpufreq.set_frequency(120)), és hozzáadtuk a cpufreq.get_current_frequencies() / cpufreq.get_supported_frequencies() metódusokat.

Commitok: 6babf84a1

image.replace() pozicionális argumentumai eltolódtak (minor)

Az image.replace() kapott egy transpose argumentumot, amely a pozicionális mask argumentumot a 4. pozícióból az 5.-be tolta. Az olyan kódnak, amely a mask argumentumot pozicionálisan adta át (pl. img.replace(src, hmirror, vflip, mask)), át kell állnia a kulcsszavas formára: img.replace(src, mask=mask).

Commitok: dbe7bf059

A sensor.alloc_extra_fb() többé nem fogad el Bayer/JPEG formátumot (minor)

A sensor.alloc_extra_fb() többé nem fogadja el a sensor.BAYER vagy sensor.JPEG formátumot (most már a sensor.BINARY formátumot is támogatja). Az olyan kódnak, amely extra képkocka-puffereket foglalt Bayer vagy JPEG formátumban, a GRAYSCALE / RGB565 formátumot kell használnia (vagy más módon kell lefoglalnia a puffert).

Commitok: f9e6b3fe0

A sensor.set_framesize() kivételt dob hiba esetén (behavior)

A sensor.set_framesize() most már ValueError kivételt dob, ha a képkockaméret nem támogatott, ahelyett, hogy False értéket adna vissza. Az olyan kódnak, amely a False visszatérési értéket ellenőrizte, ehelyett el kell kapnia a ValueError kivételt.

Commitok: b0442633e

Migrációs ellenőrzőlista

A v3.3.0-ra való tiszta portoláshoz a tipikus teendők a következők:

  1. Portold a cpufreq kódot az egész-MHz-es set_frequency() és a get_current_frequencies() / get_supported_frequencies() metódusokra (a cpufreq átdolgozása).

  2. Add át a mask argumentumot az image.replace() metódusnak kulcsszóként (a replace változása).

  3. Foglald le az extra képkocka-puffereket GRAYSCALE / RGB565 formátumban a Bayer/JPEG helyett (az alloc_extra_fb változása).

  4. Kapd el a ValueError kivételt a sensor.set_framesize() körül a False ellenőrzése helyett (a set_framesize változása).

Minden más szkript változatlanul fut.