v4.5.1

v4.5.1 dodaje savjete za crtanje s orijentacijom/omjerom slike, učitavanje slika izravno iz putanje datoteke, GC2145 ioctl za široko vidno polje te novi API kontrolera pozadinskog osvjetljenja. Također preuređuje konstruktor Image(), API-je modula display i raščlanjivanje argumenata modula — pročitajte promjene koje narušavaju kompatibilnost u nastavku.

Istaknuto

  • Savjeti za crtanjedraw_image() je dobio savjete za orijentaciju (HMIRROR/VFLIP/TRANSPOSE, ROTATE_90/180/270) i skaliranje omjera (SCALE_ASPECT_KEEP/EXPAND/IGNORE).

  • Učitavanje slika s diskadraw_image() / display.write() prihvaćaju niz s putanjom datoteke.

  • Upravljanje pozadinskim osvjetljenjem — nove klase DACBacklight / PWMBacklight te argument backlight= za prikaz.

  • Narušava kompatibilnost: promijenili su se konstruktor Image(), API-ji modula display i raščlanjivanje argumenata modula — pogledajte promjene koje narušavaju kompatibilnost.

Nove značajke

  • Savjeti za orijentaciju draw_image()image.HMIRROR, image.VFLIP, image.TRANSPOSE te prikladni image.ROTATE_90 / ROTATE_180 / ROTATE_270.

  • Savjeti za omjer draw_image()image.SCALE_ASPECT_KEEP / SCALE_ASPECT_EXPAND / SCALE_ASPECT_IGNORE za prilagodbu / proširenje / rastezanje.

  • Konstante paleteimage.PALETTE_RAINBOW i image.PALETTE_IRONBOW (premještene u modul image).

  • Široko vidno polje — novi sensor.IOCTL_SET_FOV_WIDE / IOCTL_GET_FOV_WIDE ioctl-ovi (na GC2145, do 5x skaliranja senzora).

  • Učitavanje s diskadraw_image() i display.write() prihvaćaju niz s putanjom datoteke izvorne slike, učitavajući je izravno iz pohrane.

  • Kontroleri pozadinskog osvjetljenja — nove klase DACBacklight i PWMBacklight (mogu se uvesti iz display) te argument backlight= samo s ključnom riječi na konstruktorima SPI/paralelnog prikaza.

Ostale promjene i poboljšanja

  • Upravljački program za ST7701 DSI zaslon premješten je u vlastiti modul st7701.py (i dalje se može uvesti putem from display import *) i zamrznut je na Arduino Giga; IMU upravljački program lsm9ds1 zamrznut je na Arduino Nano 33 BLE Sense.

  • Kamere MT9V022 / MT9V034 (s globalnim okidačem) sada primjenjuju korekciju šuma redaka za bolju kvalitetu slike.

  • USB volumen za masovnu pohranu na i.MX RT sada je označen kao OpenMV disk.

Ispravci pogrešaka

Kamera i senzori:

  • Ispravljena detekcija kutova (find_keypoints() FAST/AGAST) na slikama višim od 480 redaka — međuspremnik po retku sada je dimenzioniran prema visini slike.

  • Dodana podrška za FSYNC pin za vremenski usklađen snapshot() na i.MX RT (OpenMV RT1060) te ispravljeni zamijenjeni SPI4 MOSI/MISO pinovi na RT1060.

Prikaz i video:

  • Ispravljen redoslijed argumenata konstruktora SPIDisplay (bgr, byte_swap, triple_buffer bili su primijenjeni na pogrešne parametre).

  • Ispravljeno oštećenje slike na TV štitu pri crtanju slike s navedenim pravokutnikom te netočne granice MJPEG sličica pri snimanju skaliranih sličica.

Umrežavanje:

  • WINC WiFi AP način rada više ne nameće zastarjelo ograničenje samo na WEP — otvoreni i WPA AP načini rada rade uz ispravno rukovanje PSK-om.

Podrška za hardver i ploče

  • OpenMV RT1060 — FSYNC pin i ispravljeni SPI4 pinovi.

  • Arduino GIGA — zaobilazno rješenje za pouzdanost QSPI; ST7701 zaslon zamrznut.

  • Arduino Nano 33 BLE Sense — IMU upravljački program lsm9ds1 zamrznut.

Promjene API-ja koje narušavaju kompatibilnost

Korisniku vidljiva narušavanja API-ja između v4.5.0 i v4.5.1. Opseg: Python C-moduli u modules/ i Python biblioteke u scripts/libraries/.

Svaka je promjena označena 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 prema utjecaju tim redoslijedom. Ako samo želite prenijeti svoj kod, prijeđite na kontrolni popis migracije na kraju. Svaki hash predaje vodi do svoje razlike na GitHubu.

Konstruktor Image() i API-ji modula display (minor)

Konstruktor image.Image preuređen je na argumente s ključnim riječima (height, pixformat, buffer=, copy_to_fb=); sada može izgraditi sliku iz postojećeg bytearray/međuspremnika, a za komprimirane formate potreban je međuspremnik. display.write() je preuređen: x_scale/y_scale sada uzimaju broj s pomičnim zarezom (omjer skaliranja) ili cijeli broj (ciljna veličina u pikselima), a zasebne ključne riječi x_size/y_size su uklonjene. Prvi pozicijski argument funkcije WINC.connect() preimenovan je iz essidssid, a rezultati WINC WiFi skeniranja promijenjeni su u (ssid_bytes, bssid_bytes, channel, rssi, security, N) (SSID/BSSID su sada bajtovi; BSSID više nije formatirani MAC niz).

Predaje: 6752c95ac, 161737092, 8178c237c, b6cdf8de1

Raspon pozadinskog osvjetljenja, skaliranje i argumenti samo s ključnom riječi (behavior)

Display.backlight() sada uzima intenzitet od 0–100 (0 = isključeno, 100 = puno) umjesto 0–255, podižući ValueError izvan raspona. Cjelobrojne vrijednosti x_scale/y_scale sada se tretiraju kao multiplikativni faktor skaliranja (jednako kao brojevi s pomičnim zarezom) umjesto kao ciljna dimenzija u pikselima — to utječe na fir.snapshot()/draw_ir(), tof.snapshot()/ draw_depth(), display i tv skaliranje. Raščlanjivanje argumenata u modulima sensor, fir, tof, tv, mjpeg, gif, imageio, tf i audio ujednačeno je, čineći nekoliko prethodno pozicijskih opcija samo opcijama s ključnom riječi (imena, zadane vrijednosti i ponašanje inače su nepromijenjeni).

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

Kontrolni popis migracije

Za čist prijenos na v4.5.1 uobičajeni je posao:

  1. Ažurirajte konstrukciju Image() na novi oblik s ključnim riječima, prebacite display.write() s x_size/y_size te preimenujte WINC.connect() essidssid (rukujte novim n-torkama skeniranja temeljenima na bajtovima) (promjene konstruktora/prikaza/WINC).

  2. Preskalirajte pozive Display.backlight() na 0–100, ponovno provjerite svaku cjelobrojnu uporabu x_scale/y_scale te proslijedite nekad pozicijske opcije modula kao ključne riječi (promjene ponašanja).