v4.5.1

v4.5.1 lisää kuvan suunta-/kuvasuhdepiirtovihjeet, kuvien lataamisen suoraan tiedostopolusta, GC2145:n laajan näkökentän ioctl:n sekä uuden taustavalon ohjaimen API:n. Se myös uudistaa Image()-konstruktorin, display-API:t ja moduulien argumenttien jäsennyksen — lue rikkovat muutokset alta.

Kohokohdat

  • Piirtovihjeetdraw_image() sai suunta- (HMIRROR/VFLIP/TRANSPOSE, ROTATE_90/180/270) ja kuvasuhdeskaalausvihjeet (SCALE_ASPECT_KEEP/EXPAND/IGNORE).

  • Kuvien lataus levyltädraw_image() / display.write() hyväksyvät tiedostopolkumerkkijonon.

  • Taustavalon ohjaus — uudet DACBacklight / PWMBacklight -luokat ja näytön backlight= -argumentti.

  • Rikkova: Image()-konstruktori, display-API:t ja moduulien argumenttien jäsennys muuttuivat — katso rikkovat muutokset.

Uudet ominaisuudet

  • draw_image() -suuntavihjeet — image.HMIRROR, image.VFLIP, image.TRANSPOSE sekä kätevät image.ROTATE_90 / ROTATE_180 / ROTATE_270.

  • draw_image() -kuvasuhdevihjeet — image.SCALE_ASPECT_KEEP / SCALE_ASPECT_EXPAND / SCALE_ASPECT_IGNORE sovitukseen / laajennukseen / venytykseen.

  • Palettivakiotimage.PALETTE_RAINBOW ja image.PALETTE_IRONBOW (siirretty image-moduuliin).

  • Laaja näkökenttä — uudet sensor.IOCTL_SET_FOV_WIDE / IOCTL_GET_FOV_WIDE -ioctl:t (GC2145:llä, jopa 5x sensoriskaalaus).

  • Lataus levyltädraw_image() ja display.write() hyväksyvät lähdekuvan tiedostopolkumerkkijonon, ladaten sen suoraan tallennustilasta.

  • Taustavalon ohjaimet — uudet DACBacklight ja PWMBacklight -luokat (tuotavissa display-moduulista) sekä vain avainsanana annettava backlight= -argumentti SPI-/rinnakkaisnäyttöjen konstruktoreissa.

Muut muutokset ja parannukset

  • ST7701 DSI -näyttöajuri siirtyi omaan st7701.py -moduuliinsa (yhä tuotavissa from display import * -kautta) ja on jäädytetty Arduino Gigaan; lsm9ds1 IMU -ajuri jäädytettiin Arduino Nano 33 BLE Senseen.

  • MT9V022 / MT9V034 (global-shutter) -kamerat soveltavat nyt riviheijasteen korjausta paremman kuvanlaadun saamiseksi.

  • i.MX RT:n USB-massamuistitaltio on nyt merkitty OpenMV-levyksi.

Virheenkorjaukset

Kamera ja sensorit:

  • Korjattiin kulmantunnistus (find_keypoints() FAST/AGAST) yli 480 riviä korkeammilla kuvilla — rivikohtaisen puskurin koko mitoitetaan nyt kuvan korkeuden mukaan.

  • Lisättiin FSYNC-nastan tuki kehyssynkronoidulle snapshot()-toiminnolle i.MX RT:llä (OpenMV RT1060), ja korjattiin vaihtuneet SPI4 MOSI/MISO -nastat RT1060:llä.

Näyttö ja video:

  • Korjattiin SPIDisplay-konstruktorin argumenttijärjestys (bgr, byte_swap, triple_buffer kohdistuivat vääriin parametreihin).

  • Korjattiin TV-laajennuksen kuvan vioittuminen piirrettäessä kuvaa määritetyllä suorakulmiolla sekä virheelliset MJPEG-kehysrajat skaalattuja kehyksiä tallennettaessa.

Verkko:

  • WINC WiFi AP -tila ei enää pakota vanhentunutta vain-WEP-rajoitusta — avoin ja WPA AP -tilat toimivat asianmukaisella PSK-käsittelyllä.

Laitteisto- ja korttituki

  • OpenMV RT1060 — FSYNC-nasta ja korjatut SPI4-nastat.

  • Arduino GIGA — QSPI-luotettavuuden kiertotapa; ST7701-näyttö jäädytetty sisään.

  • Arduino Nano 33 BLE Senselsm9ds1 IMU -ajuri jäädytetty sisään.

Rikkovat API-muutokset

Käyttäjälle näkyvät API-rikkoutumiset versioiden v4.5.0 ja v4.5.1 välillä. Laajuus: Python C-moduulit hakemistossa modules/ ja Python-kirjastot hakemistossa 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 siirtää koodisi, hyppää lopussa olevaan siirtymistarkistuslistaan. Jokainen commit-tiiviste linkittää diffiinsä GitHubissa.

Image()-konstruktori ja display-API:t (minor)

image.Image-konstruktori uudistettiin avainsana-argumenteille (height, pixformat, buffer=, copy_to_fb=); se voi nyt rakentaa kuvan olemassa olevasta bytearray-/puskurista, ja puskuri vaaditaan pakatuille muodoille. display.write() uudistettiin: x_scale/y_scale ottavat nyt liukuluvun (skaalaussuhde) tai kokonaisluvun (kohdekoko pikseleinä), ja erilliset x_size/y_size -avainsanat poistettiin. WINC.connect()-kutsun ensimmäinen positionaalinen argumentti nimettiin uudelleen essidssid, ja WINC WiFi -skannauksen tulokset muuttuivat muotoon (ssid_bytes, bssid_bytes, channel, rssi, security, N) (SSID/BSSID ovat nyt tavuja; BSSID ei ole enää muotoiltu MAC-merkkijono).

Commitit: 6752c95ac, 161737092, 8178c237c, b6cdf8de1

Taustavalon alue, skaalaus ja vain avainsanana annettavat argumentit (behavior)

Display.backlight() ottaa nyt 0–100 -intensiteetin (0 = pois, 100 = täysi) aiemman 0–255:n sijaan ja nostaa ValueError-poikkeuksen alueen ulkopuolella. Kokonaislukuiset x_scale/y_scale -arvot käsitellään nyt kertovana skaalauskertoimena (samoin kuin liukuluvut) kohdepikselimitan sijaan — tämä vaikuttaa toimintoihin fir.snapshot()/draw_ir(), tof.snapshot()/ draw_depth(), display ja tv-skaalaus. Argumenttien jäsennys yhtenäistettiin moduuleissa sensor, fir, tof, tv, mjpeg, gif, imageio, tf ja audio, mikä teki useista aiemmin positionaalisista valinnoista vain avainsanana annettavia (nimet, oletusarvot ja toiminta ovat muuten ennallaan).

Commitit: 391ec443f, 8bd25d6cd, 477312656, 08bf62a32, a4c0f20bf, 9b411a66d, 3d679f5a6, d15fc6b8d, 555e67ecd

Siirtymistarkistuslista

Siistiin v4.5.1-siirtoon kuuluu tyypillisesti:

  1. Päivitä Image()-rakentaminen uuteen avainsanamuotoon, vaihda display.write() pois x_size/y_size -käytöstä ja nimeä WINC.connect() essidssid uudelleen (käsittele uudet tavupohjaiset skannaustuplet) (konstruktori-/display-/WINC-muutokset).

  2. Skaalaa Display.backlight() -kutsut välille 0–100, tarkista mahdollinen kokonaislukuinen x_scale/y_scale -käyttö ja anna aiemmin positionaaliset moduulivalinnat avainsanoina (toimintamuutokset).