v3.7.0

v3.7.0 on iso julkaisu. Se lisää audio-moduulin (Portenta H7:n PDM-mikrofoni) uudella ei-estävällä takaisinkutsu-API:lla, micro_speech TensorFlow-puheentunnistusmoduulin, aivan uuden rinnakkais-RGB LCD-ohjaimen (HDMI-ulostulolla ja FT5X06-kosketuksella), image.flush()-metodin pikseliformaattivakioineen ja uudelleenkirjoitetun image.draw_image()-skaalausputken. Useita vanhoja apukirjastoja ja kuvametodeja poistettiin ja yuv_to_*-laskenta muuttui — lue rikkovat muutokset alta.

Kohokohdat

  • audio-moduuli — Portenta H7:n sisäisen PDM-mikrofonin kaappaus ei-estävällä start_streaming(callback)-API:lla.

  • micro_speech — TensorFlow-mikropuheentunnistusmoduuli.

  • Uusi LCD-ohjain — rinnakkais-RGB-näyttötuki, HDMI-ulostulo (TFP410) ja FT5X06-kosketus.

  • image.draw_image() — uudelleenkirjoitettu täydellä skaalaus-/alfa-/palettiputkella (x_scale / y_scale / hint / color_palette …).

  • image.flush() sekä pikseliformaattivakiot (image.BINARY / GRAYSCALE / RGB565 / YUV422 / BAYER / JPEG).

  • Rikkova: vanhat matematiikan apukirjastot ja useita kuvametodeja poistettiin, draw_image() / LCD-API:t uudistettiin, eikä yuv_to_* enää vähennä 128:aa — katso rikkovat muutokset.

Uudet ominaisuudet

  • audio — uusi Portenta H7:n audio-moduuli PDM-mikrofonin kaappaukseen: audio.init(), ei-estävä audio.start_streaming(callback) ja audio.stop_streaming() (taajuus annetaan hertseinä).

  • micro_speech — uusi moduuli, jossa on MicroSpeech-luokka, audio_callback() ja micro_speech() TensorFlow-puheentunnistukseen; listen() käyttää liukuvan ikkunan keskiarvoa ja hyväksyy filter-avainsanan tulosten rajaamiseksi luokkanimilistaan.

  • LCD — uusi LCD-ohjain rinnakkais-RGB-näyttötuella, LCD_NONE / LCD_SHIELD / LCD_DISPLAY -tyypit, monia framesize-vakioita, triple_buffer / framesize / refresh / bgr / deinit, laajennettu display, HDMI-ulostulo TFP410:n kautta ja FT5X06-kosketusnäyttötuki.

  • image.flush() — lisätty image.flush()-metodi ja pikseliformaattivakiot (image.BINARY / GRAYSCALE / RGB565 / YUV422 / BAYER / JPEG).

  • image.draw_image() — uudelleenkirjoitettu uudella skaalausputkella: x_scale / y_scale / x_size / y_size, rgb_channel, alpha, color_palette, alpha_palette ja hint, sekä image.AREA / BILINEAR / BICUBIC / CENTER / EXTRACT_RGB_CHANNEL_FIRST / APPLY_COLOR_PALETTE_FIRST -vakiot ja uudet alfasekoitus-/väritaulu-/skaalausesimerkit.

  • ImageReader.next_frame() sai pause-avainsanan reaaliaikaisen toistoviiveen poistamiseen.

  • Lisätty Portentan ääniesimerkit (audio_fft.py, micro_speech.py) ja ExtInt-herätys-stop-tilasta-esimerkki.

Muut muutokset ja parannukset

  • Sisäänrakennetut esimerkit järjestettiin uudelleen kansioon scripts/examples/Arduino/; kehyspuskuri päivittyy nyt välittömästi kuvien lataamisen/luomisen jälkeen asetuksella copy_to_fb=True (manuaalista tyhjennystä ei tarvita); Portentan keko pienennettiin hieman, jotta enemmän staattista ajuritilaa mahtuu.

Virhekorjaukset

Kamera ja kuvankäsittely:

  • Korjattu vaihtuneet punainen/sininen (RGB565-tavujärjestys) kaapatuissa kuvissa, DMA2D-piirron pyöristys vastaamaan muuta piirtokoodia, fb_alloc-korruptio rekursiivisissa varauksissa (find_blobs()) ja portitettiin top_hat() / black_hat() sekä binääri- että matematiikkaoperaatioiden käyttöönoton taakse.

Näyttö ja ääni:

  • Korjattu LCD-shieldin ulostulo ja Portentan 1-kanavainen monoäänitila.

Portenta:

  • Kierretty Ethernet-/SDRAM-ongelma (ajetaan rst_eth ylätilaan) ja korjattu SDRAM-ajoituksen asetus.

Laitteisto- ja korttituki

  • Arduino Portenta H7 — sisäisen PDM-mikrofonin (SAI / PDM2PCM) äänikaappaus.

  • LCD — uusi rinnakkais-RGB-näyttöohjain (LTDC otettu käyttöön H7-buildissa), HDMI-ulostulo TFP410:n kautta ja FT5X06-kosketusnäyttö-LCD-tuki.

Rikkovat API-muutokset

Käyttäjälle näkyvät API-rikkoumat v3.6.9:n ja v3.7.0:n välillä. Laajuus: Python C-moduulit kansiossa modules/ ja Python-kirjastot kansiossa scripts/libraries/.

Jokainen muutos on merkitty vaikutuksensa mukaan:

  • minor — kapea API; vaikuttaa vain sitä käyttäneisiin skripteihin.

  • behavior — sama API, eri tulokset; tarkista hienosäädetyt skriptit uudelleen.

Muutokset on ryhmitelty vaikutuksen mukaan tässä järjestyksessä. Jos haluat vain portata koodisi, hyppää migraatiotarkistuslistaan lopussa. Jokainen commit-tunniste linkittää diffiinsä GitHubissa.

Vanhat matematiikan apukirjastot poistettu (minor)

Apukirjastot mtx, rv, ulinalg, umatrix ja vec poistettiin kansiosta scripts/libraries ulab-kirjaston hyväksi. Skriptit, jotka käyttävät import-lausetta mihin tahansa näistä, epäonnistuvat ja ne on portattava ulab-kirjastoon.

Commitit: 1f7da9272

remove_shadows() / chrominvar() / illuminvar() poistettu (minor)

image.remove_shadows(), image.chrominvar() ja image.illuminvar() poistettiin ilman korvaavaa toteutusta. Skriptien, jotka kutsuvat näitä metodeja, on poistettava kutsut.

Commitit: 3173c2bb3

image.draw_image()-allekirjoitus uudistettu (minor)

image.draw_image() kirjoitettiin uudelleen uuden skaalausputken päälle. Vanhat positionaaliset alpha / yksittäinen scale -argumentit ja aiempi positionaalinen järjestys eivät enää päde; käytä uutta avainsanamuotoa (x_scale= / y_scale= tai x_size= / y_size=, alpha=, color_palette=, hint= …).

Commitit: 3439f8824

LCD-moduulin uudelleenkirjoitus (minor)

lcd-moduuli kirjoitettiin uudelleen uutta näyttöohjainta varten. lcd.init() ottaa nyt näytön tyypin (type) (LCD_NONE / LCD_SHIELD / LCD_DISPLAY) ja uudet avainsana-argumentit, ja vakio-/API-pinta järjestettiin merkittävästi uudelleen. Vanhat vain-shield-skriptit toimivat enimmäkseen yhä, mutta oletukset ja toiminta muuttuivat — tarkista LCD-skriptit uutta type / framesize -API:a vasten.

Commitit: 185538207

yuv_to_* ei enää vähennä 128:aa (behavior)

image.yuv_to_binary() / yuv_to_grayscale() / yuv_to_rgb() / yuv_to_lab() käsittelevät nyt Y-monikon alkion etumerkittömänä 0–255-arvona sen sijaan, että vähentäisivät 128:aa. Kutsujien on välitettävä Y ilman aiempaa −128-biasta saadakseen samat värit kuin ennen.

Commitit: dcf141192

Migraatiotarkistuslista

Siistiin v3.7.0-porttiin tyypillinen työ on:

  1. Portaa mtx / rv / ulinalg / umatrix / vec -käyttö ulab-kirjastoon (matematiikkakirjastojen poisto).

  2. Poista image.remove_shadows() / chrominvar() / illuminvar() -kutsut (poistetut kuvametodit).

  3. Päivitä image.draw_image()-kutsut uuteen avainsana-allekirjoitukseen (draw_image-uudistus).

  4. Tarkista LCD-skriptit uutta lcd type / framesize -API:a vasten (LCD-uudelleenkirjoitus).

  5. Poista −128-bias välittäessäsi Y:n funktiolle yuv_to_* (yuv_to_*-muutos).

Kaikki muut skriptit toimivat muuttumattomina.