v3.3.0¶
v3.3.0 är en enorm utgåva. Den lägger till fullt stöd för FLIR Lepton-värmekamera med ett nytt sensor.ioctl()-gränssnitt och färgpaletter, en tv-modul för SPI-videoutmatning, global-shutter-utlöst läge, en stor uppsättning nya image-metoder för ritning/analys (gamma_corr(), draw_ellipse(), draw_edges(), många blob-egenskaper) samt nya bibliotek för ToF, motorer och linalg. cpufreq-API:et omarbetades och sensor.set_framesize() ger nu ett undantag — läs de brytande ändringarna nedan.
Höjdpunkter¶
FLIR Lepton — fullt stöd för värmekamera via det nya
sensor.ioctl()-gränssnittet, färgpaletter ochimage.to_rainbow().tv-modul — SPI-TV / composite-videoutmatning.Global-shutter-utlöst läge — MT9V034-utlöst infångning via
sensor.ioctl().Bildbehandling —
gamma_corr(),draw_ellipse(),draw_edges(), alfablandning idraw_image()och många nya blob-egenskaper.Nya bibliotek — VL53L1X ToF-avstånd, TB6612-motordrivrutin, micro-linalg.
Brytande:
cpufreq-API:et omarbetades,sensor.set_framesize()ger nu ett undantag vid fel,sensor.alloc_extra_fb()släppte Bayer/JPEG och de positionsbaserade argumenten iimage.replace()förskjöts — se de brytande ändringarna.
Nya funktioner¶
FLIR Lepton — lade till
sensor.ioctl()för sensorspecifik styrning och en komplett uppsättning Lepton-ioctls (radiometri, uppdatering/upplösning, kör-kommando, sätt/hämta attribut, FPA/AUX-temperatur i °C, mätläge/-intervall, bredd/höjd),sensor.set_color_palette()/sensor.get_color_palette()medsensor.PALETTE_RAINBOW/PALETTE_IRONBOW,image.to_rainbow()samt Lepton-exempelskript (27-Lepton).Utlöst läge —
IOCTL_SET_TRIGGERED_MODE/IOCTL_GET_TRIGGERED_MODEför MT9V034 global-shutter-utlöst infångning, med exempel för hög FPS och utlöst läge.tv-modul — lade till bindningar för SPI-TV / composite-videoutmatning.Bildbehandling — lade till
image.gamma_corr(),image.draw_ellipse(),image.draw_edges(), alfablandning idraw_image(), ettmask=-nyckelord påclear(), återinfördemask_rectangle()/mask_circle()/mask_ellipse(), nyckelord för rotation / hmirror / vflip pådraw_string()/draw_text(), etttranspose-nyckelord (och aliasenassign/set) påreplace(),copy()medx_scale/y_scalepluscrop()/scale(), enImage()-konstruktor från dimensioner, pixelformatetsensor.BINARY, exporterade funktioner för färgrymdskonvertering samt många nya blob-egenskaper (corners,perimeter,roundness,elongation,extent,compactness,solidity,convexity,enclosing_circle,enclosed_ellipse, rotation).Bibliotek — lade till drivrutinen
vl53l1xför ToF-avståndssensor, motordrivrutinentb6612(med exempel för DC-motor och stegmotor på Motor-Shield) samt ett micro-linalg-bibliotek (ulinalg/umatrix).Uppgraderade FatFS till FF13C (exFAT-kapabel).
Övriga ändringar och förbättringar¶
Förbättrade standardkvaliteten för JPEG (mittintervall mellan låg–hög i stället för ett hårdkodat värde); operationer på bilder på plats kräver inte längre att bilden upprepas som första argument;
draw_string()accepterar nu skalvärden som inte är heltal.
Buggfixar¶
Kamera och sensorer:
Fixade Lepton 3.5-startupphängning (timeout + återställning) och tillförlitlighet vid återställning, MT9V034
set_framesize()föreset_pixformat()(anropsordningen spelar inte längre någon roll), MT9V034 WVGA på STM32H7, MT9V034:s autoexponeringsintervall och uppdateringar av skuggregister samt H7 ADC-buggen.
Bildbehandling:
Fixade en ogiltig minnesåtkomst i
find_apriltags(),copy()vid kopiering av en skalad bild till huvudbildbufferten, bildbuffertallokering ito_grayscale()/to_rgb565(),len()på nyckelpunktsobjektet, hantering av JPEG MCU-gränser, parsning av tröskelvärdeslistor ibinary()samt attdraw_keypoints()accepterar nyckelpunktstupler.
System:
Fixade läckor från obalans i
fb_allocmark/free över metoder iimage/fir/lcd/tv/nn, fickpy_assertatt frigöra bildbuffertminne vid fångade undantag (#417), rensade UART-överskridningsflaggan (ORE) så att överskridningar inte längre låser UART-läsningar, fixade RTC IRQ-hanteraren samt fixade Windows-verktygetcascade_convert.py.
Hårdvaru- och kortstöd¶
FLIR Lepton-värmekamera.
TV-shield — SPI-TV / composite-videoutmatning.
Global-shutter (MT9V034)-utlöst läge.
Brytande API-ändringar¶
Användarsynliga API-brytningar mellan v3.2.0 och v3.3.0. Omfattning: Python C-moduler i modules/ och Python-bibliotek i scripts/libraries/.
Varje ändring är märkt med sin påverkan:
major — påverkar de flesta skript som använde funktionen; du behöver porta kod.
minor — smalt API; påverkar endast skript som använde det.
behavior — samma API, andra resultat; kontrollera om finjusterade skript.
Ändringarna grupperas efter påverkan i den ordningen. Om du bara vill porta din kod, hoppa till migreringschecklistan i slutet. Varje commit-hash länkar till sin diff på GitHub.
cpufreq-API:et omarbetat (major)¶
cpufreq-modulen omarbetades för H7-stöd. Konstanterna cpufreq.CPUFREQ_120MHZ / 144 / 168 / 192 / 216MHZ och cpufreq.get_frequency() togs bort. cpufreq.set_frequency() tar nu ett vanligt MHz-heltal (t.ex. cpufreq.set_frequency(120)), och cpufreq.get_current_frequencies() / cpufreq.get_supported_frequencies() lades till.
Commits: 6babf84a1
image.replace() positionsbaserade argument förskjutna (minor)¶
image.replace() fick ett transpose-argument, vilket förskjuter det positionsbaserade mask-argumentet från position 4 till position 5. Kod som skickade mask positionellt (t.ex. img.replace(src, hmirror, vflip, mask)) måste byta till nyckelordsformen img.replace(src, mask=mask).
Commits: dbe7bf059
sensor.alloc_extra_fb() accepterar inte längre Bayer/JPEG (minor)¶
sensor.alloc_extra_fb() accepterar inte längre sensor.BAYER eller sensor.JPEG (den stöder nu även sensor.BINARY). Kod som allokerade extra bildbuffertar i Bayer- eller JPEG-format måste använda GRAYSCALE / RGB565 (eller allokera bufferten på annat sätt).
Commits: f9e6b3fe0
sensor.set_framesize() ger ett undantag vid fel (behavior)¶
sensor.set_framesize() ger nu ett ValueError när bildrutestorleken inte stöds i stället för att returnera False. Kod som kontrollerade returvärdet False måste i stället fånga undantaget ValueError.
Commits: b0442633e
Migreringschecklista¶
För en ren portning till v3.3.0 är det typiska arbetet:
Porta
cpufreq-kod tillset_frequency()med heltals-MHz ochget_current_frequencies()/get_supported_frequencies()(cpufreq-omarbetningen).Skicka
masktillimage.replace()som ett nyckelord (replace-ändringen).Allokera extra bildbuffertar som
GRAYSCALE/RGB565i stället för Bayer/JPEG (alloc_extra_fb-ändringen).Fånga
ValueErrorruntsensor.set_framesize()i stället för att kontrollera motFalse(set_framesize-ändringen).
Alla andra skript körs oförändrade.