v4.2.2#
v4.2.2 lägger till stöd för PNG-bilder (avkodning/kodning via lodepng), en tabelldriven inläsare för inbyggda modeller, OV5640-stöd för Portenta, en uppdatering av Edge-Impulse TensorFlow samt ulab 4.0. Konfigurations-API:t för RPC CAN ändrades — läs om de brytande ändringarna nedan.
Höjdpunkter#
PNG-stöd —
Image.to_png(),image.PNGoch läsning/skrivning av PNG-filer.tf.load_builtin_model()— tabelldrivna inbyggda modeller som kan ersättas eller läggas till vid bygget.Portenta H7 — stöd för OV5640-kameran (med autofokus).
MicroPython/ulab — ulab uppdaterad till 4.0.0.
Brytande: konfigurations-API:t för RPC CAN ändrades — se de brytande ändringarna.
Nya funktioner#
PNG-bildformat — en ny metod
Image.to_png(), en konstantimage.PNG/PIXFORMAT_PNG, in- och utläsning av PNG-filer (läs/skriv.png) samt PNG-utdata i konverteringar medimage.to(), via den integrerade lodepng-codecen.tf.load_builtin_model(path)— läser in en inbyggd modell ur den fasta programvaran och returnerar en(labels, net)-tupel; inbyggda modeller är nu tabelldrivna så att de kan ersättas eller läggas till vid bygget.
Övriga ändringar och förbättringar#
TensorFlow / Edge Impulse — det medföljande inferensbiblioteket uppdaterades till Edge Impulse ei-V2.5.0, modellen
person_detectionflyttades in i tabellen över inbyggda modeller, och saknade TensorFlow-operatorer lades till i samtliga Cortex-M0+/M4/M7/M55-byggen så att fler Edge Impulse-modeller fungerar.ulab uppdaterad till 4.0.0.
Att öppna den virtuella USB-serieporten i 1200 bps utlöser nu en återställning till startladdaren i Arduino-stil.
WINC1500:s WiFi-moduls fasta programvara uppdaterades till 19.7.6 (med uppdateringsskriptet), och den rapporterar nu den faktiska versionen av värddrivrutinen.
RP2-porten skriver ut ”MPY: soft reboot” och fick stöd för UART init/de-init.
Buggfixar#
Rättade storleken på den råa bildbufferten för Arduino Nano RP2040 Connect samt USB-produkt-ID:t för Arduino Nicla Vision (korrekt USB-uppräkning).
Maskinvaru- och kortstöd#
Arduino Portenta H7 — stöd för OV5640-kameran (med autofokus); GC2145 är inaktiverad på Portenta.
Arduino Nano RP2040 Connect — minneskonfiguration och mallar för ett nytt filsystem.
WiFi Shield (WINC1500) — fast programvara uppdaterad till 19.7.6.
Brytande API-ändringar#
Användarsynliga API-brott mellan v4.2.1 och v4.2.2. Omfattning: Python C-moduler i modules/ och Python-bibliotek i scripts/libraries/.
Varje ändring är märkt med sin påverkan:
minor — smalt API; påverkar bara skript som använde det.
behavior — samma API, andra resultat; kontrollera trimmade skript på nytt.
Ändringarna är grupperade efter påverkan i den ordningen. Varje commit-hash länkar till sin diff på GitHub.
Konfigurations-API för RPC CAN (minor)#
I biblioteket rpc döptes nyckelordsargumentet sampling_point för CAN i rpc_can_master / rpc_can_slave om till sample_point (för att matcha MicroPython uppströms), och hjälpfunktionen för manuell CAN-bittiming togs bort — CAN-bussen konfigureras nu via CAN(..., baudrate=, sample_point=). Skript som skickade sampling_point eller förlitade sig på den gamla bittimingberäkningen måste uppdateras.
image.format() och komprimerade bilder (behavior)#
Med den enhetliga vägen för komprimerade bilder som lades till för PNG returnerar image.format() nu PIXFORMAT_INVALID för ett okänt format, och indexering/iteration/utskrift av komprimerade bilder omfattar nu PNG såväl som JPEG. Kod som inspekterade det tidigare returvärdet för okända format bör kontrolleras på nytt.
Commit: f12a4659c
Migreringschecklista#
För en ren övergång till v4.2.2: byt namn på RPC CAN sampling_point → sample_point och ta bort eventuell manuell uppsättning av CAN-bittiming (RPC CAN-ändringen), och kontrollera all kod som inspekterade image.format() för okända format (format()-ändringen).