v3.6.0

v3.6.0 ger fullt stöd för kameran OV5640 5 MP med nya högupplösta bildstorlekar (HD / FHD / QHD / QXGA / WQXGA), uppdaterar kärnan till MicroPython 1.12, optimerar i hög grad den mjukvarubaserade JPEG-kodaren och AprilTag-/linjedetektering, lägger till UVC (USB-video) på OpenMV Cam H7 Plus och stöder QSPI-flashminne upp till 32 MB. MicroPython-beteendet och get_histogram() ändrades — läs ändringarna som bryter bakåtkompatibiliteten nedan.

Höjdpunkter

  • OV5640 5 MP — fullständig kameradrivrutin med nya bildstorlekarna HD / FHD / QHD / QXGA / WQXGA / WQXGA2.

  • MicroPython 1.12 — den medföljande kärnan uppdaterades.

  • Snabbare pipeline — kraftigt optimerad mjukvarubaserad JPEG-kodning, AprilTag-detektering, LSD-linjedetektering, histeq() och QR-kodavkodning.

  • UVC på H7 Plus — OpenMV Cam H7 Plus kan fungera som en USB-videoenhet.

  • Bryter bakåtkompatibiliteten: MicroPython-beteendet, normaliseringen i image.get_histogram() och OpenMV 3:s JPEG-/gråskaleutdata ändrades — se ändringarna som bryter bakåtkompatibiliteten.

Nya funktioner

  • OV5640 — lade till fullt stöd för kameran OV5640 5 MP (extern klockkonfiguration i sensorinitieringen) och de nya bildstorlekskonstanterna sensor.HD / FHD / QHD / QXGA / WQXGA / WQXGA2.

  • TIM4 — frigjord så att den är användbar från MicroPython.

  • Lade till ett exempel på tidsstyrd DAC-skrivning (dac_write_timed.py) och bytte namn på dac_control.py till dac_write.py.

Övriga ändringar och förbättringar

  • Uppdaterade den medföljande MicroPython till 1.12; optimerade i hög grad den mjukvarubaserade JPEG-kodaren (VGA-väg, gråskale-/binärvägar, heltal i stället för flyttalsmatematik, optimerad MCU-fångst), LSD find_line_segments(), AprilTag-detektering, Image.histeq() och QR-kod- / RGB-till-gråkonvertering; lade till QSPI-flashstöd för chip upp till 32 MB; tog bort det föråldrade CMSIS-CNN-exemplet cnn.py.

Felrättningar

Kamera och bildbehandling:

  • Åtgärdade JPEG-kodningskorruption vid HQQQVGA, binär (1-bitars) bild → JPEG-komprimering, en regression i find_line_segments() (återaktiverade NOTDEF-kontrollen för icke-justerade) och mindre problem i OV2640-drivrutinen.

System och uppstart:

  • Åtgärdade självtest-/filsystemskorruption (selftest.py körs nu innan USB MSC aktiveras, och USB MSC aktiveras vid ett fatalt fel så att värden kan läsa felloggen), pyb.DAC write_timed(), H7 machine.I2C-tidsinställningarna, F7 overdrive-återaktivering efter stoppläge och rtc.wakeup()-intervallet i stop_mode.py.

Hårdvaru- och kortstöd

  • OV5640 — fullständig 5 MP-kameradrivrutin med högupplösta bildstorlekar.

  • OpenMV Cam H7 Plus — UVC-stöd (USB-video); kortmålet OPENMV4R bytte namn till OPENMV4P.

  • QSPI-flashminne — chip upp till 32 MB stöds nu.

API-ändringar som bryter bakåtkompatibiliteten

Användarsynliga API-brott mellan v3.5.2 och v3.6.0. Omfattning: Python C-moduler i modules/ och Python-bibliotek i scripts/libraries/.

Alla tre ändringarna som bryter bakåtkompatibiliteten är beteendeändringar (samma API, annat resultat) — kontrollera berörda skript på nytt. Varje commit-hash länkar till sin diff på GitHub.

MicroPython uppdaterad till 1.12 (beteende)

Den medföljande MicroPython-kärnan uppdaterades till 1.12. Standardbibliotekets och språkets beteende följer uppströms MicroPython 1.12; kontrollera på nytt skript som är beroende av versionsspecifikt micropython-/standardmodulbeteende.

Commits: eafd431ea

Normaliseringen av tröskelvärden i image.get_histogram() ändrades (beteende)

image.get_histogram() (och get_statistics()) med färgtröskelvärden normaliserar nu efter antalet tröskelvärdesbehandlade pixlar i stället för hela ROI, och använder golv i stället för avrundning för binindexering. Histogram-/statistikvärden för tröskelvärdesanrop skiljer sig från tidigare versioner — finjustera kod som jämförde mot absoluta histogramvärden på nytt.

Commits: 7cf0f8089

OpenMV 3 JPEG-/gråskaleutdata ändrades (beteende)

För att spara flashminne inaktiverades OpenMV 3:s (M7) YUV-uppslagstabell, så JPEG- och gråskaleutdatas pixelvärden beräknas något annorlunda på OpenMV 3. Utdata är fortfarande giltiga men skiljer sig marginellt från tidigare versioner; kontrollera pixelexakta jämförelser på OpenMV 3 på nytt.

Commits: 0e4b46e41

Migreringschecklista

Validera på nytt skript som är beroende av versionsspecifikt MicroPython-beteende mot 1.12 (MicroPython-uppdateringen), finjustera kod som jämförde mot absoluta get_histogram()- / get_statistics()-värden vid användning av färgtröskelvärden på nytt (histogramändringen) och kontrollera pixelexakta jämförelser på OpenMV 3 på nytt (OpenMV 3-utdataändringen). Alla övriga skript körs oförändrade.