v1.1.0

v1.1.0 on perustavanlaatuinen arkkitehtuurijulkaisu: se poistaa varhaiset mukautetut oheislaitemoduulit standardien MicroPython-sisäänrakennettujen hyväksi, siirtää kuvankäsittelyrajapinnan image-moduuliin ja kehysnopeuskellon time-moduuliin sekä lisää sisäänrakennetut Haar-kaskadit, get_pixel() / set_pixel(), OpenMV 2 -korttituen ja USB-CDC-virheenkorjauksen. Se on voimakkaasti rikkova, rajapintaa määrittelevä julkaisu — lue alla olevat rikkovat muutokset.

Kohokohdat

  • MicroPython-sisäänrakennetut — mukautetut gpio / led / spi / socket / wlan / uart / file / select -moduulit poistettiin MicroPythonin pyb / machine -moduulien hyväksi.

  • image-moduuli — Image() / HaarCascade() / kuvaajat ovat nyt image-moduulissa.

  • time.clock — kehysnopeuskello siirtyi time-moduuliin.

  • Sisäänrakennetut Haar-kaskaditHaarCascade("frontalface") / HaarCascade("eye") (tiedostoa ei tarvita).

  • OpenMV 2 -korttituki ja USB-CDC-virheenkorjaus.

  • Rikkova: moduulirakenne määriteltiin uudelleen — katso rikkovat muutokset.

Uudet ominaisuudet

  • Image — lisättiin Image.get_pixel(x, y) / set_pixel() ja img[i] -alaindeksoitu pikselien käyttö; sisäänrakennetut flash-muistissa olevat Haar-kaskadit (HaarCascade("frontalface") / HaarCascade("eye")) ja stages= -avainsana kaskadin vaiheiden rajoittamiseen; draw_string() toimii harmaasävykuvilla.

  • Sensor — lisättiin sensor.set_colorbar(), sensor.set_saturation() ja QQVGA2-kehyskoko.

  • mlxmlx.read(type) mlx.RAINBOW / mlx.GRAYSCALE -tulostuksella.

  • Virheenkorjaus — toteutettiin virheenkorjaus USB CDC:n yli, laiteohjelmiston fw_version() -kysely, korttikohtainen laiteohjelmisto (OpenMV 1 / OpenMV 2) ja itsetesti- / colorbar-skriptit; vakavat virheet / jäsennysvirheet kirjataan flash-muistiin.

Muut muutokset ja parannukset

  • Muistin loppuminen nostaa nyt MemoryError-poikkeuksen OSError-poikkeuksen sijaan; skriptit suoritetaan poikkeuksen uudelleennostolla, jotta virheet tulostuvat sen sijaan, että ne kaataisivat järjestelmän; sarjaliikenteen siirtonopeus on määritettävissä (oletus 921600); suurempi flash-tiedostojärjestelmä; sensorin pikselikellotaajuus laskettiin 54 MHz:iin kuvankaappauksen vakauden vuoksi; sensor.reset() luottaa vain sensorin ohjelmistonollaukseen.

Virhekorjaukset

  • Korjattiin mallisovitus, find_features() toisti ensimmäisen objektin, SCCB/I2C-rekisterien atominen käyttö, SD-kortin sirun tunnistus, ohjelmisto-I2C:n nastakartoitus, fast_cbrtf / LAB-värin tarkkuus sekä integraalikuvan / mediaanisuodattimen muistinkäyttö OpenMV 1 / 2 -korteilla.

Laitteisto- ja korttituki

  • OpenMV 2 (STM32F427) -korttituki (ja OpenMV 3 -laitteistosuunnittelu); MCO:ta käytetään sensorikellona OpenMV 2:ssa.

Rikkovat API-muutokset

Käyttäjälle näkyvät API-rikkomukset v1.0.3-beta:n ja v1.1.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 on portattava koodia.

  • behavior — sama rajapinta, eri tulokset; tarkista viritetyt skriptit uudelleen.

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

Mukautetut oheislaitemoduulit poistettu (major)

Varhaiset mukautetut clock / file / gpio / led / select / socket / spi / wlan / uart -moduulit poistettiin MicroPythonin sisäänrakennettujen pyb / machine -oheislaitteiden hyväksi. Porttaa skriptit standardeihin MicroPython-vastineisiin (esim. pyb.Pin / pyb.LED / pyb.SPI / pyb.UART).

Commitit: 6d2fafa94

Kuvankäsittelyrajapinta siirretty image-moduuliin (major)

Image(), HaarCascade() ja kuvaajien tallennus-/latausfunktiot eivät ole enää paljaita sisäänrakennettuja — ne sijaitsevat uudessa image-moduulissa. Skriptien on käytettävä import image ja käytettävä image.Image / image.HaarCascade().

Commitit: 54288c535

Kehysnopeuskello siirretty time-moduuliin (major)

Erillinen clock-moduuli poistettiin; kehysnopeuskello sijaitsee nyt time-moduulissa. Käytä import time ja clock = time.clock() — palautettu objekti tarjoaa edelleen .tick() / .fps() / .avg() / .reset().

Commitit: a8928ca3b

/flash ja /sd ei enää lisätä sys.path-polkuun (behavior)

Taltioiden nimet / juurihakemisto korjattiin, eikä /flash ja /sd lisätä enää automaattisesti sys.path-polkuun. Skriptien, jotka toivat apumoduuleja paljaalla nimellä noista sijainneista, on lisättävä polku eksplisiittisesti (tai sijoitettava moduulit paikkaan, josta ne löytyvät).

Commitit: 09e77b5da

Siirtymistarkistuslista

Siisti portti v1.1.0:aan vaatii tyypillisesti seuraavan työn:

  1. Korvaa mukautetut gpio / led / spi / uart / socket / wlan / file / select -moduulit MicroPythonin pyb / machine -moduuleilla (mukautettujen moduulien poisto).

  2. import image ja lisää Image() / HaarCascade() -kutsujen eteen image. (image-moduulin siirto).

  3. Käytä import time ja clock = time.clock() (kellon siirto).

  4. Lisää /flash / /sd sys.path-polkuun eksplisiittisesti, jos toit apumoduuleja paljaalla nimellä (sys.path-muutos).

Kaikki muut skriptit toimivat muuttumattomina.