v4.5.9

v4.5.9, donanım JPEG kodlayıcısı olmayan kartlar için ham önizleme akışı, daha fazla RAM boşaltmak için donanım sensör kırpma, daha hızlı Helium hızlandırmalı debayering ve bir grup kamera/USB hata ayıklama düzeltmesi getirir. Ayrıca AprilTag sonuç API’sini ve varsayılan AprilTag aile kümesini değiştirir, bu yüzden aşağıdaki geriye dönük uyumsuz değişiklikleri okuyun.

Öne çıkanlar

  • Ham önizleme akışı — donanım JPEG kodlayıcısı olmayan kartlar artık önizlemede başarısız olmak yerine ölçeği küçültülmüş ham çerçeveleri IDE/ana makineye gönderebilir.

  • Donanım sensör kırpma — daha küçük bir çerçeve boyutu ayarlamak artık arabellek başına belleği azaltır ve fb_alloc() için RAM boşaltır.

  • Daha hızlı debayering — Bayer→RGB/gri tonlama dönüşümü artık Cortex-M55 kartlarında Helium-SIMD hızlandırmalı.

  • Geriye dönük uyumsuz: AprilTag sonuç nesnesi öznitelik erişimine geçti ve varsayılan AprilTag aile kümesi azaltıldı (AprilTag değişiklikleri ve AprilTag aile değişikliği bölümlerine bakın).

Yeni özellikler

  • Ham önizleme akışı — donanım JPEG kodlayıcısı olmayan kartlar JPEG’i atlayıp ölçeği küçültülmüş ham çerçeveleri (~60 KB ile sınırlı) IDE/ana makineye akıtabilir, böylece bu kartlarda canlı önizleme çalışır.

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

  • Donanım kırpma artık tüm STM32/NXP kartlarında (Giga, Nicla Vision, Portenta H7, OpenMV 1–4 / 4 Plus / Pure Thermal / RT1060) etkin. Bir çerçeve boyutu veya penceresi ayarlandığında, arabellek başına bellek kırpılmış boyuta düşürülür ve fb_alloc() için daha fazla RAM boşaltılır.

  • Daha hızlı debayering — Bayer→RGB565/gri tonlama dönüşümü artık Cortex-M55 kartlarında (ör. RT1060) paylaşılan bir SIMD JPEG kodlayıcı yoluyla ARM Helium/MVE SIMD hızlandırmalı.

  • Daha hızlı IDE hata ayıklama — hata ayıklayıcı artık mümkün olduğunda verileri doğrudan USB yığınından aktararak fazladan bir kopyalamadan kaçınıyor.

  • MicroPython alt modülü güncellendi — kartlar TinyUSB CDC arabelleğini yeniden boyutlandırabilir, ayrıca GC ve derleme kuralı düzeltmeleri.

Hata düzeltmeleri

Kamera ve sensörler:

  • OV7725 Bayer/CFA deseni (GBRG → BGGR) düzeltildi, OV7725 kameralarda debayered renk çıktısı düzeltildi; OV7725 artık Bayer piksel formatını raporluyor ve yalnızca Bayer sensörleri artık piksel başına 1 baytlık kaynak derinliği raporluyor.

  • Ham/Bayer çerçeve arabelleği (frame buffer) boyutu hesaplaması düzeltildi.

Makine öğrenmesi:

  • TensorFlow Lite Micro artık geçici tensör alanını boyutlandırırken GC yığınının boş belleğini kullanıyor, böylece sınırlı çerçeve arabelleği (frame buffer) belleği olan kartlarda model yükleme ayırma başarısızlıkları önleniyor.

Ana makine / IDE:

  • Daha güvenilir seri/hata ayıklama iş hacmi için TinyUSB kartlarında USB hata ayıklama CDC arabelleği işleme düzeltildi.

  • tools/pyopenmv: RGB565 bayt sırası düzeltildi, bir scale argümanı eklendi ve çerçeve arabelleği (frame buffer) aracı artık görüntü boyutunu/formatını raporluyor.

Donanım ve kart desteği

  • OV7725 artık Bayer piksel formatını raporluyor (doğru ham/CFA işleme).

  • STM32/NXP kart yelpazesinde donanım kırpma etkinleştirildi.

Geriye dönük uyumsuz API değişiklikleri

v4.5.8 ile v4.5.9 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 kitaplıkları.

Her değişiklik etkisiyle etiketlenmiştir:

  • minor — dar kapsamlı API; yalnızca onu kullanan betikleri etkiler.

  • behavior — aynı API, farklı sonuçlar; ayarlanmış 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 taşıma kontrol listesine atlayın. Her commit özeti GitHub’daki diff’ine bağlanır.

AprilTag sonuç nesneleri ve set_buffers (minor)

find_apriltags() öğesinden gelen AprilTag sonuçları artık verilerini yöntemler yerine öznitelikler olarak açığa çıkarıyor — tag.cx(), tag.family() vb. yerine tag.cx, tag.cy, tag.rotation, tag.family, tag.corners kullanın. Yeni name (aile adı dizesi) ve float hassasiyetli cxf / cyf erişimcileri eklendi.

Ayrı olarak, otomatik video arabelleği yapılandırması değişti: set_buffers, auto_adjust öğesinin yerini alıyor — çerçeve boyutunda en fazla üç arabellek (veya sığabilecek en fazla sayıda) kullanmak için -1, tüm çerçeve arabelleğini (frame buffer) kullanmak için 1 geçirin. Arabellek boyutlandırma artık piksel başına bit farkındadır, böylece 1 bpp formatları için daha fazla arabellek ayrılabilir.

Commit’ler: c0d4759f8, 7b36e4ef6

ble_advertising ve ağ üzerinden RPC kaldırıldı (minor)

ble_advertising yardımcı kitaplığı ve ble_temperature.py örneği kaldırıldı — bunun yerine aioble kullanın (bir aioble sıcaklık örneği sağlanmıştır). RPC ağ ana/ikincil sınıfları rpc.py içinden kaldırıldı.

Commit’ler: 6513276c1, 44a7e579d

AprilTag aileleri varsayılan olarak devre dışı (behavior)

AprilTag aileleri artık tek tek derleme zamanında seçilebilir ve kullanılmayanlar varsayılan olarak devre dışıdır. Standart kartlarda find_apriltags() artık, aygıt yazılımı diğer ailelerle yeniden derlenmedikçe yalnızca TAG36H11 ailesini tespit ediyor. Standart bir derlemede diğer ailelere (TAG16H5, TAG25H9, …) dayanan betikler bunları sessizce tespit etmeyi bırakacak.

Commit: effe12f2c

Taşıma kontrol listesi

v4.5.9’a temiz bir taşıma için tipik iş şudur:

  1. AprilTag sonuç erişimini yöntem çağrılarından özniteliklere değiştirin (tag.cx()tag.cx) ve auto_adjust öğesini set_buffers ile değiştirin (AprilTag / arabellek değişiklikleri).

  2. ble_advertising öğesini aioble ile değiştirin ve herhangi bir RPC ağ ana/ikincil kullanımını bırakın (kaldırmalar).

  3. Standart bir derlemede TAG36H11 dışındaki AprilTag ailelerini kullanıyorsanız, bunların artık varsayılan olarak tespit edilmediğini unutmayın (AprilTag aile değişikliği).