v3.7.0¶
v3.7.0 is een grote release. Het voegt de audio-module toe (Portenta H7 PDM-microfoon) met een nieuwe niet-blokkerende callback-API, de micro_speech TensorFlow-spraakherkenningsmodule, een gloednieuwe parallelle-RGB-LCD-controller (met HDMI-uitvoer en FT5X06-touch), een image.flush()-methode met pixelformaatconstanten, en een herschreven image.draw_image()-schalingspijplijn. Verscheidene oudere hulpbibliotheken en image-methoden zijn verwijderd en de yuv_to_*-wiskunde is gewijzigd — lees de breaking changes hieronder.
Hoogtepunten¶
audio-module — opname met de onboard PDM-microfoon van de Portenta H7 via een niet-blokkerendestart_streaming(callback)-API.micro_speech— een TensorFlow micro-spraakherkenningsmodule.Nieuwe LCD-controller — ondersteuning voor parallelle RGB-displays, HDMI-uitvoer (TFP410) en FT5X06-touch.
image.draw_image()— herschreven met een volledige schalings-/alpha-/palet-pijplijn (x_scale/y_scale/hint/color_palette…).image.flush()plus pixelformaatconstanten (image.BINARY/GRAYSCALE/RGB565/YUV422/BAYER/JPEG).Breaking: oudere wiskundige hulpbibliotheken en verscheidene image-methoden zijn verwijderd, de
draw_image()-/LCD-API’s zijn herwerkt, enyuv_to_*trekt niet langer 128 af — zie de breaking changes.
Nieuwe functies¶
audio— een nieuwe Portenta H7audio-module voor opname met een PDM-microfoon:audio.init(), niet-blokkerendaudio.start_streaming(callback), enaudio.stop_streaming()(de frequentie wordt opgegeven in Hz).micro_speech— een nieuwe module met eenMicroSpeech-klasse,audio_callback()enmicro_speech()voor TensorFlow-spraakherkenning;listen()gebruikt een voortschrijdend vensteringsgemiddelde en accepteert eenfilter-keyword om resultaten te beperken tot een lijst met labels.LCD — een nieuwe LCD-controller met ondersteuning voor parallelle RGB-displays,
LCD_NONE/LCD_SHIELD/LCD_DISPLAY-typen, veel framesize-constanten,triple_buffer/framesize/refresh/bgr/deinit, een uitgebreidedisplay, HDMI-uitvoer via de TFP410, en ondersteuning voor het FT5X06-touchscreen.image.flush()— eenimage.flush()-methode en pixelformaatconstanten (image.BINARY/GRAYSCALE/RGB565/YUV422/BAYER/JPEG) toegevoegd.image.draw_image()— herschreven met een nieuwe schalingspijplijn:x_scale/y_scale/x_size/y_size,rgb_channel,alpha,color_palette,alpha_paletteenhint, plus de constantenimage.AREA/BILINEAR/BICUBIC/CENTER/EXTRACT_RGB_CHANNEL_FIRST/APPLY_COLOR_PALETTE_FIRSTen nieuwe voorbeelden voor alpha-blending / kleurtabellen / schaling.ImageReader.next_frame()heeft eenpause-keyword gekregen om de real-time afspeelvertraging uit te schakelen.Portenta-audiovoorbeelden (
audio_fft.py,micro_speech.py) en een ExtInt wake-from-stop-voorbeeld toegevoegd.
Overige wijzigingen en verbeteringen¶
De ingebouwde voorbeelden zijn gereorganiseerd onder
scripts/examples/Arduino/; de framebuffer wordt nu direct bijgewerkt na het laden/aanmaken van afbeeldingen metcopy_to_fb=True(geen handmatige flush nodig); de Portenta-heap is iets verkleind om meer statische driver-state te laten passen.
Bugfixes¶
Camera en beeldverwerking:
Verwisselde rood/blauw (RGB565-byte-volgorde) in vastgelegde afbeeldingen gecorrigeerd, de afronding van DMA2D-tekenen afgestemd op andere teken-code,
fb_alloc-corruptie bij recursieve allocaties (find_blobs()) gecorrigeerd, entop_hat()/black_hat()afhankelijk gemaakt van het ingeschakeld zijn van zowel binaire als wiskundige bewerkingen.
Display en audio:
De LCD-shield-uitvoer en de 1-kanaals mono-audiomodus van de Portenta gecorrigeerd.
Portenta:
Een Ethernet-/SDRAM-probleem omzeild (
rst_ethhoog gedreven) en de SDRAM-timingconfiguratie gecorrigeerd.
Hardware- en boardondersteuning¶
Arduino Portenta H7 — audio-opname met de onboard PDM-microfoon (SAI / PDM2PCM).
LCD — nieuwe parallelle-RGB-displaycontroller (LTDC ingeschakeld in de H7-build), HDMI-uitvoer via de TFP410, en ondersteuning voor een FT5X06-touchscreen-LCD.
Breaking API-wijzigingen¶
Voor gebruikers zichtbare API-breaks tussen v3.6.9 en v3.7.0. Scope: Python C-modules in modules/ en Python-bibliotheken in scripts/libraries/.
Elke wijziging is gemarkeerd met de bijbehorende impact:
minor — beperkte API; raakt alleen scripts die deze gebruikten.
gedrag — dezelfde API, andere resultaten; controleer afgestemde scripts opnieuw.
De wijzigingen zijn in die volgorde gegroepeerd op impact. Als je alleen je code wilt porten, ga dan naar de migratiechecklist aan het einde. Elke commit-hash linkt naar de bijbehorende diff op GitHub.
Oudere wiskundige hulpbibliotheken verwijderd (minor)¶
De hulpbibliotheken mtx, rv, ulinalg, umatrix en vec zijn verwijderd uit scripts/libraries ten gunste van ulab. Scripts die een van deze import-en zullen falen en moeten worden geport naar ulab.
Commits: 1f7da9272
remove_shadows() / chrominvar() / illuminvar() verwijderd (minor)¶
image.remove_shadows(), image.chrominvar() en image.illuminvar() zijn verwijderd zonder vervanging. Scripts die deze methoden aanroepen, moeten de aanroepen verwijderen.
Commits: 3173c2bb3
Signatuur van image.draw_image() herwerkt (minor)¶
image.draw_image() is herschreven bovenop een nieuwe schalingspijplijn. De oude positionele alpha- / enkelvoudige scale-argumenten en de eerdere positionele volgorde zijn niet langer van toepassing; gebruik de nieuwe keyword-vorm (x_scale= / y_scale= of x_size= / y_size=, alpha=, color_palette=, hint= …).
Commits: 3439f8824
Herschrijving van de LCD-module (minor)¶
De lcd-module is herschreven voor de nieuwe displaycontroller. lcd.init() neemt nu een display-type (LCD_NONE / LCD_SHIELD / LCD_DISPLAY) en nieuwe keyword-argumenten, en het constanten-/API-oppervlak is aanzienlijk gereorganiseerd. Oude shield-only scripts werken meestal nog, maar de standaardwaarden en het gedrag zijn gewijzigd — controleer LCD-scripts tegen de nieuwe type- / framesize-API.
Commits: 185538207
yuv_to_* trekt niet langer 128 af (gedrag)¶
image.yuv_to_binary() / yuv_to_grayscale() / yuv_to_rgb() / yuv_to_lab() behandelen het Y-tuple-element nu als een unsigned waarde van 0–255 in plaats van er 128 van af te trekken. Aanroepers moeten Y zonder de vorige −128-bias doorgeven om dezelfde kleuren als voorheen te krijgen.
Commits: dcf141192
Migratiechecklist¶
Voor een schone port naar v3.7.0 is het typische werk:
Port het gebruik van
mtx/rv/ulinalg/umatrix/vecnaarulab(de verwijdering van de wiskundebibliotheek).Verwijder aanroepen van
image.remove_shadows()/chrominvar()/illuminvar()(de verwijderde image-methoden).Werk aanroepen van
image.draw_image()bij naar de nieuwe keyword-signatuur (de draw_image-herwerking).Controleer LCD-scripts tegen de nieuwe
lcdtype- /framesize-API (de LCD-herschrijving).Laat de −128-bias vallen bij het doorgeven van Y aan
yuv_to_*(de yuv_to_*-wijziging).
Alle andere scripts draaien ongewijzigd.