v3.7.0¶
A v3.7.0 egy nagy kiadás. Hozzáadja az audio modult (Portenta H7 PDM mikrofon) egy új, nem blokkoló visszahívás API-val, a micro_speech TensorFlow beszédfelismerő modult, egy vadonatúj párhuzamos RGB LCD vezérlőt (HDMI kimenettel és FT5X06 érintéssel), egy image.flush() metódust képpontformátum-konstansokkal, és egy újraírt image.draw_image() skálázási folyamatot. Több régi segédkönyvtár és képmetódus eltávolításra került, és a yuv_to_* matematika megváltozott — olvasd el a megszakító változásokat alább.
Kiemelések¶
audiomodul — Portenta H7 fedélzeti PDM mikrofon rögzítés egy nem blokkolóstart_streaming(callback)API-val.micro_speech— egy TensorFlow micro-speech felismerő modul.Új LCD vezérlő — párhuzamos RGB kijelző támogatás, HDMI kimenet (TFP410) és FT5X06 érintés.
image.draw_image()— újraírva egy teljes skálázási/alfa/paletta folyamattal (x_scale/y_scale/hint/color_palette…).image.flush()plusz képpontformátum-konstansok (image.BINARY/GRAYSCALE/RGB565/YUV422/BAYER/JPEG).Megszakító: a régi matematikai segédkönyvtárak és több képmetódus eltávolításra került, a
draw_image()/ LCD API-k átdolgozásra kerültek, és ayuv_to_*többé nem von ki 128-at — lásd a megszakító változásokat.
Új funkciók¶
audio— egy új Portenta H7audiomodul a PDM-mikrofon rögzítéséhez:audio.init(), nem blokkolóaudio.start_streaming(callback)ésaudio.stop_streaming()(a frekvencia Hz-ben van megadva).micro_speech— egy új modul egyMicroSpeechosztállyal,audio_callback()ésmicro_speech()függvényekkel a TensorFlow beszédfelismeréshez; alisten()egy futóablakos átlagot használ, és elfogad egyfilterkulcsszót, amely az eredményeket egy címkelistára korlátozza.LCD — egy új LCD vezérlő párhuzamos RGB kijelző támogatással,
LCD_NONE/LCD_SHIELD/LCD_DISPLAYtípusokkal, számos képkocka-méret konstanssal,triple_buffer/framesize/refresh/bgr/deinitopciókkal, egy kibővítettdisplaymodullal, HDMI kimenettel a TFP410-en keresztül, és FT5X06 érintőképernyő-támogatással.image.flush()— hozzáadva egyimage.flush()metódus és képpontformátum-konstansok (image.BINARY/GRAYSCALE/RGB565/YUV422/BAYER/JPEG).image.draw_image()— újraírva egy új skálázási folyamattal:x_scale/y_scale/x_size/y_size,rgb_channel,alpha,color_palette,alpha_paletteéshint, pluszimage.AREA/BILINEAR/BICUBIC/CENTER/EXTRACT_RGB_CHANNEL_FIRST/APPLY_COLOR_PALETTE_FIRSTkonstansokkal, valamint új alfa-keverési / színtábla / skálázási példákkal.Az
ImageReader.next_frame()kapott egypausekulcsszót a valós idejű lejátszási késleltetés letiltásához.Hozzáadva Portenta audio példák (
audio_fft.py,micro_speech.py) és egy ExtInt stop-állapotból ébresztő példa.
Egyéb változások és fejlesztések¶
A beépített példák átszervezésre kerültek a
scripts/examples/Arduino/alá; a képkocka-puffer mostantól azonnal frissül a képekcopy_to_fb=Trueparaméterrel való betöltése/létrehozása után (nincs szükség kézi flush-ra); a Portenta heap kissé csökkent, hogy több statikus illesztőprogram-állapot férjen el.
Hibajavítások¶
Kamera és képalkotás:
Javítva a felcserélt piros/kék (RGB565 bájtsorrend) a rögzített képeken, a DMA2D rajz kerekítése, hogy megegyezzen a többi rajzkóddal, a
fb_allocsérülés a rekurzív allokációkban (find_blobs()), és atop_hat()/black_hat()mostantól csak akkor érhető el, ha mind a bináris, mind a matematikai műveletek engedélyezve vannak.
Kijelző és audio:
Javítva az LCD shield kimenet és a Portenta 1 csatornás mono audio mód.
Portenta:
Megkerülve egy Ethernet/SDRAM probléma (az
rst_ethmagasra állítása) és javítva az SDRAM időzítési konfigurációja.
Hardver- és kártyatámogatás¶
Arduino Portenta H7 — fedélzeti PDM mikrofon (SAI / PDM2PCM) audio rögzítés.
LCD — új párhuzamos RGB kijelző vezérlő (LTDC engedélyezve a H7 buildben), HDMI kimenet a TFP410-en keresztül, és FT5X06 érintőképernyős LCD támogatás.
Megszakító API-változások¶
Felhasználó számára látható API-megszakítások a v3.6.9 és a v3.7.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 — azonos API, eltérő eredmények; ellenőrizd újra a hangolt szkripteket.
A változások ebben a sorrendben hatás szerint csoportosítva vannak. Ha csak portolni szeretnéd a kódodat, ugorj a migrációs ellenőrzőlistára a végén. Minden commit hash a GitHubon lévő diffjére hivatkozik.
Régi matematikai segédkönyvtárak eltávolítva (minor)¶
Az mtx, rv, ulinalg, umatrix és vec segédkönyvtárak eltávolításra kerültek a scripts/libraries mappából az ulab javára. Azok a szkriptek, amelyek import segítségével használják ezeket, hibát fognak adni, és ulab-ra kell portolni őket.
Commits: 1f7da9272
remove_shadows() / chrominvar() / illuminvar() eltávolítva (minor)¶
Az image.remove_shadows(), image.chrominvar() és image.illuminvar() metódusok törlésre kerültek helyettesítés nélkül. Az ezeket a metódusokat hívó szkripteknek el kell távolítaniuk a hívásokat.
Commits: 3173c2bb3
image.draw_image() szignatúra átdolgozva (minor)¶
Az image.draw_image() újra lett írva egy új skálázási folyamat tetejére. A régi pozicionális alpha / egyetlen scale argumentum és a korábbi pozicionális sorrend többé nem érvényes; használd az új kulcsszavas formát (x_scale= / y_scale= vagy x_size= / y_size=, alpha=, color_palette=, hint= …).
Commits: 3439f8824
LCD modul újraírása (minor)¶
Az lcd modul újra lett írva az új kijelző vezérlőhöz. Az lcd.init() mostantól egy kijelző type értéket (LCD_NONE / LCD_SHIELD / LCD_DISPLAY) és új kulcsszavas argumentumokat vesz fel, és a konstans / API felület jelentősen átszervezésre került. A régi, kizárólag shield-es szkriptek többnyire még működnek, de az alapértelmezések és a viselkedés megváltozott — ellenőrizd az LCD szkripteket az új type / framesize API-val szemben.
Commits: 185538207
A yuv_to_* többé nem von ki 128-at (behavior)¶
Az image.yuv_to_binary() / yuv_to_grayscale() / yuv_to_rgb() / yuv_to_lab() mostantól a Y tuple-elemet előjel nélküli 0–255 értékként kezeli ahelyett, hogy 128-at vonna ki. A hívóknak a Y-t a korábbi −128 eltolás nélkül kell átadniuk, hogy ugyanazokat a színeket kapják, mint korábban.
Commits: dcf141192
Migrációs ellenőrzőlista¶
A v3.7.0-ra való tiszta portoláshoz a tipikus munka a következő:
Portold az
mtx/rv/ulinalg/umatrix/vechasználatotulab-ra (a matematikai könyvtár eltávolítása).Távolítsd el az
image.remove_shadows()/chrominvar()/illuminvar()hívásokat (az eltávolított képmetódusok).Frissítsd az
image.draw_image()hívásokat az új kulcsszavas szignatúrára (a draw_image átdolgozás).Ellenőrizd az LCD szkripteket az új
lcdtype/framesizeAPI-val szemben (az LCD újraírás).Hagyd el a −128 eltolást, amikor a Y-t átadod a
yuv_to_*függvénynek (a yuv_to_* változás).
Minden más szkript változtatás nélkül fut.