v4.0.0

v4.0.0 je veliko izdanje v3 → v4. Uvodi moderni API za međuspremanje više sličica sensor (dvostruko / trostruko međuspremanje i video FIFO), povratni poziv pri završetku sličice, Bluetooth modul (NimBLE stog) s podrškom za Portentu, početni upravljački program za kameru MT9M114, snimanje kamerom s prebacivanjem na MDMA, podršku za Bayer/JPEG u image.draw_image() te skok na MicroPython 1.15. Stari način strujanja je uklonjen, a sensor.set_windowing() je preoblikovan — pročitajte promjene koje narušavaju kompatibilnost u nastavku.

Istaknuto

  • Međuspremanje više sličicasensor dobiva dvostruko međuspremanje, trostruko međuspremanje i video-FIFO način za veće, glađe brzine sličica.

  • Povratni poziv pri završetku sličice — registrirajte povratni poziv koji se aktivira kada je nova sličica spremna, za neblokirajuće cjevovode snimanja.

  • Bluetoothbluetooth modul izgrađen na NimBLE stogu, omogućen na Arduino Portenta H7 (uz BLE primjer).

  • MT9M114 — početni upravljački program senzora kamere.

  • Brže snimanje — MDMA prebacivanje za snimanje podataka kamere; draw_image() sada prihvaća Bayer i JPEG izvore/odredišta.

  • MicroPython 1.15 — priloženi MicroPython ažuriran je s 1.13 na 1.15.

  • Narušava kompatibilnost: stari način strujanja je uklonjen, a sensor.set_windowing() je preoblikovan — pogledajte promjene koje narušavaju kompatibilnost.

Nove značajke

  • Višestruko međuspremanje senzora — dodani sensor.set_framebuffers() / sensor.get_framebuffers() te načini SINGLE_BUFFER / DOUBLE_BUFFER / TRIPLE_BUFFER / VIDEO_FIFO, uz sensor.get_frame_available() za dvostruko, trostruko i video-FIFO snimanje.

  • Povratni poziv pri završetku sličice — dodan sensor.set_frame_callback() tako da se Python povratni poziv izvršava kad svaka nova sličica završi.

  • Bluetooth — dodan bluetooth modul podržan NimBLE stogom (NimBLE podmodul, CYW-BT upravljački program), omogućen na Arduino Portenta H7 uz BLE primjer.

  • MT9M114 — dodan početni upravljački program senzora kamere MT9M114.

  • draw_image — dodana podrška za debajeriranje i kopiranje JPEG-a tako da image.draw_image() prihvaća Bayer i JPEG izvorne/odredišne slike.

  • MDMA prebacivanje snimanja — snimanje podataka kamere prebačeno je na MDMA radi veće propusnosti.

  • Argument palete boja sada se može onemogućiti prosljeđivanjem -1 (budući da je None rezerviran kao valjani argument).

Ostale promjene i poboljšanja

  • Prelazak na novu softversku I2C implementaciju; usklađivanje s MicroPython upstreamom; ulab konfiguracija po pojedinoj ploči; osnovni ugrađeni moduli omogućeni za OpenMV 2; pravičnije zaključavanje očitavanja međuspremnika slike; podrška za mutex proširena na Cortex-M0/M0+ s istekom vremena zaključavanja.

Ispravci pogrešaka

Kamera i obrada slike:

  • Ispravljena pouzdanost inicijalizacije FLIR Lepton na ploči Pure Thermal, ImageIO JPEG obrada međuspremnika / pauze, HM01B0 vflip/hmirror postavke, pražnjenje JPEG međuspremnika kada se slika poništi te zastavica cropped koja se postavljala kada je veličina sličice bila nevaljana.

Sustav i povezivost:

  • Ispravljeno pražnjenje USB naredbi i naredba reset-u-bootloader, inicijalizacija mutexa, izvor takta UART-a, FatFS definicija kodne stranice, obrada WINC1500 izvanpojasnih ACK-ova, WiFi otklanjanje pogrešaka i Nano33 USB PID; izolirane namjenske analogne pločice.

Hardver i podrška za ploče

  • MT9M114 senzor kamere (početni upravljački program).

  • Arduino Portenta H7 — omogućen Bluetooth (NimBLE) uz BLE primjer.

  • Arduino Nano RP2040 Connect / Nano 33 BLE Sense — zastavica WiFi otklanjanja pogrešaka onemogućena gdje nije podržana; dodan blinky primjer; ispravak USB PID-a.

Promjene API-ja koje narušavaju kompatibilnost

Promjene API-ja vidljive korisniku između v3.9.4 i v4.0.0. Opseg: Python C-moduli u modules/ i Python biblioteke u scripts/libraries/.

Svaka promjena označena je svojim utjecajem:

  • major — utječe na većinu skripti; gotovo sigurno ćete morati prilagoditi kôd.

  • minor — uzak API; utječe samo na skripte koje su ga koristile.

  • behavior — isti API, drukčiji rezultati; ponovno provjerite podešene skripte.

Promjene su grupirane prema utjecaju tim redoslijedom. Ako samo želite prilagoditi svoj kôd, prijeđite na popis za migraciju na kraju. Svaki hash commita vodi na njegov diff na GitHubu.

Način strujanja uklonjen (major)

Stari način strujanja senzora uklonjen je u korist novog API-ja za međuspremanje više sličica. Kôd koji je omogućavao način strujanja mora prijeći na sensor.set_framebuffers() s DOUBLE_BUFFER / TRIPLE_BUFFER / VIDEO_FIFO te umjesto toga upravljati snimanjem putem sensor.snapshot() / sensor.get_frame_available().

Commiti: a42f3a647

sensor.set_windowing() preoblikovan (behavior)

sensor.set_windowing() postao je mnogo fleksibilniji: sada prihvaća više oblika argumenata (n-torku područja, ili širinu/visinu centriranu, ili x, y, w, h) i razrješava prozor relativno prema trenutnoj razlučivosti. Skripte koje su prosljeđivale argumente prozora u starom fiksnom obliku mogu odabrati drugo područje i treba ih ponovno provjeriti.

Commiti: 3e9c43554

MicroPython 1.13 → 1.15 (behavior)

Priložena MicroPython jezgra ažurirana je s 1.13 na 1.15 (preko 1.14). Ponašanje standardne biblioteke i jezika slijedi upstream MicroPython 1.15; ponovno provjerite skripte koje ovise o ponašanju micropython / standardnih modula specifičnom za verziju.

Commiti: 364eea6c7, 26c5376b0

Uklonjen ImageIO update_jpeg_buffer argument (minor)

Ažuriranje ImageIO JPEG-međuspremnika preoblikovano je tako da izvodi međuspremnik iz argumenta izvorne slike, a eksplicitni argument update_jpeg_buffer je uklonjen. Skripte koje su prosljeđivale update_jpeg_buffer u ImageIO moraju ukloniti taj argument.

Commiti: 5c6937bd1

Popis za migraciju

Za čistu prilagodbu na v4.0.0 uobičajeni je posao:

  1. Zamijenite svaku uporabu uklonjenog načina strujanja novim API-jem za višestruko međuspremanje sensor.set_framebuffers() (način strujanja uklonjen).

  2. Ponovno provjerite pozive sensor.set_windowing() u odnosu na preoblikovanu, fleksibilniju obradu argumenata (promjena prozora).

  3. Ponovno provjerite skripte koje ovise o ponašanju MicroPythona specifičnom za verziju u odnosu na MicroPython 1.15 (nadogradnja MicroPythona).

  4. Uklonite argument update_jpeg_buffer iz ImageIO poziva (promjena ImageIO).

Sve ostale skripte rade nepromijenjene.