v1.1.0

v1.1.0 är den grundläggande arkitekturutgåvan: den slopar de tidiga anpassade kringutrustningsmodulerna till förmån för standardiserade MicroPython-inbyggda funktioner, flyttar bild-API:t till image-modulen och bildfrekvensklockan till time, och lägger till inbyggda Haar-cascades, get_pixel() / set_pixel(), stöd för OpenMV 2-kort och USB-CDC-felsökning. Det är en kraftigt brytande, API-definierande utgåva — läs de brytande ändringarna nedan.

Höjdpunkter

  • MicroPython-inbyggda funktioner — de anpassade modulerna gpio / led / spi / socket / wlan / uart / file / select togs bort till förmån för MicroPythons pyb / machine.

  • image-modulen — Image() / HaarCascade() / deskriptorer finns nu i image-modulen.

  • time.clock — bildfrekvensklockan flyttade till time-modulen.

  • Inbyggda Haar-cascadesHaarCascade("frontalface") / HaarCascade("eye") (ingen fil behövs).

  • Stöd för OpenMV 2-kort och USB-CDC-felsökning.

  • Brytande: modulstrukturen omdefinierades — se de brytande ändringarna.

Nya funktioner

  • Image — lade till Image.get_pixel(x, y) / set_pixel() och pixelåtkomst via indexering img[i]; inbyggda Haar-cascades i flashminne (HaarCascade("frontalface") / HaarCascade("eye")) och ett stages=-nyckelord för att begränsa cascade-steg; draw_string() fungerar på gråskalebilder.

  • Sensor — lade till sensor.set_colorbar(), sensor.set_saturation() och bildstorleken QQVGA2.

  • mlxmlx.read(type) med utdata mlx.RAINBOW / mlx.GRAYSCALE.

  • Felsökning — implementerade felsökning över USB CDC, en fw_version()-fråga för fast programvara, fast programvara per kort (OpenMV 1 / OpenMV 2) och självtest- / colorbar-skript; allvarliga fel/tolkningsfel loggas till flashminne.

Övriga ändringar och förbättringar

  • Slut på minne ger nu MemoryError i stället för OSError; skript körs med återkastade undantag så att fel skrivs ut i stället för att krascha; den seriella baudhastigheten är konfigurerbar (standard 921600); ett större flashminnesfilsystem; sensorns pixelklocka sänktes till 54 MHz för stabil tagning; sensor.reset() förlitar sig endast på en mjuk återställning av sensorn.

Buggfixar

  • Rättade mallmatchning, find_features() som upprepade det första objektet, atomär registeråtkomst för SCCB/I2C, chip-detektering för SD-kort, pin-mappning för mjuk-I2C, fast_cbrtf / LAB-färgnoggrannhet samt minnesanvändning för integralbild / medianfilter på OpenMV 1 / 2.

Hårdvaru- och kortstöd

  • Stöd för OpenMV 2-kort (STM32F427) (och hårdvarudesign för OpenMV 3); MCO används som sensorklocka på OpenMV 2.

Brytande API-ändringar

Användarsynliga API-brott mellan v1.0.3-beta och v1.1.0. Omfattning: Python C-moduler i modules/ och Python-bibliotek i scripts/libraries/.

Varje ändring är taggad med sin påverkan:

  • major — påverkar de flesta skript som använde funktionen; du behöver porta kod.

  • behavior — samma API, andra resultat; kontrollera om finjusterade skript på nytt.

Ändringar grupperas efter påverkan i den ordningen. Om du bara vill porta din kod, hoppa till migrationschecklistan i slutet. Varje commit-hash länkar till sin diff på GitHub.

Anpassade kringutrustningsmoduler borttagna (major)

De tidiga anpassade modulerna clock / file / gpio / led / select / socket / spi / wlan / uart togs bort till förmån för MicroPythons inbyggda pyb / machine-kringutrustning. Porta skript till motsvarande standardfunktioner i MicroPython (t.ex. pyb.Pin / pyb.LED / pyb.SPI / pyb.UART).

Commits: 6d2fafa94

Bild-API flyttat in i image-modulen (major)

Image(), HaarCascade() och funktionerna för att spara/läsa in deskriptorer är inte längre rena inbyggda funktioner — de finns i den nya image-modulen. Skript måste använda import image och image.Image / image.HaarCascade().

Commits: 54288c535

Bildfrekvensklocka flyttad in i time (major)

Den fristående clock-modulen togs bort; bildfrekvensklockan finns nu i time. Använd import time och clock = time.clock() — det returnerade objektet tillhandahåller fortfarande .tick() / .fps() / .avg() / .reset().

Commits: a8928ca3b

/flash och /sd läggs inte längre till i sys.path (behavior)

Volymetiketterna / rotkatalogen rättades och /flash och /sd läggs inte längre till automatiskt i sys.path. Skript som importerade hjälpmoduler med bara namnet från de platserna måste lägga till sökvägen uttryckligen (eller placera modulerna där de hittas).

Commits: 09e77b5da

Migrationschecklista

För en ren portning till v1.1.0 är det typiska arbetet:

  1. Ersätt de anpassade modulerna gpio / led / spi / uart / socket / wlan / file / select med MicroPythons pyb / machine (borttagningen av anpassade moduler).

  2. import image och prefixa Image() / HaarCascade() med image. (flytten av image-modulen).

  3. Använd import time och clock = time.clock() (klockflytten).

  4. Lägg till /flash / /sd i sys.path uttryckligen om du importerade hjälpmoduler med bara namnet (ändringen av sys.path).

Alla andra skript körs oförändrade.