v4.5.0

v4.5.0 je veliko izdanje. Stari modul lcd zamijenjen je jedinstvenim modulom display s odvojenim SPI / paralelnim / DSI / TV pozadinskim implementacijama, dodana je ploča Arduino Giga te je stigao val značajki za prikaz, dodir i upravljanje senzorom. Postoji nekoliko promjena koje narušavaju kompatibilnost — pročitajte ih u nastavku.

Istaknuto

  • Novi modul display — zamjenjuje lcd jedinstvenim pozadinskim implementacijama SPIDisplay / RGBDisplay / DSIDisplay / TVDisplay.

  • Podrška za ploču Arduino Giga.

  • Novi hardver za prikaz/dodir — DSI zasloni na STM32 H7, TFP410 DVI/HDMI, HDMI/DVI CEC, ST7701 RGB paneli te GT911 / FT5X06 kapacitivni dodir.

  • Nove kontrole senzora — kalibracija razine crne, noćni način rada i sensor.disable_delays(); mnogo brža transpozicija (~5x) i morfologija (~2.5x).

  • Narušava kompatibilnost: lcddisplay, lcd_touchft5x06, preimenovani LED pinovi — pogledajte promjene koje narušavaju kompatibilnost.

Nove značajke

  • Pozadinske implementacije prikazaDisplayData (očitavanje DDC/EDID), TFP410 DVI/HDMI serijalizator, podrška za MIPI-DSI zaslone na STM32 H7, HDMI/DVI cec upravljački program te Python biblioteka display s pomoćnom funkcijom za inicijalizaciju ST7701 RGB panela.

  • Dodir — novi GT911 upravljački program za petotočkasti kapacitivni dodir (read_points() / read_id() / reset()).

  • Proširenje machine — biblioteka machine koja se može zamrznuti s pomoćnom klasom machine.LED te nova metoda machine.LED.value([v]).

  • Kontrole senzorasensor.set_auto_blc(enable, regs=None) / sensor.get_blc_regs() (kalibracija razine crne), IOCTL_SET_NIGHT_MODE / IOCTL_GET_NIGHT_MODE (OV7725/OV5640), OV7670 hmirror/vflip te sensor.disable_delays() za preskakanje kašnjenja stabilizacije kamere radi bržeg ponovnog konfiguriranja.

  • i.MX RTsensor.set_xclk_frequency() sada prihvaća bilo koju frekvenciju (zaokružujući je na najbliži valjani CSI djelitelj), a SPI moduli lcd / tv / fir omogućeni su na RT1060.

Ostale promjene i poboljšanja

  • Mnogo brže operacije nad slikom — transpozicija slike je ~5x brža, a image.morph() je ~2.5x brži.

  • Ispitivanje sabirnice kamere sada skenira i provjerava više adresa uređaja, podržavajući ploče s nekoliko uređaja na sabirnici.

Ispravci pogrešaka

Kamera i senzori:

  • Ispravljena točnost izračuna pojačanja na mnogim senzorima (HM01B0, HM0360, MT9M114, MT9V0xx, OV2640, OV5640, OV7690, OV7725, OV9650, PAJ6100), ekspozicija / spajanje stupaca na MT9V0xx, ekspozicija na OV5640 te VGA prozoriranje na OV7670.

  • STM32 sada odbacuje oštećene transponirane sličice umjesto da vraća neispravne slike.

Obrada slike:

  • Ispravljeno prekoračenje cijelog broja koje je utjecalo na operacije slike / FIR / ToF / LCD / TV, neispravne instrukcije s pomičnim zarezom vcvtm/vcvtp na Cortex-M4 (fast_floorf/fast_ceilf), pogreška skaliranja na licu mjesta u pretvorbi image.to_*() te oštećenje predmemorije DMA2D crtanja.

Prikaz i sustav:

  • Ispravljeno tempiranje DSI zaslona i portretni način rada, micro_speech listen() na Nicla Vision / Portenta H7, korisnička sklopka STM32 (pyb.Switch) te podrška za sabirnicu I2C4.

Podrška za hardver i ploče

  • Arduino Giga — nova ploča, s imenovanim mapiranjima Arduino pinova i potpunim skupom primjera.

  • OpenMV RT1060 — omogućeni SPI LCD, TV i FIR toplinski moduli.

  • Arduino Nano 33 BLE Sense — LED pinovi.

Promjene API-ja koje narušavaju kompatibilnost

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

Svaka je promjena označena svojim utjecajem:

  • major — većina skripti koje su je koristile zahtijeva izmjene.

  • 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.

Modul lcd zamijenjen modulom display (major)

Stari modul lcd uklonjen je i zamijenjen jedinstvenim modulom display podijeljenim na pozadinske implementacije SPIDisplay (SPI LCD štit), RGBDisplay / paralelnu, DSIDisplay (MIPI-DSI) i TVDisplay sa zajedničkim API-jem. Skripte moraju prijeći s import lcd na modul display i konstruirati odgovarajući objekt pozadinske implementacije.

Predaje: 227824aac, 6c6336829

Modul za dodir, LED pinovi i priloženi upravljački programi (minor)

Generički modul lcd_touch zamijenjen je namjenskim modulom upravljačkog programa za kapacitivni dodir FT5X06. Imena LED pinova preimenovana su radi dosljednosti na svim pločama (skripte koje upućuju na stara imena LED pinova moraju se ažurirati). Priloženi IMU/senzor upravljački programi hts221 / lps22h / lsm6dsox / lsm9ds1 zamijenjeni su izvornim verzijama iz micropython-lib, čiji se API-ji neznatno razlikuju (priloženi primjeri ažurirani su u skladu s tim).

Predaje: 86ad6dcdb, 9344c3b74, 2b5b7963b

Nepodržane kontrole senzora sada upozoravaju (behavior)

sensor.set_auto_gain(), set_auto_exposure(), set_auto_whitebal() i set_auto_blc() sada ispisuju upozorenje umjesto da podižu RuntimeError kada aktivni senzor ne podržava kontrolu, tako da se ista skripta može izvoditi na senzorima s različitim mogućnostima. Kod koji se oslanjao na hvatanje iznimke mora se ažurirati.

Predaja: dbf4996f2

Kontrolni popis migracije

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

  1. Zamijenite uporabu import lcd novim modulom display i odgovarajućom pozadinskom implementacijom (promjena modula display).

  2. Prebacite lcd_touch na FT5X06, ažurirajte sva stara imena LED pinova i ponovno provjerite API-je izvornih IMU upravljačkih programa (promjene dodira/pinova/upravljačkih programa).

  3. Zamijenite try/except RuntimeError oko nepodržanih kontrola senzora provjerama mogućnosti (promjena kontrole senzora).