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üklemedraw_image() / display.write() bir dosya yolu dizgesi kabul ediyor.

  • Arka aydınlatma kontrolü — yeni DACBacklight / PWMBacklight sınıfları ve bir ekran backlight= argümanı.

  • Uyumsuz: Image() yapıcısı, display API’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 pratik image.ROTATE_90 / ROTATE_180 / ROTATE_270.

  • draw_image() en-boy ipuçları — sığdırma / genişletme / esnetme için image.SCALE_ASPECT_KEEP / SCALE_ASPECT_EXPAND / SCALE_ASPECT_IGNORE.

  • Palet sabitleriimage.PALETTE_RAINBOW ve image.PALETTE_IRONBOW (image modülüne taşındı).

  • Geniş görüş alanı — yeni sensor.IOCTL_SET_FOV_WIDE / IOCTL_GET_FOV_WIDE ioctl’leri (GC2145 üzerinde, 5x’e kadar sensör ölçekleme).

  • Diskten yüklemedraw_image() ve display.write() bir kaynak görüntü dosya yolu dizgesi kabul ederek onu doğrudan depolamadan yükler.

  • Arka aydınlatma denetleyicileri — yeni DACBacklight ve PWMBacklight sınıfları (display modülünden içe aktarılabilir) ve SPI/paralel ekran yapıcılarında yalnızca anahtar kelimeli bir backlight= argümanı.

Diğer değişiklikler ve iyileştirmeler

  • ST7701 DSI ekran sürücüsü kendi st7701.py modülüne taşındı (hâlâ from display import * ile içe aktarılabilir) ve Arduino Giga’da donduruldu; lsm9ds1 IMU 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:

  • SPIDisplay yapıcı argüman sırası düzeltildi (bgr, byte_swap, triple_buffer yanlış 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 Senselsm9ds1 IMU 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ı essidssid 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).

Commit’ler: 6752c95ac, 161737092, 8178c237c, b6cdf8de1

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:

  1. Image() oluşturmayı yeni anahtar kelime biçimine güncelleyin, display.write() çağrısını x_size/y_size kullanımından çıkarın ve WINC.connect() essidssid olarak yeniden adlandırın (yeni bayt tabanlı tarama demetlerini işleyin) (yapıcı/display/WINC değişiklikleri).

  2. Display.backlight() çağrılarını 0–100’e yeniden ölçeklendirin, herhangi bir tamsayı x_scale/y_scale kullanımını yeniden kontrol edin ve önceden konumsal olan modül seçeneklerini anahtar kelime olarak geçirin (davranış değişiklikleri).