v4.0.0

v4.0.0 on suuri v3 → v4 -julkaisu. Se tuo nykyaikaisen monikehyksisen sensor-puskuroinnin API:n (kaksois-/kolmoispuskurointi ja video-FIFO), kehyksen valmistumisen takaisinkutsun, Bluetooth-moduulin (NimBLE-pino) Portenta-tuella, ensimmäisen MT9M114-kamera-ajurin, MDMA:lle siirretyn kameran kaappauksen, Bayer/JPEG-tuen image.draw_image()-funktioon sekä hypyn MicroPython 1.15:een. Vanha striimaustila poistettiin ja sensor.set_windowing() uudistettiin — lue alla olevat rikkovat muutokset.

Kohokohdat

  • Monikehyspuskurointisensor saa kaksoispuskuroinnin, kolmoispuskuroinnin ja video-FIFO-tilan korkeampia, tasaisempia kuvataajuuksia varten.

  • Kehyksen valmistumisen takaisinkutsu — rekisteröi takaisinkutsu, joka laukeaa uuden kehyksen ollessa valmis, estottomia kaappausliukuhihnoja varten.

  • Bluetooth — NimBLE-pinon päälle rakennettu bluetooth-moduuli, käytössä Arduino Portenta H7:llä (BLE-esimerkin kera).

  • MT9M114 — ensimmäinen kamerasensoriajuri.

  • Nopeampi kaappaus — MDMA-siirto kameradatan kaappaukseen; draw_image() hyväksyy nyt Bayer- ja JPEG-lähteet/-kohteet.

  • MicroPython 1.15 — mukana toimitettu MicroPython päivitettiin versiosta 1.13 versioon 1.15.

  • Rikkova: vanha striimaustila poistettiin ja sensor.set_windowing() uudistettiin — katso rikkovat muutokset.

Uudet ominaisuudet

  • Sensorin monipuskurointi — lisätty sensor.set_framebuffers() / sensor.get_framebuffers() sekä SINGLE_BUFFER / DOUBLE_BUFFER / TRIPLE_BUFFER / VIDEO_FIFO -tilat ja sensor.get_frame_available() kaksois-, kolmois- ja video-FIFO-kaappausta varten.

  • Kehyksen valmistumisen takaisinkutsu — lisätty sensor.set_frame_callback(), jotta Python-takaisinkutsu suoritetaan jokaisen uuden kehyksen valmistuessa.

  • Bluetooth — lisätty NimBLE-pinon tukema bluetooth-moduuli (NimBLE-alimoduuli, CYW-BT-ajuri), käytössä Arduino Portenta H7:llä BLE-esimerkin kera.

  • MT9M114 — lisätty ensimmäinen MT9M114-kamerasensoriajuri.

  • draw_image — lisätty debayerointituki ja JPEG-kopiointituki, jotta image.draw_image() hyväksyy Bayer- ja JPEG-lähde-/kohdekuvat.

  • MDMA-kaappaussiirto — kameradatan kaappaus siirretään MDMA:lle suuremman läpäisykyvyn saavuttamiseksi.

  • Väripaletti-argumentti voidaan nyt poistaa käytöstä antamalla -1 (koska None on varattu kelvolliseksi argumentiksi).

Muut muutokset ja parannukset

  • Siirrytty uuteen ohjelmistopohjaiseen I2C-toteutukseen; yhtenäistetty MicroPythonin yläjuoksun kanssa; korttikohtainen ulab-konfiguraatio; perustason sisäänrakennetut moduulit otettu käyttöön OpenMV 2:lle; oikeudenmukaisempi kehyspuskurin lukulukitus; mutex-tuki laajennettu Cortex-M0/M0+:lle lukituksen aikakatkaisulla.

Vikakorjaukset

Kamera ja kuvankäsittely:

  • Korjattu FLIR Lepton -alustuksen luotettavuus Pure Thermal -kortilla, ImageIO:n JPEG-puskurin / taukojen käsittely, HM01B0:n vflip/hmirror-asetukset, JPEG-puskurin tyhjennys kuvan mitätöityessä sekä cropped-lippu, joka asetettiin kehyskoon ollessa virheellinen.

Järjestelmä ja yhteydet:

  • Korjattu USB-komennon tyhjennys ja reset-to-bootloader-komento, mutexin alustus, UART-kellolähde, FatFS:n koodisivun määrittely, WINC1500:n out-of-band-ACK-käsittely, WiFi-vianetsintä ja Nano33:n USB-PID; eristetty erilliset analogiset padit.

Laitteisto- ja korttituki

  • MT9M114-kamerasensori (ensimmäinen ajuri).

  • Arduino Portenta H7 — Bluetooth käytössä (NimBLE) BLE-esimerkin kera.

  • Arduino Nano RP2040 Connect / Nano 33 BLE Sense — WiFi-vianetsinnän lippu poistettu käytöstä siellä, missä sitä ei tueta; lisätty vilkkuesimerkki; USB-PID-korjaus.

Rikkovat API-muutokset

Käyttäjälle näkyvät API-rikot v3.9.4:n ja v4.0.0:n välillä. Laajuus: Python-C-moduulit kansiossa modules/ ja Python-kirjastot kansiossa scripts/libraries/.

Jokainen muutos on merkitty vaikutuksensa mukaan:

  • major — vaikuttaa useimpiin skripteihin; joudut lähes varmasti porttaamaan koodia.

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

  • behavior — sama API, eri tulokset; tarkista viritetyt skriptit uudelleen.

Muutokset on ryhmitelty vaikutuksen mukaan tässä järjestyksessä. Jos haluat vain portata koodisi, siirry lopussa olevaan siirtymistarkistuslistaan. Jokainen commit-tiiviste linkittää sen diffiin GitHubissa.

Striimaustila poistettu (major)

Vanha sensorin striimaustila poistettiin uuden monikehyspuskuroinnin API:n hyväksi. Koodin, joka otti striimaustilan käyttöön, on siirryttävä sensor.set_framebuffers()-kutsuun DOUBLE_BUFFER / TRIPLE_BUFFER / VIDEO_FIFO -tilalla ja ohjattava kaappausta sen sijaan sensor.snapshot() / sensor.get_frame_available() -kutsuilla.

Commitit: a42f3a647

sensor.set_windowing() uudistettu (behavior)

sensor.set_windowing() tehtiin paljon joustavammaksi: se hyväksyy nyt useita argumenttimuotoja (alue-monikko, tai keskitetty leveys/korkeus, tai x, y, w, h) ja ratkaisee ikkunan suhteessa nykyiseen resoluutioon. Skriptit, jotka antoivat ikkunointiargumentit vanhassa kiinteässä muodossa, saattavat valita eri alueen ja ne kannattaa tarkistaa uudelleen.

Commitit: 3e9c43554

MicroPython 1.13 → 1.15 (behavior)

Mukana toimitettu MicroPython-ydin päivitettiin versiosta 1.13 versioon 1.15 (kautta 1.14). Vakiokirjaston ja kielen käyttäytyminen noudattaa yläjuoksun MicroPython 1.15:tä; tarkista uudelleen skriptit, jotka riippuvat versiokohtaisesta micropython- / vakiomoduulien käyttäytymisestä.

Commitit: 364eea6c7, 26c5376b0

ImageIO:n update_jpeg_buffer-argumentti poistettu (minor)

ImageIO:n JPEG-puskurin päivitys uudistettiin johtamaan puskuri kuvalähde-argumentista, ja eksplisiittinen update_jpeg_buffer-argumentti poistettiin. Skriptien, jotka antoivat update_jpeg_buffer-argumentin ImageIO:lle, on poistettava se.

Commitit: 5c6937bd1

Siirtymistarkistuslista

Siisti portaus v4.0.0:aan edellyttää tyypillisesti seuraavaa:

  1. Korvaa kaikki poistetun striimaustilan käyttö uudella sensor.set_framebuffers()-monipuskuroinnin API:lla (striimaustila poistettu).

  2. Tarkista sensor.set_windowing()-kutsut uudelleen uudistettua, joustavampaa argumenttien käsittelyä vasten (ikkunointimuutos).

  3. Vahvista uudelleen skriptit, jotka riippuvat versiokohtaisesta MicroPython-käyttäytymisestä, MicroPython 1.15:tä vasten (MicroPython-päivitys).

  4. Poista update_jpeg_buffer-argumentti ImageIO-kutsuista (ImageIO-muutos).

Kaikki muut skriptit toimivat sellaisinaan.