v3.3.0

v3.3.0 on valtava julkaisu. Se lisää täyden FLIR Lepton -lämpökameran tuen uudella sensor.ioctl() -rajapinnalla ja väripaleteilla, tv SPI-videolähtömoduulin, globaalisuljinpohjaisen liipaistun tilan, ison erän uusia image -piirto- ja analyysimetodeja (gamma_corr(), draw_ellipse(), draw_edges(), monia blob-ominaisuuksia) sekä uudet ToF-, moottori- ja linalg-kirjastot. cpufreq -API uudistettiin ja sensor.set_framesize() nostaa nyt poikkeuksen — lue alla olevat rikkovat muutokset.

Kohokohdat

  • FLIR Lepton — täysi lämpökameran tuki uuden sensor.ioctl() -rajapinnan, väripalettien ja image.to_rainbow() -metodin kautta.

  • tv -moduuli — SPI TV / komposiittivideolähtö.

  • Globaalisuljinpohjainen liipaistu tila — MT9V034:n liipaistu kuvaus sensor.ioctl() -metodin kautta.

  • Kuvankäsittelygamma_corr(), draw_ellipse(), draw_edges(), draw_image() -alfasekoitus ja monia uusia blob-ominaisuuksia.

  • Uudet kirjastot — VL53L1X ToF -etäisyys, TB6612-moottoriohjain, micro-linalg.

  • Rikkova: cpufreq -API uudistettiin, sensor.set_framesize() nostaa nyt poikkeuksen epäonnistuessaan, sensor.alloc_extra_fb() pudotti Bayer/JPEG-tuen ja image.replace() -metodin paikkakohtaiset argumentit siirtyivät — katso rikkovat muutokset.

Uudet ominaisuudet

  • FLIR Lepton — lisättiin sensor.ioctl() sensorikohtaiseen ohjaukseen ja täysi sarja Lepton-ioctl-komentoja (radiometria, virkistys/resoluutio, run-command, attribuutin asetus/haku, FPA/AUX-lämpötila °C-asteina, mittaustila/-alue, leveys/korkeus), sensor.set_color_palette() / sensor.get_color_palette() paleteilla sensor.PALETTE_RAINBOW / PALETTE_IRONBOW, image.to_rainbow() sekä Lepton-esimerkkiskriptit (27-Lepton).

  • Liipaistu tilaIOCTL_SET_TRIGGERED_MODE / IOCTL_GET_TRIGGERED_MODE MT9V034:n globaalisuljinpohjaiseen liipaistuun kuvaukseen, mukana korkean FPS:n ja liipaistun tilan esimerkit.

  • tv -moduuli — lisättiin SPI TV / komposiittivideolähtösidonnat.

  • Kuvankäsittely — lisättiin image.gamma_corr(), image.draw_ellipse(), image.draw_edges(), draw_image() -alfasekoitus, mask= -avainsana metodiin clear(), palautettiin mask_rectangle() / mask_circle() / mask_ellipse(), kierto- / hmirror- / vflip-avainsanat metodeihin draw_string() / draw_text(), transpose -avainsana (sekä assign / set -aliakset) metodiin replace(), copy() -metodin x_scale / y_scale sekä crop() / scale(), Image() -konstruktori mitoista, sensor.BINARY -pikseliformaatti, viedyt väriavaruusmuunnosfunktiot ja monia uusia blob-ominaisuuksia (corners, perimeter, roundness, elongation, extent, compactness, solidity, convexity, enclosing_circle, enclosed_ellipse, kierto).

  • Kirjastot — lisättiin vl53l1x ToF -etäisyyssensorin ajuri, tb6612 -moottoriohjain (DC-moottori- ja askelmoottori-Motor-Shield-esimerkkeineen) sekä micro-linalg-kirjasto (ulinalg / umatrix).

  • Päivitettiin FatFS versioon FF13C (exFAT-yhteensopiva).

Muut muutokset ja parannukset

  • Parannettiin oletusarvoista JPEG-laatua (matalan ja korkean välimaasto kovakoodatun arvon sijaan); paikallaan tehtävät kuvaoperaatiot eivät enää vaadi kuvan toistamista ensimmäisenä argumenttina; draw_string() hyväksyy ei-kokonaislukuisia skaalausarvoja.

Virhekorjaukset

Kamera ja sensorit:

  • Korjattiin Lepton 3.5:n käynnistyksen jumiutuminen (aikakatkaisu + palautus) ja resetin luotettavuus, MT9V034:n set_framesize() ennen set_pixformat() -kutsua (kutsujärjestyksellä ei enää ole väliä), MT9V034 WVGA STM32H7:llä, MT9V034:n automaattivalotusalue ja varjorekisteripäivitykset sekä H7:n ADC-virhe.

Kuvankäsittely:

  • Korjattiin virheellinen muistinkäyttö metodissa find_apriltags(), copy() kopioitaessa skaalattua kuvaa päakehyspuskuriin, to_grayscale() / to_rgb565() -kehyspuskurin varaus, keypoint-objektin len(), JPEG MCU -rajakäsittely, binary() -kynnysarvolistan jäsennys ja draw_keypoints() -metodin keypoint-monikoiden hyväksyminen.

Järjestelmä:

  • Korjattiin fb_alloc mark/free-epätasapainon vuodot image / fir / lcd / tv / nn -metodien välillä, asetettiin py_assert vapauttamaan kehyspuskurimuisti napatuissa poikkeuksissa (#417), tyhjennettiin UART-ylivuotolippu (ORE) niin etteivät ylivuodot enää jumita UART-lukuja, korjattiin RTC IRQ -käsittelijä ja Windowsin cascade_convert.py -työkalu.

Laitteisto- ja korttituki

  • FLIR Lepton -lämpökamera.

  • TV-shield — SPI TV / komposiittivideolähtö.

  • Globaalisuljin (MT9V034) liipaistu tila.

Rikkovat API-muutokset

Käyttäjälle näkyvät API-rikkomukset v3.2.0:n ja v3.3.0:n välillä. Laajuus: Python-C-moduulit hakemistossa modules/ ja Python-kirjastot hakemistossa scripts/libraries/.

Jokainen muutos on merkitty vaikutuksensa mukaan:

  • major — vaikuttaa useimpiin skripteihin, jotka käyttivät ominaisuutta; sinun täytyy siirtää koodia.

  • minor — kapea API; vaikuttaa vain sitä käyttäneisiin skripteihin.

  • behavior — sama API, eri tulokset; tarkista hienosäädetyt skriptit uudelleen.

Muutokset on ryhmitelty vaikutuksen mukaan tässä järjestyksessä. Jos haluat vain siirtää koodisi, hyppää lopussa olevaan siirtymistarkistuslistaan. Jokainen commit-tiiviste linkittää diffiinsä GitHubissa.

cpufreq -API uudistettu (major)

cpufreq -moduuli uudistettiin H7-tukea varten. Vakiot cpufreq.CPUFREQ_120MHZ / 144 / 168 / 192 / 216MHZ sekä cpufreq.get_frequency() poistettiin. cpufreq.set_frequency() ottaa nyt pelkän kokonaislukuisen MHz-arvon (esim. cpufreq.set_frequency(120)), ja lisättiin cpufreq.get_current_frequencies() / cpufreq.get_supported_frequencies().

Commitit: 6babf84a1

image.replace() -metodin paikkakohtaiset argumentit siirtyivät (minor)

image.replace() sai transpose -argumentin, mikä siirsi paikkakohtaisen mask -argumentin paikasta 4 paikkaan 5. Koodin, joka välitti mask -argumentin paikkakohtaisesti (esim. img.replace(src, hmirror, vflip, mask)), täytyy vaihtaa avainsanamuotoon img.replace(src, mask=mask).

Commitit: dbe7bf059

sensor.alloc_extra_fb() ei enää hyväksy Bayer/JPEG-muotoja (minor)

sensor.alloc_extra_fb() ei enää hyväksy sensor.BAYER tai sensor.JPEG -muotoja (se tukee nyt myös sensor.BINARY -muotoa). Koodin, joka varasi ylimääräisiä kehyspuskureita Bayer- tai JPEG-muodossa, täytyy käyttää GRAYSCALE / RGB565 -muotoa (tai varata puskuri jollain muulla tavalla).

Commitit: f9e6b3fe0

sensor.set_framesize() nostaa poikkeuksen epäonnistuessaan (behavior)

sensor.set_framesize() nostaa nyt ValueError -poikkeuksen, kun kehyskoko ei ole tuettu, sen sijaan että palauttaisi False. Koodin, joka tarkisti False -paluuarvon, täytyy sen sijaan napata ValueError -poikkeus.

Commitit: b0442633e

Siirtymistarkistuslista

Siisti siirtymä versioon v3.3.0 vaatii tyypillisesti seuraavan työn:

  1. Siirrä cpufreq -koodi käyttämään kokonaislukuista MHz-arvoista set_frequency() -kutsua sekä get_current_frequencies() / get_supported_frequencies() -kutsuja (cpufreq-uudistus).

  2. Välitä mask metodille image.replace() avainsanana (replace-muutos).

  3. Varaa ylimääräiset kehyspuskurit muodossa GRAYSCALE / RGB565 Bayer/JPEG:n sijaan (alloc_extra_fb-muutos).

  4. Nappaa ValueError sensor.set_framesize() -kutsun ympärillä False-arvon tarkistamisen sijaan (set_framesize-muutos).

Kaikki muut skriptit toimivat muuttumattomina.