v3.7.0¶
v3.7.0 je velké vydání. Přidává modul audio (PDM mikrofon na Portenta H7) s novým neblokujícím callback API, modul rozpoznávání řeči micro_speech pro TensorFlow, zcela nový řadič paralelního RGB LCD (s výstupem HDMI a dotykem FT5X06), metodu image.flush() s konstantami formátu pixelů a přepsaný škálovací řetězec image.draw_image(). Několik starších pomocných knihoven a metod obrazu bylo odstraněno a změnila se matematika yuv_to_* — přečtěte si zásadní změny níže.
Hlavní novinky¶
Modul
audio— záznam z palubního PDM mikrofonu Portenta H7 s neblokujícím APIstart_streaming(callback).micro_speech— modul rozpoznávání řeči micro-speech pro TensorFlow.Nový řadič LCD — podpora paralelního RGB displeje, výstup HDMI (TFP410) a dotyk FT5X06.
image.draw_image()— přepsáno s plným řetězcem škálování/alfa/palety (x_scale/y_scale/hint/color_palette…).image.flush()plus konstanty formátu pixelů (image.BINARY/GRAYSCALE/RGB565/YUV422/BAYER/JPEG).Zásadní: byly odstraněny starší matematické pomocné knihovny a několik metod obrazu, byla přepracována API
draw_image()/ LCD ayuv_to_*již neodečítá 128 — viz zásadní změny.
Nové funkce¶
audio— nový modulaudiopro Portenta H7 pro záznam z PDM mikrofonu:audio.init(), neblokujícíaudio.start_streaming(callback)aaudio.stop_streaming()(frekvence se zadává v Hz).micro_speech— nový modul s třídouMicroSpeech,audio_callback()amicro_speech()pro rozpoznávání řeči TensorFlow;listen()používá průměr v klouzavém okně a přijímá klíčové slovofilterpro omezení výsledků na seznam štítků.LCD — nový řadič LCD s podporou paralelního RGB displeje, typy
LCD_NONE/LCD_SHIELD/LCD_DISPLAY, mnoha konstantami framesize,triple_buffer/framesize/refresh/bgr/deinit, rozšířenýmdisplay, výstupem HDMI přes TFP410 a podporou dotykové obrazovky FT5X06.image.flush()— přidána metodaimage.flush()a konstanty formátu pixelů (image.BINARY/GRAYSCALE/RGB565/YUV422/BAYER/JPEG).image.draw_image()— přepsáno s novým škálovacím řetězcem:x_scale/y_scale/x_size/y_size,rgb_channel,alpha,color_palette,alpha_paletteahint, plus konstantyimage.AREA/BILINEAR/BICUBIC/CENTER/EXTRACT_RGB_CHANNEL_FIRST/APPLY_COLOR_PALETTE_FIRSTa nové ukázky alfa prolínání / barevné tabulky / škálování.ImageReader.next_frame()získal klíčové slovopausepro vypnutí prodlevy přehrávání v reálném čase.Přidány ukázky zvuku pro Portenta (
audio_fft.py,micro_speech.py) a ukázka probuzení ze stavu stop pomocí ExtInt.
Další změny a vylepšení¶
Vestavěné ukázky byly reorganizovány pod
scripts/examples/Arduino/; framebuffer se nyní aktualizuje okamžitě po načtení/vytvoření obrazů scopy_to_fb=True(není potřeba ruční flush); halda Portenta byla mírně zmenšena, aby se vešlo více statického stavu ovladačů.
Opravy chyb¶
Kamera a zpracování obrazu:
Opraveno prohození červené/modré (pořadí bajtů RGB565) v zachycených obrazech, zaokrouhlování kreslení DMA2D pro shodu s ostatním kreslicím kódem, poškození
fb_allocpři rekurzivních alokacích (find_blobs()) a podmíněnotop_hat()/black_hat()tím, že jsou povoleny jak binární, tak matematické operace.
Displej a zvuk:
Opraven výstup LCD shieldu a 1kanálový mono zvukový režim Portenta.
Portenta:
Obejit problém s Ethernet/SDRAM (nastavení
rst_ethdo high) a opravena konfigurace časování SDRAM.
Hardware a podpora desek¶
Arduino Portenta H7 — záznam zvuku z palubního PDM mikrofonu (SAI / PDM2PCM).
LCD — nový řadič paralelního RGB displeje (LTDC aktivováno v sestavení H7), výstup HDMI přes TFP410 a podpora LCD s dotykovou obrazovkou FT5X06.
Zásadní změny API¶
Uživatelsky viditelné změny API mezi v3.6.9 a v3.7.0. Rozsah: Python C-moduly v modules/ a Python knihovny v scripts/libraries/.
Každá změna je označena svým dopadem:
minor — úzké API; ovlivňuje pouze skripty, které jej používaly.
behavior — stejné API, jiné výsledky; překontrolujte vyladěné skripty.
Změny jsou seskupeny podle dopadu v tomto pořadí. Pokud chcete pouze přenést svůj kód, přejděte na kontrolní seznam migrace na konci. Každý hash commitu odkazuje na svůj diff na GitHubu.
Odstraněny starší matematické pomocné knihovny (minor)¶
Pomocné knihovny mtx, rv, ulinalg, umatrix a vec byly odstraněny z scripts/libraries ve prospěch ulab. Skripty, které kteroukoli z nich importují, selžou a musí být přeneseny na ulab.
Commity: 1f7da9272
Odstraněny remove_shadows() / chrominvar() / illuminvar() (minor)¶
image.remove_shadows(), image.chrominvar() a image.illuminvar() byly odstraněny bez náhrady. Skripty volající tyto metody musí volání odstranit.
Commity: 3173c2bb3
Přepracována signatura image.draw_image() (minor)¶
image.draw_image() bylo přepsáno na novém škálovacím řetězci. Staré poziční argumenty alpha / jednoduchý scale a předchozí poziční pořadí již neplatí; použijte novou formu s klíčovými slovy (x_scale= / y_scale= nebo x_size= / y_size=, alpha=, color_palette=, hint= …).
Commity: 3439f8824
Přepsání modulu LCD (minor)¶
Modul lcd byl přepsán pro nový řadič displeje. lcd.init() nyní přijímá type displeje (LCD_NONE / LCD_SHIELD / LCD_DISPLAY) a nové klíčové argumenty a sada konstant / API byla podstatně reorganizována. Staré skripty určené pouze pro shield většinou stále fungují, ale výchozí hodnoty a chování se změnily — překontrolujte LCD skripty vůči novému API type / framesize.
Commity: 185538207
yuv_to_* již neodečítá 128 (behavior)¶
image.yuv_to_binary() / yuv_to_grayscale() / yuv_to_rgb() / yuv_to_lab() nyní zacházejí s prvkem Y v n-tici jako s hodnotou bez znaménka 0–255 místo odečítání 128. Volající musí předat Y bez předchozího posunu −128, aby dostali stejné barvy jako dříve.
Commity: dcf141192
Kontrolní seznam migrace¶
Pro čistý přechod na v3.7.0 je typická práce následující:
Přeneste použití
mtx/rv/ulinalg/umatrix/vecnaulab(odstranění matematických knihoven).Odstraňte volání
image.remove_shadows()/chrominvar()/illuminvar()(odstraněné metody obrazu).Aktualizujte volání
image.draw_image()na novou signaturu s klíčovými slovy (přepracování draw_image).Překontrolujte LCD skripty vůči novému API
lcdtype/framesize(přepsání LCD).Vynechte posun −128 při předávání Y do
yuv_to_*(změna yuv_to_*).
Všechny ostatní skripty poběží beze změny.