v4.5.0¶
v4.5.0 büyük bir sürümdür. Eski lcd modülü, ayrı SPI / paralel / DSI / TV arka uçlarına sahip birleşik bir display modülüyle değiştirildi, Arduino Giga kartı eklendi ve bir dizi ekran, dokunmatik ve sensör kontrolü özelliği geldi. Birkaç geriye dönük uyumsuz değişiklik var — aşağıda okuyun.
Öne çıkanlar¶
Yeni
displaymodülü —lcdmodülünü birleşikSPIDisplay/RGBDisplay/DSIDisplay/TVDisplayarka uçlarıyla değiştirir.Arduino Giga kart desteği.
Yeni ekran/dokunmatik donanımı — STM32 H7 üzerinde DSI ekranlar, TFP410 DVI/HDMI, HDMI/DVI CEC, ST7701 RGB paneller ve GT911 / FT5X06 kapasitif dokunmatik.
Yeni sensör kontrolleri — siyah seviyesi kalibrasyonu, gece modu ve
sensor.disable_delays(); çok daha hızlı transpoze (~5x) ve morfoloji (~2.5x).Uyumsuz:
lcd→display,lcd_touch→ft5x06, yeniden adlandırılan LED pinleri — geriye dönük uyumsuz değişikliklere bakın.
Yeni özellikler¶
Ekran arka uçları —
DisplayData(DDC/EDID okuması), birTFP410DVI/HDMI serileştiricisi, STM32 H7 üzerinde MIPI-DSI ekran desteği, bir HDMI/DVIcecsürücüsü veST7701RGB panel başlatma yardımcısına sahip bir Pythondisplaykütüphanesi.Dokunmatik — yeni
GT9115 noktalı kapasitif dokunmatik sürücüsü (read_points()/read_id()/reset()).machineuzantısı — birmachine.LEDyardımcı sınıfına sahip dondurulabilir birmachinekütüphanesi ve yeni birmachine.LED.value([v])metodu.Sensör kontrolleri —
sensor.set_auto_blc(enable, regs=None)/sensor.get_blc_regs()(siyah seviyesi kalibrasyonu),IOCTL_SET_NIGHT_MODE/IOCTL_GET_NIGHT_MODE(OV7725/OV5640), OV7670 hmirror/vflip ve daha hızlı yeniden yapılandırma için kamera oturma gecikmelerini atlayansensor.disable_delays().i.MX RT —
sensor.set_xclk_frequency()artık herhangi bir frekansı kabul ediyor (en yakın geçerli CSI bölücüye yuvarlayarak) ve SPIlcd/tv/firmodülleri RT1060’ta etkinleştirildi.
Diğer değişiklikler ve iyileştirmeler¶
Çok daha hızlı görüntü işlemleri — görüntü transpozu ~5x ve
image.morph()~2.5x daha hızlı.Kamera veri yolu yoklaması artık birden fazla cihaz adresini tarayıp doğrulayarak veri yolunda birden çok cihaz bulunan kartları destekliyor.
Hata düzeltmeleri¶
Kamera ve sensörler:
Birçok sensörde (HM01B0, HM0360, MT9M114, MT9V0xx, OV2640, OV5640, OV7690, OV7725, OV9650, PAJ6100) kazanç hesaplama doğruluğu, MT9V0xx pozlama / sütun gruplama, OV5640 pozlama ve OV7670 VGA pencereleme düzeltildi.
STM32 artık bozuk görüntüler döndürmek yerine bozuk transpoze çerçevelerini düşürüyor.
Görüntü işleme:
Görüntü / FIR / ToF / LCD / TV işlemlerini etkileyen bir tamsayı taşması, Cortex-M4’te geçersiz
vcvtm/vcvtpkayan nokta talimatları (fast_floorf/fast_ceilf),image.to_*()dönüşümünde yerinde ölçekleme hatası ve DMA2D çizim önbelleği bozulması düzeltildi.
Ekran ve sistem:
DSI ekran zamanlaması ve dikey mod, Nicla Vision / Portenta H7 üzerinde
micro_speechlisten(), STM32 kullanıcı anahtarı (pyb.Switch) ve I2C4 veri yolu desteği düzeltildi.
Donanım ve kart desteği¶
Arduino Giga — adlandırılmış Arduino pin eşlemeleri ve tam bir örnek setiyle birlikte yeni kart.
OpenMV RT1060 — SPI LCD, TV ve FIR termal modülleri etkinleştirildi.
Arduino Nano 33 BLE Sense — LED pinleri.
Geriye dönük uyumsuz API değişiklikleri¶
v4.4.3 ile v4.5.0 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:
major — onu kullanan çoğu betiğin düzenlenmesi gerekir.
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.
lcd modülü display ile değiştirildi (major)¶
Eski lcd modülü kaldırıldı ve ortak bir API’ye sahip SPIDisplay (SPI LCD shield), RGBDisplay / paralel, DSIDisplay (MIPI-DSI) ve TVDisplay arka uçlarına ayrılmış birleşik bir display modülüyle değiştirildi. Betiklerin import lcd ifadesinden display modülüne geçmesi ve uygun arka uç nesnesini oluşturması gerekir.
Dokunmatik modülü, LED pinleri ve birlikte gelen sürücüler (minor)¶
Genel lcd_touch modülü, özel bir FT5X06 kapasitif dokunmatik sürücü modülüyle değiştirildi. LED pin adları tüm kartlar arasında tutarlılık için yeniden adlandırıldı (eski LED pin adlarına başvuran betiklerin güncellenmesi gerekir). Birlikte gelen hts221 / lps22h / lsm6dsox / lsm9ds1 IMU/sensör sürücüleri, API’leri biraz farklı olan upstream micropython-lib sürümleriyle değiştirildi (birlikte gelen örnekler buna uyacak şekilde güncellendi).
Desteklenmeyen sensör kontrolleri artık uyarı veriyor (behavior)¶
sensor.set_auto_gain(), set_auto_exposure(), set_auto_whitebal() ve set_auto_blc() artık aktif sensör kontrolü desteklemediğinde bir RuntimeError yükseltmek yerine bir uyarı yazdırıyor, böylece aynı betik farklı yeteneklere sahip sensörlerde çalışabiliyor. İstisnayı yakalamaya dayanan kodun güncellenmesi gerekir.
Commit: dbf4996f2
Taşıma kontrol listesi¶
v4.5.0’a temiz bir taşıma için tipik iş şudur:
import lcdkullanımını yenidisplaymodülü ve uygun arka uçla değiştirin (display modülü değişikliği).lcd_touchifadesiniFT5X06ile değiştirin, eski LED pin adlarını güncelleyin ve upstream IMU sürücüsü API’lerini yeniden kontrol edin (dokunmatik/pin/sürücü değişiklikleri).Desteklenmeyen sensör kontrolleri etrafındaki
try/except RuntimeErrorifadesini yetenek kontrolleriyle değiştirin (sensör kontrolü değişikliği).