v3.4.2

v3.4.2 büyük bir sürümdür. OpenMV Cam H7 Plus (SDRAM, yüksek çözünürlüklü yakalama için devasa çerçeve arabelleği (frame buffer)), OV5640 5 MP kamera, FDCAN desteği, yeniden yazılmış bir OV2640 sürücüsü, Image.jpeg_encode_for_ide() ve yeni pid / modbus kütüphanelerini sunar. WINC1500 ifconfig() API’si ve find_apriltags() varsayılanları değişti — aşağıdaki kırıcı değişiklikleri okuyun.

Öne çıkanlar

  • OpenMV Cam H7 Plus — SDRAM sürücüsü ve yüksek çözünürlüklü yakalama için ~31 MB çerçeve arabelleği (frame buffer) bulunan yeni kart.

  • I2C tabanlı algılamaya sahip OV5640 5 MP kamera sürücüsü.

  • Bir CAN örneğiyle birlikte FDCAN çevre birimi desteği.

  • OV2640 yeniden yazımı — düzgün yönlendirilmiş görüntüler, çalışan otomatik fonksiyonlar, JPEG anlık görüntü ve yeni bir sensor.XGA çerçeve boyutu.

  • IDE JPEGImage.jpeg_encode_for_ide() ve büyük JPEG’lerin IDE’ye otomatik iletimi.

  • Kırıcı: WINC1500 WLAN.ifconfig() semantiği değişti, MQTTClient.wait_msg() artık boş alımda hata fırlatmıyor ve find_apriltags() varsayılan olarak 4 yönlü bağlanırlığa geçti — kırıcı değişikliklere bakın.

Yeni özellikler

  • WiFiWLAN.netinfo() ((rssi, security, ssid, mac, ip) döndürür) ve WLAN.ifconfig() aracılığıyla WINC1500 statik IP yapılandırması, bir statik IP örneğiyle birlikte eklendi.

  • FDCAN — FDCAN çevre birimi desteği ve bir can.py örneği eklendi.

  • IDE JPEGImage.jpeg_encode_for_ide() / Image.jpeg_encoded_for_ide() eklendi; arabellek çok küçük olduğunda büyük JPEG’ler IDE’ye otomatik iletilir.

  • Kütüphaneler — bir pid PID denetleyici kütüphanesi, bir modbus RTU slave kütüphanesi (bir 32-modbus örneğiyle) ve I2C OLED ekranlar için bir SSD1306_I2C sınıfı eklendi.

  • Örnekler — MQTT subscribe (mqtt_sub.py, mqtt.py mqtt_pub.py olarak yeniden adlandırıldı) eklendi.

  • Sensörsensor.XGA (1024x768) çerçeve boyutu eklendi; bir Bayer görüntüsünde print() / repr() artık JSON meta verisi çıktısı veriyor.

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

  • OV2640 sürücüsü yeniden yazıldı (düzgün yönlendirilmiş görüntüler, çalışan otomatik fonksiyonlar, JPEG anlık görüntü kabul edildi); yüksek çözünürlüklü apriltag’ler etkinleştirildi (yetkin kartlarda <64K piksel ROI sınırını kaldırır); OV2640 PCLK 72 MHz’den 36 MHz’e düşürüldü.

Hata düzeltmeleri

Görüntüleme:

  • Bir binary-ops görüntü-sonu-aşımı taşması, find_apriltags() / find_datamatrices() / find_lines() çıktısındaki printf/float hassasiyeti, nokta (blob) print() içindeki bozuk JSON, vflip/hmirror uygulanmış görüntülerde find_apriltags(), find_lbp() ROI hatası, büyük çözünürlükler için JPEG sıkıştırma zaman aşımı ve fb_alloc bellek istatistikleri raporlaması düzeltildi.

Kamera ve sensörler:

  • JPEG modu önbellek bakımı ve arabellek hizalaması, maksimum DCMI aktarım boyutu, OV2640 yazmaç yapılandırması ve çözünürlükleri, sıfırlamada sensör kapatma durumunun geri yüklenmesi ve OV7725 görüntü kalitesi (kamera başına bir bantlanma filtresi eklendi) düzeltildi.

Ağ ve sistem:

  • socket.accept() hardfault/hatası, WINC1500 soket zaman aşımı işleme (zaman aşımı 0 artık bloke edici; soketler recv zaman aşımında kapatılmıyor), H7 derin uyku, RTC (yukarı akış güncellemesi ve H7 EXTI / wakeup-timer / soft-reset sorunları) ve pyb.Servo zamanlayıcı IRQ’su (Servo işlevsizdi) düzeltildi.

Donanım ve kart desteği

  • OpenMV Cam H7 Plus (OPENMV4R) — büyük (~31 MB) bir çerçeve arabelleğini (frame buffer) etkinleştiren bir SDRAM sürücüsüne sahip yeni kart.

  • OV5640 — I2C tabanlı algılamaya sahip yeni 5 MP kamera sürücüsü.

  • FDCAN — çevre birimi desteği.

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

v3.4.1 ile v3.4.2 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:

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

  • minor — dar bir 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, sondaki taşıma kontrol listesine atlayın. Her commit hash’i GitHub’daki diff’ine bağlanır.

WINC1500 WLAN.ifconfig() semantiği değişti (major)

WINC1500 WiFi shield’da WLAN.ifconfig() artık eski 5 öğeli [rssi, security, ssid, mac, ip] listesini döndürmüyor. Artık standart network arayüzüyle eşleşecek şekilde bir (ip, subnet, gateway, dns) demeti alıyor/ayarlıyor (ve statik IP yapılandırmasını destekliyor). Bağlantı bilgisini ifconfig() üzerinden okuyan kod yeni WLAN.netinfo() yöntemine ((rssi, security, ssid, mac, ip)) geçmelidir.

Commit’ler: e685b484a

MQTTClient.wait_msg() boş alımda None döndürüyor (minor)

mqtt kütüphanesinin MQTTClient.wait_msg() fonksiyonu artık boş bir alımda OSError(-1) fırlatmak yerine None döndürüyor. Kapalı/boş bir soketi algılamak için OSError(-1) yakalayan kod, bunun yerine bir None dönüş değerini kontrol etmelidir.

Commit’ler: 76239ea89

find_apriltags() varsayılan olarak 4 yönlü bağlanırlığa geçti (behavior)

image.find_apriltags() artık varsayılan olarak 4 yönlü (8 yönlü yerine) kenar bağlanırlığı kullanıyor — daha hızlı, ancak tespit edilen etiketler biraz farklı olabilir. Önceki doğruluğu geri getirmek için aygıt yazılımını (firmware) IMLIB_ENABLE_FINE_APRILTAGS tanımlı olarak derleyin.

Commit’ler: c1d9bec2c

Taşıma kontrol listesi

v3.4.2’ye temiz bir geçiş için tipik işler şunlardır:

  1. WINC1500 WLAN.ifconfig() bağlantı bilgisi okumalarını WLAN.netinfo() ile değiştirin (ifconfig değişikliği).

  2. OSError(-1) yakalamak yerine MQTTClient.wait_msg() fonksiyonunu bir None dönüşü için kontrol edin (wait_msg değişikliği).

  3. 8 yönlü bağlanırlığa ihtiyacınız varsa AprilTag tespitini yeniden ince ayarlayın veya IMLIB_ENABLE_FINE_APRILTAGS ile derleyin (find_apriltags değişikliği).

Diğer tüm betikler değişiklik yapılmadan çalışır.