v3.4.2

v3.4.2 on iso julkaisu. Se esittelee OpenMV Cam H7 Plus -kortin (SDRAM, valtava kehyspuskuri korkearesoluutioiseen kuvaukseen), OV5640 5 MP -kameran, FDCAN-tuen, uudelleenkirjoitetun OV2640-ajurin, Image.jpeg_encode_for_ide() -metodin sekä uudet pid / modbus -kirjastot. WINC1500:n ifconfig() -API ja find_apriltags() -oletukset muuttuivat — lue alla olevat rikkovat muutokset.

Kohokohdat

  • OpenMV Cam H7 Plus — uusi kortti, jossa on SDRAM-ajuri ja ~31 MB:n kehyspuskuri korkearesoluutioiseen kuvaukseen.

  • OV5640 5 MP -kameran ajuri I2C-pohjaisella tunnistuksella.

  • FDCAN-oheislaitetuki CAN-esimerkin kera.

  • OV2640-uudelleenkirjoitus — oikeinpäin olevat kuvat, toimivat automaattifunktiot, JPEG-tilannekuva ja uusi sensor.XGA -kehyskoko.

  • IDE JPEGImage.jpeg_encode_for_ide() ja suurten JPEG-kuvien automaattinen lähetys IDE:lle.

  • Rikkova: WINC1500:n WLAN.ifconfig() -semantiikka muuttui, MQTTClient.wait_msg() ei enää nosta poikkeusta tyhjästä vastaanotosta ja find_apriltags() käyttää oletuksena 4-suuntaista yhtenäisyyttä — katso rikkovat muutokset.

Uudet ominaisuudet

  • WiFi — lisättiin WLAN.netinfo() (palauttaa (rssi, security, ssid, mac, ip)) ja WINC1500:n staattisen IP:n konfigurointi WLAN.ifconfig() -metodin kautta staattisen IP:n esimerkin kera.

  • FDCAN — lisättiin FDCAN-oheislaitetuki ja can.py -esimerkki.

  • IDE JPEG — lisättiin Image.jpeg_encode_for_ide() / Image.jpeg_encoded_for_ide(); suuret JPEG-kuvat lähetetään automaattisesti IDE:lle, kun puskuri on liian pieni.

  • Kirjastot — lisättiin pid PID-säätökirjasto, modbus RTU-orjakirjasto (32-modbus-esimerkin kera) sekä SSD1306_I2C -luokka I2C-OLED-näytöille.

  • Esimerkit — lisättiin MQTT-tilaus (mqtt_sub.py, mqtt.py nimettiin uudelleen muotoon mqtt_pub.py).

  • Sensori — lisättiin sensor.XGA (1024x768) -kehyskoko; print() / repr() Bayer-kuvalle tulostaa nyt JSON-metatietoja.

Muut muutokset ja parannukset

  • Kirjoitettiin OV2640-ajuri uudelleen (oikeinpäin olevat kuvat, toimivat automaattifunktiot, JPEG-tilannekuva hyväksytty); otettiin käyttöön korkearesoluutioiset apriltagit (poistaa <64K-pikselin ROI-rajan kykenevillä korteilla); laskettiin OV2640:n PCLK 72 MHz:stä 36 MHz:iin.

Virhekorjaukset

Kuvankäsittely:

  • Korjattiin binäärioperaatioiden kuvan loppurajan ylivuoto, printf/float-tarkkuus find_apriltags() / find_datamatrices() / find_lines() -tulosteessa, virheellinen JSON blobin print() -tulosteessa, find_apriltags() vflip-/hmirror-kuvilla, find_lbp() -ROI-virhe, JPEG-pakkauksen aikakatkaisu suurilla resoluutioilla ja fb_alloc -muistitilastojen raportointi.

Kamera ja sensorit:

  • Korjattiin JPEG-tilan välimuistin ylläpito ja puskurin kohdistus, suurin DCMI-siirtokoko, OV2640:n rekisterikonfiguraatio ja resoluutiot, sensorin sammutustilan palautus resetissä sekä OV7725:n kuvanlaatu (lisättiin kamerakohtainen juovasuodatin).

Verkko ja järjestelmä:

  • Korjattiin socket.accept() -hardfault/virhe, WINC1500-soketin aikakatkaisun käsittely (aikakatkaisu 0 on nyt salpaava; soketteja ei suljeta vastaanoton aikakatkaisussa), H7:n syväuni, RTC (upstream-päivitys sekä H7 EXTI / herätysajastin / pehmeä reset -ongelmat) ja pyb.Servo -ajastimen IRQ (Servo ei toiminut).

Laitteisto- ja korttituki

  • OpenMV Cam H7 Plus (OPENMV4R) — uusi kortti, jossa on SDRAM-ajuri mahdollistamassa suuren (~31 MB) kehyspuskurin.

  • OV5640 — uusi 5 MP -kameran ajuri I2C-pohjaisella tunnistuksella.

  • FDCAN — oheislaitetuki.

Rikkovat API-muutokset

Käyttäjälle näkyvät API-rikkomukset v3.4.1:n ja v3.4.2: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.

WINC1500:n WLAN.ifconfig() -semantiikka muuttui (major)

WINC1500 WiFi -shieldillä WLAN.ifconfig() ei enää palauta vanhaa 5-elementtistä listaa [rssi, security, ssid, mac, ip]. Se nyt hakee/asettaa (ip, subnet, gateway, dns) -monikon (ja tukee staattisen IP:n konfigurointia) vastaten standardia network -rajapintaa. Koodin, joka luki yhteystietoja ifconfig() -metodista, täytyy vaihtaa uuteen WLAN.netinfo() -metodiin ((rssi, security, ssid, mac, ip)).

Commitit: e685b484a

MQTTClient.wait_msg() palauttaa None tyhjästä vastaanotosta (minor)

mqtt -kirjaston MQTTClient.wait_msg() palauttaa nyt None tyhjästä vastaanotosta sen sijaan että nostaisi OSError(-1) -poikkeuksen. Koodin, joka nappasi OSError(-1) -poikkeuksen havaitakseen suljetun/tyhjän soketin, täytyy sen sijaan tarkistaa None -paluuarvo.

Commitit: 76239ea89

find_apriltags() käyttää oletuksena 4-suuntaista yhtenäisyyttä (behavior)

image.find_apriltags() käyttää nyt oletuksena 4-suuntaista (8-suuntaisen sijaan) reunayhtenäisyyttä — nopeampaa, mutta havaitut tagit voivat poiketa hieman. Palauttaaksesi aiemman tarkkuuden käännä laiteohjelmisto IMLIB_ENABLE_FINE_APRILTAGS -määrityksellä.

Commitit: c1d9bec2c

Siirtymistarkistuslista

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

  1. Korvaa WINC1500:n WLAN.ifconfig() -yhteystietolukemat WLAN.netinfo() -metodilla (ifconfig-muutos).

  2. Tarkista MQTTClient.wait_msg() -metodista None -paluuarvo OSError(-1) -poikkeuksen nappaamisen sijaan (wait_msg-muutos).

  3. Hienosäädä AprilTag-tunnistus uudelleen tai käännä IMLIB_ENABLE_FINE_APRILTAGS -määrityksellä, jos tarvitset 8-suuntaista yhtenäisyyttä (find_apriltags-muutos).

Kaikki muut skriptit toimivat muuttumattomina.