v1.1.0

v1.1.0, temel mimari sürümüdür: erken özel çevre birimi modüllerini standart MicroPython yerleşiklerinin lehine bırakır, görüntüleme API’sini image modülüne ve çerçeve hızı saatini time modülüne taşır ve yerleşik Haar kademeleri, get_pixel() / set_pixel(), OpenMV 2 kart desteği ve USB-CDC hata ayıklaması ekler. Yoğun bir şekilde kırıcı, API tanımlayan bir sürümdür — aşağıdaki kırıcı değişiklikleri okuyun.

Öne çıkanlar

  • MicroPython yerleşikleri — özel gpio / led / spi / socket / wlan / uart / file / select modülleri, MicroPython’un pyb / machine modüllerinin lehine kaldırıldı.

  • image modülü — Image() / HaarCascade() / tanımlayıcılar artık image modülündedir.

  • time.clock — çerçeve hızı saati time modülüne taşındı.

  • Yerleşik Haar kademeleriHaarCascade("frontalface") / HaarCascade("eye") (dosya gerekmez).

  • OpenMV 2 kart desteği ve USB-CDC hata ayıklaması.

  • Kırıcı: modül yapısı yeniden tanımlandı — kırıcı değişikliklere bakın.

Yeni özellikler

  • ImageImage.get_pixel(x, y) / set_pixel() ve img[i] alt simge piksel erişimi eklendi; yerleşik flash bellek Haar kademeleri (HaarCascade("frontalface") / HaarCascade("eye")) ve kademe aşamalarını sınırlamak için bir stages= anahtar sözcüğü; draw_string() gri tonlamalı görüntülerde çalışır.

  • Sensorsensor.set_colorbar(), sensor.set_saturation() ve QQVGA2 çerçeve boyutu eklendi.

  • mlxmlx.RAINBOW / mlx.GRAYSCALE çıktısı ile mlx.read(type).

  • Hata ayıklama — USB CDC üzerinden hata ayıklama, bir aygıt yazılımı fw_version() sorgusu, kart başına aygıt yazılımı (OpenMV 1 / OpenMV 2) ve oto-test / colorbar betikleri uygulandı; ölümcül/ayrıştırma hataları flash belleğe kaydedilir.

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

  • Bellek yetersizliği artık OSError yerine MemoryError yükseltir; betikler istisna yeniden yükseltme ile çalışır, böylece hatalar çökmek yerine yazdırılır; seri baud hızı yapılandırılabilir (varsayılan 921600); daha büyük bir flash bellek dosya sistemi; yakalama kararlılığı için sensör piksel saati 54 MHz’e düşürüldü; sensor.reset() yalnızca bir sensör yazılımsal sıfırlamasına dayanır.

Hata düzeltmeleri

  • Şablon eşleştirme, ilk nesneyi tekrar eden find_features(), SCCB/I2C atomik yazmaç erişimi, SD-kart yonga tespiti, yazılımsal-I2C pin eşlemesi, fast_cbrtf / LAB renk doğruluğu ve OpenMV 1 / 2 üzerindeki integral-görüntü / ortanca-filtre bellek kullanımı düzeltildi.

Donanım ve kart desteği

  • OpenMV 2 (STM32F427) kart desteği (ve OpenMV 3 donanım tasarımı); OpenMV 2’de sensör saati olarak MCO kullanıldı.

Kırıcı API değişiklikleri

v1.0.3-beta ile v1.1.0 arasındaki kullanıcı tarafından görülebilen 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 etkisiyle etiketlenmiştir:

  • major — özelliği kullanan çoğu betiği etkiler; kodu taşımanız gerekecek.

  • 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, sondaki geçiş kontrol listesine atlayın. Her commit hash’i GitHub’daki diff’ine bağlanır.

Özel çevre birimi modülleri kaldırıldı (major)

Erken özel clock / file / gpio / led / select / socket / spi / wlan / uart modülleri, MicroPython’un yerleşik pyb / machine çevre birimlerinin lehine kaldırıldı. Betikleri standart MicroPython eşdeğerlerine taşıyın (ör. pyb.Pin / pyb.LED / pyb.SPI / pyb.UART).

Commit’ler: 6d2fafa94

Görüntüleme API’si image modülüne taşındı (major)

Image(), HaarCascade() ve tanımlayıcı kaydet/yükle fonksiyonları artık çıplak yerleşikler değildir — yeni image modülünde yer alırlar. Betikler import image yapmalı ve image.Image / image.HaarCascade() kullanmalıdır.

Commit’ler: 54288c535

Çerçeve hızı saati time modülüne taşındı (major)

Bağımsız clock modülü kaldırıldı; çerçeve hızı saati artık time modülünde yer alır. import time ve clock = time.clock() kullanın — döndürülen nesne hâlâ .tick() / .fps() / .avg() / .reset() sağlar.

Commit’ler: a8928ca3b

/flash ve /sd artık sys.path içine eklenmiyor (behavior)

Birim etiketleri / kök dizin düzeltildi ve /flash ile /sd artık sys.path içine otomatik eklenmiyor. Bu konumlardan yardımcı modülleri çıplak adla içe aktaran betikler yolu açıkça eklemelidir (veya modülleri bulunabilecekleri yere yerleştirmelidir).

Commit’ler: 09e77b5da

Geçiş kontrol listesi

v1.1.0’a temiz bir geçiş için tipik iş şudur:

  1. Özel gpio / led / spi / uart / socket / wlan / file / select modüllerini MicroPython pyb / machine ile değiştirin (özel-modül kaldırma).

  2. import image yapın ve Image() / HaarCascade() öğelerine image. ön ekini ekleyin (image modülü taşıması).

  3. import time ve clock = time.clock() kullanın (clock taşıması).

  4. Yardımcı modülleri çıplak adla içe aktardıysanız /flash / /sd öğesini açıkça sys.path içine ekleyin (sys.path değişikliği).

Diğer tüm betikler değişmeden çalışır.