v2.7.0¶
v2.7.0, sensor otomatik kazanç / otomatik pozlama / beyaz dengesi API’sini fiziksel birimlere (dB / mikrosaniye) modernize eder, faz korelasyonu find_displacement() işlevini elden geçirir (döndürme/ölçek ekleyerek) ve get_similarity() (SSIM), chrominvar() / illuminvar(), ek çerçeve arabellekleri (frame buffer) ve bir MQTT kütüphanesi ekler. Bu büyük bir kırıcı sürümdür — aşağıdaki kırıcı değişiklikleri okuyun.
Öne çıkanlar¶
Modern sensör API’si —
set_auto_gain()/set_auto_exposure()/set_auto_whitebal()artık dB / mikrosaniye kullanıyor, eşleşenget_gain_db()/get_exposure_us()/get_rgb_gain_db()ile birlikte.Faz korelasyonu — döndürme / ölçek ve
find_rotscale()/linpolar()/logpolar()ile yeniden çalışılmışfind_displacement().SSIM —
image.get_similarity()yapısal benzerlik.Ek çerçeve arabellekleri (frame buffer) —
sensor.alloc_extra_fb()/dealloc_extra_fb().MQTT — yeni bir MQTT kütüphanesi.
Kırıcı: sensör kazanç/pozlama/beyaz dengesi API’si,
find_displacement()/ FFT framesize’ları,find_number(), WINC aygıt yazılımı (firmware) araçları ve AprilTagz_rotation()hepsi değişti — kırıcı değişikliklere bakın.
Yeni özellikler¶
Sensör —
sensor.get_gain_db(),sensor.get_exposure_us(),sensor.get_rgb_gain_db(),set_auto_gain()üzerinde birgain_db_ceilinganahtar sözcüğü, MT9V034hmirror/vflipdesteği ve ek RAM içi çerçeve arabellekleri içinsensor.alloc_extra_fb()/sensor.dealloc_extra_fb()eklendi.Görüntü —
remove_shadows(),min()/max()(çerçeve farkı alma), yapısal benzerlik örneğiyle birlikteget_similarity()(SSIM),chrominvar()/illuminvar(),find_rotscale(),linpolar()/logpolar(),mean()/mode()/median()/midpoint()uyarlamalı filtrelerinde threshold / offset / invert anahtar sözcükleri, anahtar nokta nesnesindelen()/ indeksleme ve anahtar nokta eşleşme nesnesinde bir.match()erişimcisi eklendi.Kütüphaneler / ağ — bir MQTT kütüphanesi (WiFi MQTT örneğiyle birlikte) ve debug UART üzerinden WINC aygıt yazılımını (firmware) programlamak için bir
network.WINC.MODE_BSPmodu eklendi.Örnekler — düşük güçlü
deep_sleep.py/stop_mode.py, gelişmiş optik akış ve doğrusal/log-polar örnek betikleri eklendi; aygıt yazılımı (firmware) artık bir REPL UART’ı etkinleştirmek için önyükleme sırasındauart.inidosyasını ayrıştırıyor.
Diğer değişiklikler ve iyileştirmeler¶
get_regression()işlevinearea_threshold/pixels_thresholdanahtar sözcükleri ve daha hızlı bir sağlam regresyon (çizgi takibi / yarış için) eklendi;get_pixel()artık Bayer görüntüleri destekliyor; STM32H7 temel altyapısı eklendi (CMSIS başlıkları / HAL / önyükleyici — H7 kartı henüz kullanılabilir değil); paketlenen WINC1500 aygıt yazılımı (firmware) güncellendi (19.4.4 / 19.5.2).
Hata düzeltmeleri¶
Görüntüleme:
find_template()elmas-arama sınır dışı hatası,logpolar/linpolarbozulması veilluminvar()işlevinin sıfıra yakın renk değerlerinde kontrolden çıkması düzeltildi.
Sensör ve sistem:
Otomatik kazanç kontrolü hataları,
snapshot()üzerindeMAIN_FBboyutunun geri yüklenmesi (böylece farklı bir çözünürlüktecopy_to_fb, FB yeniden boyutlandırma ve optik akış havuzlama yeniden çalışıyor), WINCgethostbynamezaman aşımı, H7 önyükleyicisindepydfuclear-status ve düşük güçlü durdurma/beklemede modları düzeltildi.
Donanım ve kart desteği¶
STM32H7 — temel altyapı (CMSIS / HAL / önyükleyici); OpenMV H7 kartı bu sürümde henüz kullanılabilir değil.
WINC1500 — paketlenen aygıt yazılımı (firmware) güncellendi.
Kırıcı API değişiklikleri¶
v2.6.0 ile v2.7.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 kapsamlı 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. Sadece kodunuzu taşımak istiyorsanız, sonundaki geçiş kontrol listesine atlayın. Her commit hash’i GitHub’daki diff’ine bağlanır.
sensor.set_auto_gain() dB’ye göre yeniden çalışıldı (major)¶
sensor.set_auto_gain() artık tam sayı value= anahtar sözcüğünü kabul etmiyor ve artık True / False döndürmüyor. sensor.set_auto_gain(False, gain_db=...) kullanın (bir float dB değeri), yeni sensor.get_gain_db() ile geri okuyun ve başarısızlık artık ValueError yükselttiği için çağrıyı try / except içine alın.
Commit’ler: b906c5f19
sensor.set_auto_exposure() mikrosaniyeye göre yeniden çalışıldı (major)¶
sensor.set_auto_exposure() artık tam sayı value= anahtar sözcüğünü kabul etmiyor ve artık True / False döndürmüyor. sensor.set_auto_exposure(False, exposure_us=...) kullanın, yeni sensor.get_exposure_us() ile geri okuyun ve başarısızlıkta yükseltilen ValueError hatasını ele alın.
Commit’ler: 7be0a7a18
find_displacement() / FFT framesize’ları elden geçirildi (major)¶
Faz korelasyonu elden geçirildi. image.find_displacement() artık bir yer değiştirme nesnesi döndürüyor (x_translation() / y_translation() — eskiden x_offset / y_offset — artı rotation() / scale() ve yeni logpolar / fix_rotation_scale anahtar sözcükleriyle); ayrı rot-scale nesnesi kaldırıldı ve find_rotscale() eklendi. FFT framesize sabitleri yeniden adlandırıldı/kaldırıldı: sensor.B40x30 tamamen kaldırıldı ve sensor.B64x32 / B64x64 büyük harfli sensor.B64X32 / B64X64 olarak yeniden adlandırıldı (yeni B128X64 / B128X128 ile birlikte).
sensor.set_auto_whitebal() dB’ye göre yeniden çalışıldı (minor)¶
sensor.set_auto_whitebal(), tam sayı value=[r, g, b] anahtar sözcüğünü rgb_gain_db=[r, g, b] (float dB) ile değiştirdi ve artık True / False yerine None döndürüyor (başarısızlıkta ValueError yükselterek). Kazançları geri okumak için yeni sensor.get_rgb_gain_db() işlevini kullanın.
Commit’ler: 30ecbdc4f
set_hmirror() / set_vflip() None döndürüyor (minor)¶
sensor.set_hmirror() ve sensor.set_vflip() artık bir True / False durumu döndürmek yerine None döndürüyor ve başarısızlıkta ValueError yükseltiyor. Dönüş değerlerine göre dallanan kodları kaldırın.
Commit’ler: aeb023804
WINC aygıt yazılımı araçları bir dosya yolu gerektiriyor (minor)¶
network.WINC aygıt yazılımı (firmware) araçları değişti: wlan.fw_dump() / wlan.fw_update() artık zorunlu bir aygıt-yazılımı-dosya-yolu argümanı alıyor ve WINC bir programlama modunda açılıyor (network.WINC(mode=...)). Argümansız çağrıları bir yol geçirecek şekilde güncelleyin (ör. wlan.fw_update("/winc_19_5_2.bin")).
Commit’ler: fcc3b0b9c
image.find_number() 28x28 bir ROI gerektiriyor (behavior)¶
image.find_number() (LeNet) artık görüntünün içine sığan tam olarak 28x28 bir ROI gerektiriyor ve aksi takdirde bir hata yükseltiyor (rastgele/tam görüntü ROI üzerinde çalışmak yerine). Açık bir roi=(x, y, 28, 28) geçirin.
Commit’ler: 4d09a13f3
AprilTag z_rotation() işareti ters çevrildi (behavior)¶
AprilTag z_rotation() (ve ilgili rotation()) artık sağ elli bir koordinat geleneği kullanıyor, bu nedenle döndürülen açı önceki sürümlere kıyasla negatif. Eski işarete bağımlı betiklerin değeri tersine çevirmesi veya açı matematiklerini ayarlaması gerekir.
Commit’ler: 7673aaf74
Geçiş kontrol listesi¶
v2.7.0’a temiz bir geçiş için tipik iş şudur:
set_auto_gain()işlevinigain_db=+get_gain_db()biçimine taşıyın veValueErrorhatasını ele alın (otomatik kazanç yeniden çalışması).set_auto_exposure()işleviniexposure_us=+get_exposure_us()biçimine taşıyın (otomatik pozlama yeniden çalışması).find_displacement()işlevini yer değiştirme nesnesine güncelleyin ve FFT framesize sabitlerini yeniden adlandırın (find_displacement elden geçirmesi).set_auto_whitebal()işlevinirgb_gain_db=+get_rgb_gain_db()biçimine taşıyın (beyaz dengesi yeniden çalışması) veset_hmirror()/set_vflip()dönüşünü kontrol etmeyi bırakın (ayna/çevirme değişikliği).WINC
fw_*araçlarına bir aygıt yazılımı (firmware) yolu geçirin (WINC araçları değişikliği).find_number()işlevine 28x28 birroigeçirin (find_number değişikliği) ve ters çevrilenz_rotation()işareti için AprilTag açı matematiğini ayarlayın (z_rotation değişikliği).
Diğer tüm betikler değişiklik olmadan çalışır.