v3.7.0¶
v3.7.0 je veliko izdanje. Dodaje audio modul (PDM mikrofon na Portenta H7) s novim neblokirajućim API-jem za povratne pozive, micro_speech TensorFlow modul za prepoznavanje govora, potpuno novi paralelni RGB LCD kontroler (s HDMI izlazom i FT5X06 dodirom), metodu image.flush() s konstantama formata piksela te prepisanu image.draw_image() cjevovod za skaliranje. Uklonjeno je nekoliko zastarjelih pomoćnih biblioteka i metoda slike te se promijenila yuv_to_* matematika — pročitajte promjene koje narušavaju kompatibilnost u nastavku.
Istaknuto¶
audiomodul — snimanje s ugrađenog PDM mikrofona na Portenta H7 s neblokirajućimstart_streaming(callback)API-jem.micro_speech— TensorFlow modul za prepoznavanje mikro-govora.Novi LCD kontroler — podrška za paralelni RGB zaslon, HDMI izlaz (TFP410) i FT5X06 dodir.
image.draw_image()— prepisan s potpunim cjevovodom za skaliranje/alpha/paletu (x_scale/y_scale/hint/color_palette…).image.flush()te konstante formata piksela (image.BINARY/GRAYSCALE/RGB565/YUV422/BAYER/JPEG).Narušava kompatibilnost: uklonjene su zastarjele matematičke pomoćne biblioteke i nekoliko metoda slike,
draw_image()/ LCD API-ji su preuređeni, ayuv_to_*više ne oduzima 128 — pogledajte promjene koje narušavaju kompatibilnost.
Nove značajke¶
audio— noviaudiomodul za Portenta H7 za snimanje s PDM mikrofona:audio.init(), neblokirajućiaudio.start_streaming(callback)teaudio.stop_streaming()(frekvencija se navodi u Hz).micro_speech— novi modul s klasomMicroSpeech,audio_callback()temicro_speech()za TensorFlow prepoznavanje govora;listen()koristi prosjek kliznog prozora i prihvaća ključnu riječfilterza ograničavanje rezultata na popis oznaka.LCD — novi LCD kontroler s podrškom za paralelni RGB zaslon, tipovima
LCD_NONE/LCD_SHIELD/LCD_DISPLAY, mnogim konstantama veličine sličice,triple_buffer/framesize/refresh/bgr/deinit, proširenimdisplay, HDMI izlazom putem TFP410 te podrškom za FT5X06 dodirni zaslon.image.flush()— dodana metodaimage.flush()i konstante formata piksela (image.BINARY/GRAYSCALE/RGB565/YUV422/BAYER/JPEG).image.draw_image()— prepisan s novim cjevovodom za skaliranje:x_scale/y_scale/x_size/y_size,rgb_channel,alpha,color_palette,alpha_palettetehint, uz konstanteimage.AREA/BILINEAR/BICUBIC/CENTER/EXTRACT_RGB_CHANNEL_FIRST/APPLY_COLOR_PALETTE_FIRSTi nove primjere alpha-miješanja / tablice boja / skaliranja.ImageReader.next_frame()dobio je ključnu riječpauseza onemogućavanje kašnjenja reprodukcije u stvarnom vremenu.Dodani Portenta audio primjeri (
audio_fft.py,micro_speech.py) te primjer buđenja iz zaustavljenog stanja pomoću ExtInt.
Ostale promjene i poboljšanja¶
Ugrađeni primjeri reorganizirani su pod
scripts/examples/Arduino/; međuspremnik slike sada se trenutno ažurira nakon učitavanja/stvaranja slika scopy_to_fb=True(nije potrebno ručno pražnjenje); Portenta gomila (heap) blago je smanjena kako bi stalo više statičkog stanja upravljačkih programa.
Ispravci grešaka¶
Kamera i obrada slike:
Ispravljena zamijenjena crvena/plava (RGB565 redoslijed bajtova) u snimljenim slikama, zaokruživanje DMA2D crtanja radi usklađivanja s ostalim kodom za crtanje,
fb_allockorupcija u rekurzivnim alokacijama (find_blobs()) te uvjetovanitop_hat()/black_hat()tako da budu omogućene i binarne i matematičke operacije.
Zaslon i audio:
Ispravljen izlaz LCD shielda i Portenta mono audio način rada s 1 kanalom.
Portenta:
Zaobiđen problem s Ethernet/SDRAM (postavljanje
rst_ethna visoko) i ispravljena konfiguracija vremenskog usklađivanja SDRAM-a.
Hardver i podrška za ploče¶
Arduino Portenta H7 — snimanje audija s ugrađenog PDM mikrofona (SAI / PDM2PCM).
LCD — novi kontroler za paralelni RGB zaslon (LTDC omogućen u H7 buildu), HDMI izlaz putem TFP410 te podrška za FT5X06 dodirni LCD zaslon.
Promjene API-ja koje narušavaju kompatibilnost¶
Korisniku vidljive promjene API-ja koje narušavaju kompatibilnost između v3.6.9 i v3.7.0. Opseg: Python C-moduli u modules/ i Python biblioteke u scripts/libraries/.
Svaka promjena označena je svojim utjecajem:
minor — uski API; utječe samo na skripte koje su ga koristile.
behavior — isti API, drugačiji rezultati; ponovno provjerite ugođene skripte.
Promjene su grupirane po utjecaju tim redoslijedom. Ako samo želite prenijeti svoj kod, prijeđite na kontrolni popis za migraciju na kraju. Svaki hash commita vodi na njegov diff na GitHubu.
Uklonjene zastarjele matematičke pomoćne biblioteke (minor)¶
Pomoćne biblioteke mtx, rv, ulinalg, umatrix i vec uklonjene su iz scripts/libraries u korist ulab. Skripte koje import bilo koju od njih neće raditi i moraju se prenijeti na ulab.
Commitovi: 1f7da9272
Uklonjeni remove_shadows() / chrominvar() / illuminvar() (minor)¶
image.remove_shadows(), image.chrominvar() i image.illuminvar() izbrisani su bez zamjene. Skripte koje pozivaju ove metode moraju ukloniti te pozive.
Commitovi: 3173c2bb3
Preuređen potpis image.draw_image() (minor)¶
image.draw_image() prepisan je na temelju novog cjevovoda za skaliranje. Stari pozicijski alpha / jedinstveni scale argumenti i prijašnji pozicijski redoslijed više ne vrijede; koristite novi oblik s ključnim riječima (x_scale= / y_scale= ili x_size= / y_size=, alpha=, color_palette=, hint= …).
Commitovi: 3439f8824
Prepisivanje LCD modula (minor)¶
Modul lcd prepisan je za novi kontroler zaslona. lcd.init() sada prima type zaslona (LCD_NONE / LCD_SHIELD / LCD_DISPLAY) i nove argumente s ključnim riječima, a površina konstanti / API-ja znatno je reorganizirana. Stare skripte samo za shield uglavnom još rade, ali su se zadane vrijednosti i ponašanje promijenili — pregledajte LCD skripte u odnosu na novi type / framesize API.
Commitovi: 185538207
yuv_to_* više ne oduzima 128 (behavior)¶
image.yuv_to_binary() / yuv_to_grayscale() / yuv_to_rgb() / yuv_to_lab() sada tretiraju Y element torke kao predznakovno nedefinirani (unsigned) vrijednost 0–255 umjesto da oduzimaju 128. Pozivatelji moraju proslijediti Y bez prijašnje pristranosti od −128 kako bi dobili iste boje kao prije.
Commitovi: dcf141192
Kontrolni popis za migraciju¶
Za čist prijenos na v3.7.0 tipičan posao je:
Prenesite upotrebu
mtx/rv/ulinalg/umatrix/vecnaulab(uklanjanje matematičkih biblioteka).Uklonite pozive
image.remove_shadows()/chrominvar()/illuminvar()(uklonjene metode slike).Ažurirajte pozive
image.draw_image()na novi potpis s ključnim riječima (preuređenje draw_image).Pregledajte LCD skripte u odnosu na novi
lcdtype/framesizeAPI (prepisivanje LCD-a).Uklonite pristranost od −128 prilikom prosljeđivanja Y u
yuv_to_*(promjena yuv_to_*).
Sve ostale skripte rade nepromijenjene.