v3.3.0¶
v3.3.0 je golemo izdanje. Dodaje punu podršku za FLIR Lepton termalnu kameru s novim sučeljem sensor.ioctl() i paletama boja, tv modul za SPI video izlaz, okidani način rada s globalnim zatvaračem, velik skup novih metoda za crtanje/analizu iz modula image (gamma_corr(), draw_ellipse(), draw_edges(), mnoga svojstva mrlja) te nove biblioteke za ToF / motore / linalg. cpufreq API je preuređen, a sensor.set_framesize() sada baca iznimku — pročitajte nekompatibilne promjene u nastavku.
Istaknuto¶
FLIR Lepton — puna podrška za termalnu kameru putem novog sučelja
sensor.ioctl(), paleta boja iimage.to_rainbow().tvmodul — SPI TV / kompozitni video izlaz.Okidani način rada s globalnim zatvaračem — okidano snimanje s MT9V034 putem
sensor.ioctl().Obrada slike —
gamma_corr(),draw_ellipse(),draw_edges(), alfa stapanje udraw_image()i mnoga nova svojstva mrlja.Nove biblioteke — VL53L1X ToF udaljenost, TB6612 upravljač motora, micro-linalg.
Nekompatibilno:
cpufreqAPI je preuređen,sensor.set_framesize()sada baca iznimku pri neuspjehu,sensor.alloc_extra_fb()je izbacio Bayer/JPEG, a pozicijski argumenti uimage.replace()su pomaknuti — vidi nekompatibilne promjene.
Nove značajke¶
FLIR Lepton — dodan je
sensor.ioctl()za kontrolu specifičnu za senzor i puni skup Lepton ioctl-ova (radiometrija, osvježavanje/razlučivost, izvršavanje naredbe, postavljanje/dohvaćanje atributa, FPA/AUX temperatura u °C, način/raspon mjerenja, širina/visina),sensor.set_color_palette()/sensor.get_color_palette()ssensor.PALETTE_RAINBOW/PALETTE_IRONBOW,image.to_rainbow()te primjeri skripti za Lepton (27-Lepton).Okidani način rada —
IOCTL_SET_TRIGGERED_MODE/IOCTL_GET_TRIGGERED_MODEza okidano snimanje s globalnim zatvaračem na MT9V034, s primjerima za visoki FPS i okidani način rada.tvmodul — dodane su veze za SPI TV / kompozitni video izlaz.Obrada slike — dodani su
image.gamma_corr(),image.draw_ellipse(),image.draw_edges(), alfa stapanje udraw_image(), ključna riječmask=naclear(), ponovno dodanimask_rectangle()/mask_circle()/mask_ellipse(), ključne riječi za rotaciju / hmirror / vflip nadraw_string()/draw_text(), ključna riječtranspose(te aliasiassign/set) nareplace(),copy()x_scale/y_scaleuzcrop()/scale(), konstruktorImage()iz dimenzija, pixformatsensor.BINARY, izvezene funkcije za pretvorbu prostora boja te mnoga nova svojstva mrlja (corners,perimeter,roundness,elongation,extent,compactness,solidity,convexity,enclosing_circle,enclosed_ellipse, rotacija).Biblioteke — dodani su upravljač ToF senzora udaljenosti
vl53l1x, upravljač motoratb6612(s primjerima za istosmjerni motor i koračni Motor-Shield) te micro-linalg biblioteka (ulinalg/umatrix).FatFS je nadograđen na FF13C (s podrškom za exFAT).
Ostale promjene i poboljšanja¶
Poboljšana je zadana kvaliteta JPEG-a (sredina raspona od niske do visoke umjesto fiksirane vrijednosti); operacije nad slikom na mjestu više ne zahtijevaju ponavljanje slike kao prvog argumenta;
draw_string()prihvaća necjelobrojne vrijednosti mjerila.
Ispravci grešaka¶
Kamera i senzori:
Ispravljeno je zaglavljivanje pri pokretanju Lepton 3.5 (istek vremena + oporavak) i pouzdanost resetiranja,
set_framesize()prijeset_pixformat()na MT9V034 (redoslijed poziva više nije bitan), MT9V034 WVGA na STM32H7, raspon automatske ekspozicije MT9V034 i ažuriranja sjenovitih registara te greška H7 ADC-a.
Obrada slike:
Ispravljeni su neispravan pristup memoriji u
find_apriltags(),copy()pri kopiranju skalirane slike u glavni framebuffer, alokacija framebuffera uto_grayscale()/to_rgb565(),len()objekta ključne točke, rukovanje granicama JPEG MCU, parsiranje liste pragova ubinary()tedraw_keypoints()koji prihvaća torke ključnih točaka.
Sustav:
Ispravljena su curenja zbog neravnoteže mark/free u
fb_allockroz metodeimage/fir/lcd/tv/nn,py_assertje sada oslobađao memoriju framebuffera pri uhvaćenim iznimkama (#417), očišćena je zastavica prekoračenja UART-a (ORE) tako da prekoračenja više ne blokiraju čitanja s UART-a, ispravljen je rukovatelj RTC IRQ te Windows alatcascade_convert.py.
Hardver i podrška za pločice¶
FLIR Lepton termalna kamera.
TV shield — SPI TV / kompozitni video izlaz.
Globalni zatvarač (MT9V034) okidani način rada.
Nekompatibilne promjene API-ja¶
Korisniku vidljive nekompatibilnosti API-ja između v3.2.0 i v3.3.0. Opseg: Python C-moduli u modules/ i Python biblioteke u scripts/libraries/.
Svaka je promjena označena svojim utjecajem:
major — utječe na većinu skripti koje su koristile značajku; morat ćete prilagoditi kod.
minor — uzak 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 prilagoditi svoj kod, prijeđite na kontrolni popis za migraciju na kraju. Svaki hash commita vodi na svoj diff na GitHubu.
cpufreq API preuređen (major)¶
Modul cpufreq preuređen je radi podrške za H7. Uklonjene su konstante cpufreq.CPUFREQ_120MHZ / 144 / 168 / 192 / 216MHZ i cpufreq.get_frequency(). cpufreq.set_frequency() sada uzima običan cijeli broj MHz (npr. cpufreq.set_frequency(120)), a dodani su cpufreq.get_current_frequencies() / cpufreq.get_supported_frequencies().
Commiti: 6babf84a1
Pozicijski argumenti image.replace() su pomaknuti (minor)¶
image.replace() je dobio argument transpose, pomičući pozicijski argument mask s pozicije 4 na poziciju 5. Kod koji je prosljeđivao mask pozicijski (npr. img.replace(src, hmirror, vflip, mask)) mora prijeći na oblik s ključnom riječi img.replace(src, mask=mask).
Commiti: dbe7bf059
sensor.alloc_extra_fb() više ne prihvaća Bayer/JPEG (minor)¶
sensor.alloc_extra_fb() više ne prihvaća sensor.BAYER ni sensor.JPEG (sada također podržava sensor.BINARY). Kod koji je alocirao dodatne framebuffere u Bayer ili JPEG formatu mora koristiti GRAYSCALE / RGB565 (ili alocirati međuspremnik na drugi način).
Commiti: f9e6b3fe0
sensor.set_framesize() baca iznimku pri neuspjehu (behavior)¶
sensor.set_framesize() sada baca ValueError kada veličina sličice nije podržana umjesto da vraća False. Kod koji je provjeravao povratnu vrijednost False mora umjesto toga uhvatiti iznimku ValueError.
Commiti: b0442633e
Kontrolni popis za migraciju¶
Za čistu prilagodbu na v3.3.0 tipičan posao je:
Prilagodite
cpufreqkod na cjelobrojni MHzset_frequency()teget_current_frequencies()/get_supported_frequencies()(preuređenje cpufreq).Proslijedite
maskuimage.replace()kao ključnu riječ (promjena replace).Alocirajte dodatne framebuffere kao
GRAYSCALE/RGB565umjesto Bayer/JPEG (promjena alloc_extra_fb).Uhvatite
ValueErrorokosensor.set_framesize()umjesto provjereFalse(promjena set_framesize).
Sve ostale skripte rade nepromijenjeno.