v3.7.0¶
v3.7.0 büyük bir sürümdür. Yeni bir engellemesiz geri çağırma (callback) API’siyle audio modülünü (Portenta H7 PDM mikrofonu), micro_speech TensorFlow konuşma tanıma modülünü, yepyeni bir paralel-RGB LCD denetleyicisini (HDMI çıkışı ve FT5X06 dokunmatik ile), piksel biçimi sabitleriyle birlikte bir image.flush() metodunu ve yeniden yazılmış bir image.draw_image() ölçekleme hattını ekler. Bazı eski yardımcı kütüphaneler ve görüntü metotları kaldırıldı ve yuv_to_* matematiği değişti — aşağıdaki bozucu değişiklikleri okuyun.
Öne çıkanlar¶
audiomodülü — engellemesiz birstart_streaming(callback)API’siyle Portenta H7 yerleşik PDM mikrofonu yakalama.micro_speech— bir TensorFlow micro-speech tanıma modülü.Yeni LCD denetleyicisi — paralel RGB ekran desteği, HDMI çıkışı (TFP410) ve FT5X06 dokunmatik.
image.draw_image()— tam bir ölçekleme/alfa/palet hattıyla yeniden yazıldı (x_scale/y_scale/hint/color_palette…).image.flush()ve piksel biçimi sabitleri (image.BINARY/GRAYSCALE/RGB565/YUV422/BAYER/JPEG).Bozucu: eski matematik yardımcı kütüphaneleri ve birkaç görüntü metodu kaldırıldı,
draw_image()/ LCD API’leri yeniden düzenlendi veyuv_to_*artık 128 çıkarmıyor — bozucu değişikliklere bakın.
Yeni özellikler¶
audio— PDM mikrofonu yakalama için yeni bir Portenta H7audiomodülü:audio.init(), engellemesizaudio.start_streaming(callback)veaudio.stop_streaming()(frekans Hz cinsinden belirtilir).micro_speech— TensorFlow konuşma tanıma için birMicroSpeechsınıfı,audio_callback()vemicro_speech()içeren yeni bir modül;listen()kayan pencere ortalaması kullanır ve sonuçları bir etiket listesiyle sınırlandırmak için birfilteranahtar sözcüğü kabul eder.LCD — paralel RGB ekran desteğine sahip yeni bir LCD denetleyicisi,
LCD_NONE/LCD_SHIELD/LCD_DISPLAYtürleri, birçok framesize sabiti,triple_buffer/framesize/refresh/bgr/deinit, genişletilmiş birdisplay, TFP410 üzerinden HDMI çıkışı ve FT5X06 dokunmatik ekran desteği.image.flush()— birimage.flush()metodu ve piksel biçimi sabitleri (image.BINARY/GRAYSCALE/RGB565/YUV422/BAYER/JPEG) eklendi.image.draw_image()— yeni bir ölçekleme hattıyla yeniden yazıldı:x_scale/y_scale/x_size/y_size,rgb_channel,alpha,color_palette,alpha_palettevehint, ayrıcaimage.AREA/BILINEAR/BICUBIC/CENTER/EXTRACT_RGB_CHANNEL_FIRST/APPLY_COLOR_PALETTE_FIRSTsabitleri ve yeni alfa karıştırma / renk tablosu / ölçekleme örnekleri.ImageReader.next_frame()gerçek zamanlı oynatma gecikmesini devre dışı bırakmak için birpauseanahtar sözcüğü kazandı.Portenta ses örnekleri (
audio_fft.py,micro_speech.py) ve bir ExtInt durdurma-modundan-uyandırma örneği eklendi.
Diğer değişiklikler ve iyileştirmeler¶
Yerleşik örnekler
scripts/examples/Arduino/altında yeniden düzenlendi; framebuffer artıkcopy_to_fb=Trueile görüntü yükleme/oluşturma sonrasında anında güncelleniyor (manuel flush gerekmiyor); daha fazla statik sürücü durumuna yer açmak için Portenta yığını (heap) biraz küçültüldü.
Hata düzeltmeleri¶
Kamera ve görüntüleme:
Yakalanan görüntülerde yer değiştirmiş kırmızı/mavi (RGB565 bayt sırası) düzeltildi, diğer çizim koduyla eşleşmesi için DMA2D çizim yuvarlaması, özyinelemeli ayırmalarda
fb_allocbozulması (find_blobs()) düzeltildi vetop_hat()/black_hat()hem ikili hem matematik işlemlerinin etkin olmasına bağlandı.
Ekran ve ses:
LCD shield çıkışı ve Portenta 1 kanallı mono ses modu düzeltildi.
Portenta:
Bir Ethernet/SDRAM sorununa geçici çözüm uygulandı (
rst_ethyüksek konuma çekildi) ve SDRAM zamanlama yapılandırması düzeltildi.
Donanım ve kart desteği¶
Arduino Portenta H7 — yerleşik PDM mikrofonu (SAI / PDM2PCM) ses yakalama.
LCD — yeni paralel-RGB ekran denetleyicisi (H7 yapısında LTDC etkinleştirildi), TFP410 üzerinden HDMI çıkışı ve FT5X06 dokunmatik ekran LCD desteği.
Bozucu API değişiklikleri¶
v3.6.9 ile v3.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:
minor — dar API; yalnızca onu kullanan betikleri etkiler.
davranış — aynı API, farklı sonuçlar; ince ayar yapılmış betikleri yeniden gözden geçirin.
Değişiklikler bu sırayla etkiye göre gruplandırılmıştır. Yalnızca kodunuzu taşımak istiyorsanız, sondaki geçiş kontrol listesine atlayın. Her commit hash’i GitHub’daki diff’ine bağlanır.
Eski matematik yardımcı kütüphaneleri kaldırıldı (minor)¶
mtx, rv, ulinalg, umatrix ve vec yardımcı kütüphaneleri, ulab lehine scripts/libraries içinden kaldırıldı. Bunlardan herhangi birini import eden betikler başarısız olur ve ulab kullanacak şekilde taşınmalıdır.
Commit’ler: 1f7da9272
remove_shadows() / chrominvar() / illuminvar() kaldırıldı (minor)¶
image.remove_shadows(), image.chrominvar() ve image.illuminvar() metotları, yerine bir şey konmadan silindi. Bu metotları çağıran betiklerin çağrıları kaldırması gerekir.
Commit’ler: 3173c2bb3
image.draw_image() imzası yeniden düzenlendi (minor)¶
image.draw_image() yeni bir ölçekleme hattının üzerine yeniden yazıldı. Eski konumsal alpha / tek scale argümanları ve önceki konumsal sıralama artık geçerli değil; yeni anahtar sözcük biçimini kullanın (x_scale= / y_scale= veya x_size= / y_size=, alpha=, color_palette=, hint= …).
Commit’ler: 3439f8824
LCD modülü yeniden yazıldı (minor)¶
lcd modülü yeni ekran denetleyicisi için yeniden yazıldı. lcd.init() artık bir ekran type değeri (LCD_NONE / LCD_SHIELD / LCD_DISPLAY) ve yeni anahtar sözcük argümanları alıyor ve sabit / API yüzeyi büyük ölçüde yeniden düzenlendi. Eski yalnızca-shield betikleri çoğunlukla hâlâ çalışıyor, ancak varsayılanlar ve davranış değişti — LCD betiklerinizi yeni type / framesize API’sine göre gözden geçirin.
Commit’ler: 185538207
yuv_to_* artık 128 çıkarmıyor (davranış)¶
image.yuv_to_binary() / yuv_to_grayscale() / yuv_to_rgb() / yuv_to_lab() artık Y tuple öğesini 128 çıkarmak yerine işaretsiz 0–255 değeri olarak ele alıyor. Çağıranların önceki ile aynı renkleri elde etmesi için Y değerini önceki −128 önyargısı olmadan geçirmesi gerekir.
Commit’ler: dcf141192
Geçiş kontrol listesi¶
v3.7.0’a temiz bir taşıma için tipik iş şudur:
mtx/rv/ulinalg/umatrix/veckullanımınıulabkütüphanesine taşıyın (matematik kütüphanesi kaldırma).image.remove_shadows()/chrominvar()/illuminvar()çağrılarını kaldırın (kaldırılan görüntü metotları).image.draw_image()çağrılarını yeni anahtar sözcük imzasına güncelleyin (draw_image yeniden düzenlemesi).LCD betiklerinizi yeni
lcdtype/framesizeAPI’sine göre gözden geçirin (LCD yeniden yazımı).Y değerini
yuv_to_*fonksiyonlarına geçirirken −128 önyargısını bırakın (yuv_to_* değişikliği).
Diğer tüm betikler değişmeden çalışır.