v4.5.1¶
v4.5.1 voegt tekenhints voor afbeeldingsoriëntatie/-verhouding toe, het rechtstreeks laden van afbeeldingen vanaf een bestandspad, een GC2145 groothoek-ioctl, en een nieuwe API voor de achtergrondverlichtingscontroller. Het herwerkt ook de Image()-constructor, de display-API’s, en het parseren van module-argumenten — lees de breaking changes hieronder.
Hoogtepunten¶
Tekenhints —
draw_image()heeft oriëntatie- (HMIRROR/VFLIP/TRANSPOSE,ROTATE_90/180/270) en verhoudingsschaling- (SCALE_ASPECT_KEEP/EXPAND/IGNORE) hints gekregen.Afbeeldingen laden vanaf schijf —
draw_image()/display.write()accepteren een bestandspad-string.Achtergrondverlichtingsbesturing — nieuwe
DACBacklight/PWMBacklight-klassen en een display-backlight=-argument.Breaking: de
Image()-constructor, dedisplay-API’s, en het parseren van module-argumenten zijn gewijzigd — zie de breaking changes.
Nieuwe functies¶
draw_image()-oriëntatiehints —image.HMIRROR,image.VFLIP,image.TRANSPOSE, plus de gemaksoptiesimage.ROTATE_90/ROTATE_180/ROTATE_270.draw_image()-verhoudingshints —image.SCALE_ASPECT_KEEP/SCALE_ASPECT_EXPAND/SCALE_ASPECT_IGNOREvoor passen / uitbreiden / uitrekken.Paletconstanten —
image.PALETTE_RAINBOWenimage.PALETTE_IRONBOW(verplaatst naar de image-module).Groothoekbeeld — nieuwe
sensor.IOCTL_SET_FOV_WIDE/IOCTL_GET_FOV_WIDE-ioctls (op de GC2145, tot 5x sensorschaling).Laden vanaf schijf —
draw_image()endisplay.write()accepteren een bronafbeelding-bestandspad-string en laden die rechtstreeks vanuit de opslag.Achtergrondverlichtingscontrollers — nieuwe
DACBacklight- enPWMBacklight-klassen (importeerbaar vanuitdisplay), en een keyword-onlybacklight=-argument op de SPI-/parallelle display-constructors.
Overige wijzigingen en verbeteringen¶
De ST7701 DSI-displaydriver is verplaatst naar zijn eigen
st7701.py-module (nog steeds importeerbaar viafrom display import *) en is frozen op de Arduino Giga; delsm9ds1IMU-driver is frozen op de Arduino Nano 33 BLE Sense.MT9V022- / MT9V034- (global-shutter) camera’s passen nu rijruiscorrectie toe voor een betere beeldkwaliteit.
Het i.MX RT USB-massaopslagvolume wordt nu gelabeld als een OpenMV-schijf.
Bugfixes¶
Camera en sensoren:
Hoekdetectie (
find_keypoints()FAST/AGAST) hersteld op afbeeldingen hoger dan 480 rijen — de per-rij-buffer wordt nu gedimensioneerd op de hoogte van de afbeelding.FSYNC-pin-ondersteuning toegevoegd voor frame-gesynchroniseerde
snapshot()op i.MX RT (OpenMV RT1060), en verwisselde SPI4 MOSI/MISO-pinnen op de RT1060 hersteld.
Display en video:
De argumentvolgorde van de
SPIDisplay-constructor gecorrigeerd (bgr,byte_swap,triple_bufferwerden toegepast op de verkeerde parameters).Beeldcorruptie van de TV-shield hersteld bij het tekenen van een afbeelding met een opgegeven rechthoek, en onjuiste MJPEG-framegrenzen bij het opnemen van geschaalde frames.
Netwerken:
De WINC WiFi AP-modus dwingt niet langer de verouderde WEP-only-beperking af — open en WPA AP-modi werken met correcte PSK-afhandeling.
Hardware- en boardondersteuning¶
OpenMV RT1060 — FSYNC-pin en gecorrigeerde SPI4-pinnen.
Arduino GIGA — QSPI-betrouwbaarheidsworkaround; ST7701-display frozen ingebouwd.
Arduino Nano 33 BLE Sense —
lsm9ds1IMU-driver frozen ingebouwd.
Breaking API-wijzigingen¶
Voor de gebruiker zichtbare API-breaks tussen v4.5.0 en v4.5.1. Scope: Python C-modules in modules/ en Python-bibliotheken in scripts/libraries/.
Elke wijziging is getagd met de impact ervan:
minor — beperkte API; heeft alleen invloed op scripts die het gebruikten.
behavior — dezelfde API, andere resultaten; controleer afgestemde scripts opnieuw.
Wijzigingen zijn in die volgorde gegroepeerd op impact. Als je alleen je code wilt porten, ga dan naar de migratiechecklist aan het einde. Elke commit-hash linkt naar de diff ervan op GitHub.
Image()-constructor en display-API’s (minor)¶
De image.Image-constructor is herwerkt naar keyword-argumenten (height, pixformat, buffer=, copy_to_fb=); deze kan nu een afbeelding bouwen uit een bestaande bytearray/buffer, en voor gecomprimeerde formaten is een buffer vereist. display.write() is herwerkt: x_scale/y_scale nemen nu een float (schaalverhouding) of int (doelgrootte in pixels) en de afzonderlijke x_size/y_size-keywords zijn verwijderd. Het eerste positionele argument van WINC.connect() is hernoemd van essid → ssid, en de WINC WiFi-scanresultaten zijn gewijzigd naar (ssid_bytes, bssid_bytes, channel, rssi, security, N) (SSID/BSSID zijn nu bytes; BSSID is niet langer een geformatteerde MAC-string).
Achtergrondverlichtingsbereik, schaling, en keyword-only-argumenten (behavior)¶
Display.backlight() neemt nu een intensiteit van 0–100 (0 = uit, 100 = vol) in plaats van 0–255, en werpt een ValueError op buiten dat bereik. Integer x_scale/y_scale-waarden worden nu behandeld als een multiplicatieve schaalfactor (hetzelfde als floats) in plaats van een doelpixeldimensie — dit heeft invloed op fir.snapshot()/draw_ir(), tof.snapshot()/ draw_depth(), display, en tv-schaling. Het parseren van argumenten in de modules sensor, fir, tof, tv, mjpeg, gif, imageio, tf, en audio is geüniformeerd, waardoor verschillende voorheen-positionele opties keyword-only zijn geworden (namen, standaardwaarden en gedrag zijn verder ongewijzigd).
Commits: 391ec443f, 8bd25d6cd, 477312656, 08bf62a32, a4c0f20bf, 9b411a66d, 3d679f5a6, d15fc6b8d, 555e67ecd
Migratiechecklist¶
Voor een schone port naar v4.5.1 is het typische werk:
Werk de
Image()-constructie bij naar de nieuwe keyword-vorm, schakeldisplay.write()af vanx_size/y_size, en hernoemWINC.connect()essid→ssid(verwerk de nieuwe bytes-gebaseerde scan-tuples) (de constructor-/display-/WINC-wijzigingen).Herschaal
Display.backlight()-aanroepen naar 0–100, controleer elk gebruik van integerx_scale/y_scaleopnieuw, en geef voorheen-positionele module-opties door als keywords (de gedragswijzigingen).