v4.5.0¶
v4.5.0 is een belangrijke release. De oude lcd-module is vervangen door een uniforme display-module met afzonderlijke SPI- / parallelle / DSI- / TV-backends, het Arduino Giga-board is toegevoegd, en er is een golf aan functies voor display, touch en sensorbesturing bijgekomen. Er zijn enkele breaking changes — lees ze hieronder.
Hoogtepunten¶
Nieuwe
display-module — vervangtlcddoor uniformeSPIDisplay/RGBDisplay/DSIDisplay/TVDisplaybackends.Ondersteuning voor het Arduino Giga-board.
Nieuwe display-/touch-hardware — DSI-displays op STM32 H7, TFP410 DVI/HDMI, HDMI/DVI CEC, ST7701 RGB-panelen, en GT911 / FT5X06 capacitieve touch.
Nieuwe sensorbesturingen — black-level-kalibratie, nachtmodus, en
sensor.disable_delays(); veel snellere transpose (~5x) en morfologie (~2,5x).Breaking:
lcd→display,lcd_touch→ft5x06, hernoemde LED-pinnen — zie de breaking changes.
Nieuwe functies¶
Display-backends —
DisplayData(DDC/EDID-uitlezing), eenTFP410DVI/HDMI-serializer, ondersteuning voor MIPI-DSI-displays op STM32 H7, een HDMI/DVIcec-driver, en een Pythondisplay-bibliotheek met eenST7701RGB-paneel-init-helper.Touch — nieuwe
GT9115-punts capacitieve touch-driver (read_points()/read_id()/reset()).machine-uitbreiding — een freezablemachine-bibliotheek met eenmachine.LEDhelper-klasse, en een nieuwemachine.LED.value([v])-methode.Sensorbesturingen —
sensor.set_auto_blc(enable, regs=None)/sensor.get_blc_regs()(black-level-kalibratie),IOCTL_SET_NIGHT_MODE/IOCTL_GET_NIGHT_MODE(OV7725/OV5640), OV7670 hmirror/vflip, ensensor.disable_delays()om instelvertragingen van de camera over te slaan voor snellere herconfiguratie.i.MX RT —
sensor.set_xclk_frequency()accepteert nu elke frequentie (en kiest de dichtstbijzijnde geldige CSI-deler) en de SPIlcd/tv/fir-modules zijn ingeschakeld op de RT1060.
Overige wijzigingen en verbeteringen¶
Veel snellere afbeeldingsbewerkingen — de transpose van afbeeldingen is ~5x sneller en
image.morph()is ~2,5x sneller.De camera-bus-probe scant en valideert nu meerdere apparaatadressen, ter ondersteuning van boards met meerdere apparaten op de bus.
Bugfixes¶
Camera en sensoren:
Nauwkeurigheid van de versterkingsberekening hersteld voor veel sensoren (HM01B0, HM0360, MT9M114, MT9V0xx, OV2640, OV5640, OV7690, OV7725, OV9650, PAJ6100), MT9V0xx belichting / kolom-binning, OV5640 belichting, en OV7670 VGA-windowing.
STM32 laat nu beschadigde transpose-frames vallen in plaats van slechte afbeeldingen terug te geven.
Beeldverwerking:
Een integer-overflow hersteld die invloed had op image- / FIR- / ToF- / LCD- / TV-bewerkingen, ongeldige
vcvtm/vcvtpfloating-point-instructies op Cortex-M4 (fast_floorf/fast_ceilf), een in-place schalingsbug in deimage.to_*()-conversie, en DMA2D-tekencachecorruptie.
Display en systeem:
DSI-displaytiming en portretmodus hersteld,
micro_speechlisten()op Nicla Vision / Portenta H7, de STM32-gebruikersschakelaar (pyb.Switch), en I2C4-busondersteuning.
Hardware- en boardondersteuning¶
Arduino Giga — nieuw board, met benoemde Arduino-pinmappings en een complete set voorbeelden.
OpenMV RT1060 — SPI-LCD-, TV- en FIR-thermische modules ingeschakeld.
Arduino Nano 33 BLE Sense — LED-pinnen.
Breaking API-wijzigingen¶
Voor de gebruiker zichtbare API-breaks tussen v4.4.3 en v4.5.0. Scope: Python C-modules in modules/ en Python-bibliotheken in scripts/libraries/.
Elke wijziging is getagd met de impact ervan:
major — de meeste scripts die het gebruikten, moeten worden aangepast.
minor — beperkte API; heeft alleen invloed op scripts die het gebruikten.
behavior — dezelfde API, andere resultaten; controleer afgestemde scripts opnieuw.
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 diff ervan op GitHub.
lcd-module vervangen door display (major)¶
De oude lcd-module is verwijderd en vervangen door een uniforme display-module die is opgesplitst in SPIDisplay (SPI-LCD-shield), RGBDisplay / parallel, DSIDisplay (MIPI-DSI), en TVDisplay backends met een gemeenschappelijke API. Scripts moeten overstappen van import lcd naar de display-module en het juiste backend-object construeren.
Touch-module, LED-pinnen en meegeleverde drivers (minor)¶
De generieke lcd_touch-module is vervangen door een speciale FT5X06 capacitieve-touch-driver-module. LED-pinnamen zijn hernoemd voor consistentie op alle boards (scripts die naar de oude LED-pinnamen verwijzen, moeten worden bijgewerkt). De meegeleverde hts221 / lps22h / lsm6dsox / lsm9ds1 IMU-/sensordrivers zijn vervangen door de upstream micropython-lib-versies, waarvan de API’s licht afwijken (de meegeleverde voorbeelden zijn dienovereenkomstig bijgewerkt).
Niet-ondersteunde sensorbesturingen waarschuwen nu (behavior)¶
sensor.set_auto_gain(), set_auto_exposure(), set_auto_whitebal() en set_auto_blc() printen nu een waarschuwing in plaats van een RuntimeError op te werpen wanneer de actieve sensor de besturing niet ondersteunt, zodat hetzelfde script kan draaien op sensoren met verschillende mogelijkheden. Code die afhankelijk was van het opvangen van de uitzondering, moet worden bijgewerkt.
Commit: dbf4996f2
Migratiechecklist¶
Voor een schone port naar v4.5.0 is het typische werk:
Vervang het gebruik van
import lcddoor de nieuwedisplay-module en de juiste backend (de wijziging van de display-module).Schakel
lcd_touchover naarFT5X06, werk eventuele oude LED-pinnamen bij, en controleer de upstream IMU-driver-API’s opnieuw (de touch-/pin-/driverwijzigingen).Vervang
try/except RuntimeErrorrond niet-ondersteunde sensorbesturingen door capability-controles (de wijziging van de sensorbesturing).