v1.1.0¶
v1.1.0 is de fundamentele architectuurrelease: het laat de vroege aangepaste randapparaatmodules vallen ten gunste van standaard MicroPython-builtins, verplaatst de imaging-API naar de image-module en de framesnelheidsklok naar time, en voegt ingebouwde Haar-cascades, get_pixel() / set_pixel(), ondersteuning voor het OpenMV 2-board en USB-CDC-debugging toe. Het is een sterk ingrijpende, API-bepalende release — lees de ingrijpende wijzigingen hieronder.
Hoogtepunten¶
MicroPython-builtins — de aangepaste modules
gpio/led/spi/socket/wlan/uart/file/selectzijn verwijderd ten gunste van MicroPython’spyb/machine.image-module —Image()/HaarCascade()/ descriptors zitten nu in deimage-module.time.clock— de framesnelheidsklok is verplaatst naar detime-module.Ingebouwde Haar-cascades —
HaarCascade("frontalface")/HaarCascade("eye")(geen bestand nodig).Ondersteuning voor het OpenMV 2-board en USB-CDC-debugging.
Ingrijpend: de modulestructuur is opnieuw gedefinieerd — zie de ingrijpende wijzigingen.
Nieuwe functies¶
Image —
Image.get_pixel(x, y)/set_pixel()enimg[i]-subscript-pixeltoegang toegevoegd; ingebouwde Haar-cascades in flashgeheugen (HaarCascade("frontalface")/HaarCascade("eye")) en eenstages=-keyword om cascadefasen te beperken;draw_string()werkt op grijswaardenafbeeldingen.Sensor —
sensor.set_colorbar(),sensor.set_saturation()en hetQQVGA2-framesize toegevoegd.mlx—mlx.read(type)metmlx.RAINBOW/mlx.GRAYSCALE-uitvoer.Debugging — debugging via USB CDC geïmplementeerd, een firmware-
fw_version()-query, firmware per board (OpenMV 1 / OpenMV 2) en zelftest- / colorbar-scripts; fatale/parse-fouten worden naar het flashgeheugen gelogd.
Overige wijzigingen en verbeteringen¶
Onvoldoende geheugen veroorzaakt nu een
MemoryErrorin plaats van eenOSError; scripts draaien met re-raise van uitzonderingen zodat fouten worden afgedrukt in plaats van te crashen; de seriële baudrate is configureerbaar (standaard 921600); een groter flashgeheugenbestandssysteem; de sensor-pixelklok is verlaagd naar 54 MHz voor stabiliteit bij opname;sensor.reset()vertrouwt nu uitsluitend op een soft reset van de sensor.
Foutoplossingen¶
Template matching verholpen,
find_features()dat het eerste object herhaalde, atomaire SCCB/I2C-registertoegang, SD-kaart-chipdetectie, soft-I2C-pinmapping,fast_cbrtf/ LAB-kleurnauwkeurigheid, en het geheugengebruik van integraalafbeeldingen / medianfilters op de OpenMV 1 / 2.
Hardware- en boardondersteuning¶
Ondersteuning voor het OpenMV 2-board (STM32F427) (en het hardware-ontwerp van de OpenMV 3); MCO gebruikt als sensorklok op de OpenMV 2.
Ingrijpende API-wijzigingen¶
Voor de gebruiker zichtbare API-breuken tussen v1.0.3-beta en v1.1.0. Scope: Python C-modules in modules/ en Python-libraries in scripts/libraries/.
Elke wijziging is gemarkeerd met de bijbehorende impact:
major — treft de meeste scripts die de functie gebruikten; je zult code moeten porten.
behavior — dezelfde API, andere resultaten; controleer afgestelde scripts opnieuw.
Wijzigingen zijn in die volgorde gegroepeerd op impact. Als je alleen je code wilt porten, spring dan naar de migratiechecklist aan het einde. Elke commit-hash linkt naar de bijbehorende diff op GitHub.
Aangepaste randapparaatmodules verwijderd (major)¶
De vroege aangepaste modules clock / file / gpio / led / select / socket / spi / wlan / uart zijn verwijderd ten gunste van MicroPython’s ingebouwde pyb / machine-randapparaten. Port scripts naar de standaard MicroPython-equivalenten (bijv. pyb.Pin / pyb.LED / pyb.SPI / pyb.UART).
Commits: 6d2fafa94
Imaging-API verplaatst naar de image-module (major)¶
Image(), HaarCascade() en de functies voor het opslaan/laden van descriptors zijn niet langer kale builtins — ze leven in de nieuwe image-module. Scripts moeten import image gebruiken en image.Image / image.HaarCascade().
Commits: 54288c535
Framesnelheidsklok verplaatst naar time (major)¶
De losstaande clock-module is verwijderd; de framesnelheidsklok leeft nu in time. Gebruik import time en clock = time.clock() — het teruggegeven object biedt nog steeds .tick() / .fps() / .avg() / .reset().
Commits: a8928ca3b
/flash en /sd worden niet langer toegevoegd aan sys.path (behavior)¶
De volumelabels / rootdirectory zijn vastgezet en /flash en /sd worden niet langer automatisch aan sys.path toegevoegd. Scripts die helpermodules op kale naam vanaf die locaties importeerden, moeten het pad expliciet toevoegen (of de modules plaatsen waar ze gevonden worden).
Commits: 09e77b5da
Migratiechecklist¶
Voor een schone port naar v1.1.0 is het gebruikelijke werk:
Vervang de aangepaste modules
gpio/led/spi/uart/socket/wlan/file/selectdoor MicroPythonpyb/machine(de verwijdering van aangepaste modules).import imageen zetimage.voorImage()/HaarCascade()(de verplaatsing van de image-module).Gebruik
import timeenclock = time.clock()(de verplaatsing van de klok).Voeg
/flash//sdexpliciet toe aansys.pathals je helpermodules op kale naam importeerde (de sys.path-wijziging).
Alle overige scripts draaien ongewijzigd.