v4.5.1¶
v4.5.1 görüntü yönlendirme/en-boy çizim ipuçları, görüntüleri doğrudan bir dosya yolundan yükleme, bir GC2145 geniş görüş alanı ioctl’i ve yeni bir arka aydınlatma denetleyici API’si ekler. Ayrıca Image() yapıcısını, display API’lerini ve modül argüman ayrıştırmasını yeniden düzenler — aşağıdaki geriye dönük uyumsuz değişiklikleri okuyun.
Öne çıkanlar¶
Çizim ipuçları —
draw_image()yönlendirme (HMIRROR/VFLIP/TRANSPOSE,ROTATE_90/180/270) ve en-boy ölçekleme (SCALE_ASPECT_KEEP/EXPAND/IGNORE) ipuçları kazandı.Görüntüleri diskten yükleme —
draw_image()/display.write()bir dosya yolu dizgesi kabul ediyor.Arka aydınlatma kontrolü — yeni
DACBacklight/PWMBacklightsınıfları ve bir ekranbacklight=argümanı.Uyumsuz:
Image()yapıcısı,displayAPI’leri ve modül argüman ayrıştırması değişti — geriye dönük uyumsuz değişikliklere bakın.
Yeni özellikler¶
draw_image()yönlendirme ipuçları —image.HMIRROR,image.VFLIP,image.TRANSPOSE, ayrıca pratikimage.ROTATE_90/ROTATE_180/ROTATE_270.draw_image()en-boy ipuçları — sığdırma / genişletme / esnetme içinimage.SCALE_ASPECT_KEEP/SCALE_ASPECT_EXPAND/SCALE_ASPECT_IGNORE.Palet sabitleri —
image.PALETTE_RAINBOWveimage.PALETTE_IRONBOW(image modülüne taşındı).Geniş görüş alanı — yeni
sensor.IOCTL_SET_FOV_WIDE/IOCTL_GET_FOV_WIDEioctl’leri (GC2145 üzerinde, 5x’e kadar sensör ölçekleme).Diskten yükleme —
draw_image()vedisplay.write()bir kaynak görüntü dosya yolu dizgesi kabul ederek onu doğrudan depolamadan yükler.Arka aydınlatma denetleyicileri — yeni
DACBacklightvePWMBacklightsınıfları (displaymodülünden içe aktarılabilir) ve SPI/paralel ekran yapıcılarında yalnızca anahtar kelimeli birbacklight=argümanı.
Diğer değişiklikler ve iyileştirmeler¶
ST7701 DSI ekran sürücüsü kendi
st7701.pymodülüne taşındı (hâlâfrom display import *ile içe aktarılabilir) ve Arduino Giga’da donduruldu;lsm9ds1IMU sürücüsü Arduino Nano 33 BLE Sense’te donduruldu.MT9V022 / MT9V034 (global shutter) kameraları artık daha iyi görüntü kalitesi için satır gürültüsü düzeltmesi uyguluyor.
i.MX RT USB yığın depolama birimi artık bir OpenMV diski olarak etiketleniyor.
Hata düzeltmeleri¶
Kamera ve sensörler:
480 satırdan uzun görüntülerde köşe tespiti (
find_keypoints()FAST/AGAST) düzeltildi — satır başına arabellek artık görüntü yüksekliğine göre boyutlandırılıyor.i.MX RT (OpenMV RT1060) üzerinde çerçeve senkronlu
snapshot()için FSYNC pin desteği eklendi ve RT1060’taki ters takılmış SPI4 MOSI/MISO pinleri düzeltildi.
Ekran ve video:
SPIDisplayyapıcı argüman sırası düzeltildi (bgr,byte_swap,triple_bufferyanlış parametrelere uygulanıyordu).Belirli bir dikdörtgenle bir görüntü çizerken oluşan TV-shield görüntü bozulması ve ölçeklenmiş çerçeveleri kaydederken yanlış MJPEG çerçeve sınırları düzeltildi.
Ağ:
WINC WiFi AP modu artık eski WEP-yalnızca kısıtlamasını zorlamıyor — açık ve WPA AP modları uygun PSK işlemesiyle çalışıyor.
Donanım ve kart desteği¶
OpenMV RT1060 — FSYNC pini ve düzeltilmiş SPI4 pinleri.
Arduino GIGA — QSPI güvenilirlik geçici çözümü; ST7701 ekranı donduruldu.
Arduino Nano 33 BLE Sense —
lsm9ds1IMU sürücüsü donduruldu.
Geriye dönük uyumsuz API değişiklikleri¶
v4.5.0 ile v4.5.1 arasındaki kullanıcıya görünür API uyumsuzlukları. 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:
minor — dar 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, sonundaki taşıma kontrol listesi bölümüne atlayın. Her commit hash’i GitHub’daki diff’ine bağlanır.
Image() yapıcısı ve display API’leri (minor)¶
image.Image yapıcısı anahtar kelime argümanlarına (height, pixformat, buffer=, copy_to_fb=) yeniden düzenlendi; artık mevcut bir bytearray/arabellekten bir görüntü oluşturabiliyor ve sıkıştırılmış formatlar için bir arabellek gerekiyor. display.write() yeniden düzenlendi: x_scale/y_scale artık bir float (ölçek oranı) veya int (piksel cinsinden hedef boyut) alıyor ve ayrı x_size/y_size anahtar kelimeleri kaldırıldı. WINC.connect() ilk konumsal argümanı essid → ssid olarak yeniden adlandırıldı ve WINC WiFi tarama sonuçları (ssid_bytes, bssid_bytes, channel, rssi, security, N) olarak değişti (SSID/BSSID artık bayt; BSSID artık biçimlendirilmiş bir MAC dizgesi değil).
Arka aydınlatma aralığı, ölçekleme ve yalnızca anahtar kelimeli argümanlar (behavior)¶
Display.backlight() artık 0–255 yerine 0–100 yoğunluk alıyor (0 = kapalı, 100 = tam), aralık dışında ValueError yükseltiyor. Tamsayı x_scale/y_scale değerleri artık bir hedef piksel boyutu yerine (float’larla aynı şekilde) çarpımsal bir ölçek faktörü olarak ele alınıyor — bu fir.snapshot()/draw_ir(), tof.snapshot()/ draw_depth(), display ve tv ölçeklemesini etkiliyor. sensor, fir, tof, tv, mjpeg, gif, imageio, tf ve audio modüllerindeki argüman ayrıştırması birleştirildi ve önceden konumsal olan birkaç seçeneği yalnızca anahtar kelimeli hale getirdi (adlar, varsayılanlar ve davranış aksi halde değişmedi).
Commit’ler: 391ec443f, 8bd25d6cd, 477312656, 08bf62a32, a4c0f20bf, 9b411a66d, 3d679f5a6, d15fc6b8d, 555e67ecd
Taşıma kontrol listesi¶
v4.5.1’e temiz bir taşıma için tipik iş şudur:
Image()oluşturmayı yeni anahtar kelime biçimine güncelleyin,display.write()çağrısınıx_size/y_sizekullanımından çıkarın veWINC.connect()essid→ssidolarak yeniden adlandırın (yeni bayt tabanlı tarama demetlerini işleyin) (yapıcı/display/WINC değişiklikleri).Display.backlight()çağrılarını 0–100’e yeniden ölçeklendirin, herhangi bir tamsayıx_scale/y_scalekullanımını yeniden kontrol edin ve önceden konumsal olan modül seçeneklerini anahtar kelime olarak geçirin (davranış değişiklikleri).