v3.3.0¶
v3.3.0 büyük bir sürümdür. Yeni bir sensor.ioctl() arayüzü ve renk paletleriyle tam FLIR Lepton termal kamera desteği, bir tv SPI video çıkışı modülü, global-shutter tetiklemeli mod, yeni image çizim/analiz yöntemlerinden oluşan büyük bir grup (gamma_corr(), draw_ellipse(), draw_edges(), birçok nokta (blob) özelliği) ve yeni ToF / motor / linalg kütüphaneleri ekler. cpufreq API’si yeniden tasarlandı ve sensor.set_framesize() artık hata fırlatıyor — aşağıdaki kırıcı değişiklikleri okuyun.
Öne çıkanlar¶
FLIR Lepton — yeni
sensor.ioctl()arayüzü, renk paletleri veimage.to_rainbow()aracılığıyla tam termal kamera desteği.tvmodülü — SPI TV / kompozit video çıkışı.Global-shutter tetiklemeli mod —
sensor.ioctl()aracılığıyla MT9V034 tetiklemeli yakalama.Görüntüleme —
gamma_corr(),draw_ellipse(),draw_edges(),draw_image()alfa harmanlama ve birçok yeni nokta (blob) özelliği.Yeni kütüphaneler — VL53L1X ToF mesafe, TB6612 motor sürücüsü, micro-linalg.
Kırıcı:
cpufreqAPI’si yeniden tasarlandı,sensor.set_framesize()artık başarısızlıkta hata fırlatıyor,sensor.alloc_extra_fb()Bayer/JPEG desteğini bıraktı veimage.replace()konumsal argümanları kaydı — kırıcı değişikliklere bakın.
Yeni özellikler¶
FLIR Lepton — sensöre özgü kontrol için
sensor.ioctl()ve tam bir Lepton ioctl seti (radyometri, yenileme/çözünürlük, run-command, set/get attribute, °C cinsinden FPA/AUX sıcaklığı, ölçüm modu/aralığı, genişlik/yükseklik),sensor.PALETTE_RAINBOW/PALETTE_IRONBOWilesensor.set_color_palette()/sensor.get_color_palette(),image.to_rainbow()ve Lepton örnek betikleri (27-Lepton) eklendi.Tetiklemeli mod — MT9V034 global-shutter tetiklemeli yakalama için
IOCTL_SET_TRIGGERED_MODE/IOCTL_GET_TRIGGERED_MODE, yüksek FPS ve tetiklemeli mod örnekleriyle birlikte.tvmodülü — SPI TV / kompozit video çıkışı bağlamaları eklendi.Görüntüleme —
image.gamma_corr(),image.draw_ellipse(),image.draw_edges(),draw_image()alfa harmanlama,clear()üzerinde birmask=anahtar sözcüğü, yeniden eklenenmask_rectangle()/mask_circle()/mask_ellipse(),draw_string()/draw_text()üzerinde rotation / hmirror / vflip anahtar sözcükleri,replace()üzerinde birtransposeanahtar sözcüğü (veassign/settakma adları),copy()x_scale/y_scaleartıcrop()/scale(), boyutlardan birImage()kurucusu,sensor.BINARYpiksel formatı, dışa aktarılan renk uzayı dönüştürme fonksiyonları ve birçok yeni nokta (blob) özelliği (corners,perimeter,roundness,elongation,extent,compactness,solidity,convexity,enclosing_circle,enclosed_ellipse, rotation) eklendi.Kütüphaneler —
vl53l1xToF mesafe sensörü sürücüsü,tb6612motor sürücüsü (DC motor ve step motor Motor-Shield örnekleriyle) ve bir micro-linalg kütüphanesi (ulinalg/umatrix) eklendi.FatFS, FF13C sürümüne (exFAT uyumlu) yükseltildi.
Diğer değişiklikler ve iyileştirmeler¶
Varsayılan JPEG kalitesi iyileştirildi (sabit kodlanmış bir değer yerine düşük–yüksek orta aralığı); yerinde görüntü işlemleri artık görüntüyü ilk argüman olarak tekrarlamayı gerektirmiyor;
draw_string()artık tamsayı olmayan ölçek değerlerini kabul ediyor.
Hata düzeltmeleri¶
Kamera ve sensörler:
Lepton 3.5 başlangıç takılması (zaman aşımı + kurtarma) ve sıfırlama güvenilirliği,
set_pixformat()öncesinde MT9V034set_framesize()(çağrı sırası artık önemli değil), STM32H7 üzerinde MT9V034 WVGA, MT9V034 otomatik pozlama aralığı ve gölge yazmaç güncellemeleri ile H7 ADC hatası düzeltildi.
Görüntüleme:
find_apriltags()içindeki geçersiz bellek erişimi, ölçeklenmiş bir görüntüyü ana çerçeve arabelleğine (frame buffer) kopyalarkencopy(),to_grayscale()/to_rgb565()çerçeve arabelleği (frame buffer) ayırma, anahtar nokta nesnesininlen()değeri, JPEG MCU sınır işleme,binary()eşik listesi ayrıştırma vedraw_keypoints()fonksiyonunun anahtar nokta demetlerini kabul etmesi düzeltildi.
Sistem:
image/fir/lcd/tv/nnyöntemleri genelindefb_allocmark/free dengesizliği sızıntıları düzeltildi,py_assertyakalanan istisnalarda çerçeve arabelleği (frame buffer) belleğini serbest bırakacak şekilde yapıldı (#417), aşmaların artık UART okumalarını sıkıştırmaması için UART aşma (ORE) bayrağı temizlendi, RTC IRQ işleyicisi düzeltildi ve Windowscascade_convert.pyaracı düzeltildi.
Donanım ve kart desteği¶
FLIR Lepton termal kamera.
TV shield — SPI TV / kompozit video çıkışı.
Global-shutter (MT9V034) tetiklemeli mod.
Kırıcı API değişiklikleri¶
v3.2.0 ile v3.3.0 arasındaki kullanıcıya görünür API kırılmaları. Kapsam: modules/ içindeki Python C modülleri ve scripts/libraries/ içindeki Python kütüphaneleri.
Her değişiklik etkisine göre etiketlenmiştir:
major — özelliği kullanan çoğu betiği etkiler; kodu taşımanız gerekecek.
minor — dar bir API; yalnızca onu kullanan betikleri etkiler.
behavior — aynı API, farklı sonuçlar; ince ayarlı betikleri yeniden kontrol edin.
Değişiklikler bu sırayla etkiye göre gruplandırılmıştır. Yalnızca kodunuzu taşımak istiyorsanız, sondaki taşıma kontrol listesine atlayın. Her commit hash’i GitHub’daki diff’ine bağlanır.
cpufreq API’si yeniden tasarlandı (major)¶
cpufreq modülü H7 desteği için yeniden tasarlandı. cpufreq.CPUFREQ_120MHZ / 144 / 168 / 192 / 216MHZ sabitleri ve cpufreq.get_frequency() kaldırıldı. cpufreq.set_frequency() artık düz bir MHz tamsayısı alıyor (örn. cpufreq.set_frequency(120)) ve cpufreq.get_current_frequencies() / cpufreq.get_supported_frequencies() eklendi.
Commit’ler: 6babf84a1
image.replace() konumsal argümanları kaydı (minor)¶
image.replace() bir transpose argümanı kazandı ve konumsal mask argümanını 4. konumdan 5. konuma kaydırdı. mask argümanını konumsal olarak geçiren kod (örn. img.replace(src, hmirror, vflip, mask)) img.replace(src, mask=mask) anahtar sözcük biçimine geçmelidir.
Commit’ler: dbe7bf059
sensor.alloc_extra_fb() artık Bayer/JPEG kabul etmiyor (minor)¶
sensor.alloc_extra_fb() artık sensor.BAYER veya sensor.JPEG kabul etmiyor (artık sensor.BINARY da destekliyor). Bayer veya JPEG formatında ek çerçeve arabellekleri (frame buffer) ayıran kod GRAYSCALE / RGB565 kullanmalı (veya arabelleği başka bir şekilde ayırmalı).
Commit’ler: f9e6b3fe0
sensor.set_framesize() başarısızlıkta hata fırlatıyor (behavior)¶
sensor.set_framesize() artık çerçeve boyutu desteklenmediğinde False döndürmek yerine bir ValueError fırlatıyor. False dönüş değerini kontrol eden kod, bunun yerine ValueError istisnasını yakalamalıdır.
Commit’ler: b0442633e
Taşıma kontrol listesi¶
v3.3.0’a temiz bir geçiş için tipik işler şunlardır:
cpufreqkodunu tamsayı-MHzset_frequency()veget_current_frequencies()/get_supported_frequencies()biçimine taşıyın (cpufreq yeniden tasarımı).maskargümanınıimage.replace()fonksiyonuna anahtar sözcük olarak geçirin (replace değişikliği).Ek çerçeve arabelleklerini (frame buffer) Bayer/JPEG yerine
GRAYSCALE/RGB565olarak ayırın (alloc_extra_fb değişikliği).Falsekontrolü yerinesensor.set_framesize()çevresindeValueErroryakalayın (set_framesize değişikliği).
Diğer tüm betikler değişiklik yapılmadan çalışır.