v3.4.2¶
A v3.4.2 nagy kiadás. Bemutatja az OpenMV Cam H7 Plus lapkát (SDRAM, hatalmas képkocka-puffer a nagy felbontású felvételhez), az OV5640 5 MP kamerát, az FDCAN támogatást, egy újraírt OV2640 vezérlőt, az Image.jpeg_encode_for_ide() metódust, valamint új pid / modbus könyvtárakat. A WINC1500 ifconfig() API és a find_apriltags() alapértelmezései megváltoztak — olvasd el az alábbi megszakító változásokat.
Kiemelések¶
OpenMV Cam H7 Plus — új lapka SDRAM-vezérlővel és egy ~31 MB-os képkocka-pufferrel a nagy felbontású felvételhez.
OV5640 5 MP kameravezérlő I2C-alapú felismeréssel.
FDCAN perifériatámogatás, CAN példával.
OV2640 újraírás — egyenesen álló képek, működő automatikus funkciók, JPEG pillanatkép és egy új
sensor.XGAképkockaméret.IDE JPEG —
Image.jpeg_encode_for_ide()és nagy JPEG-ek automatikus továbbítása az IDE felé.Megszakító változás: a WINC1500
WLAN.ifconfig()szemantikája megváltozott, azMQTTClient.wait_msg()többé nem dob kivételt üres fogadás esetén, és afind_apriltags()alapértelmezetten 4 irányú összefüggőséget használ — lásd a megszakító változásokat.
Új funkciók¶
WiFi — hozzáadtuk a
WLAN.netinfo()metódust (amely(rssi, security, ssid, mac, ip)értéket ad vissza) és a WINC1500 statikus IP-konfigurációt aWLAN.ifconfig()segítségével, egy statikus IP-példával.FDCAN — hozzáadtuk az FDCAN perifériatámogatást és egy
can.pypéldát.IDE JPEG — hozzáadtuk az
Image.jpeg_encode_for_ide()/Image.jpeg_encoded_for_ide()metódusokat; a nagy JPEG-ek automatikusan az IDE felé továbbítódnak, ha a puffer túl kicsi.Könyvtárak — hozzáadtunk egy
pidPID-szabályozó könyvtárat, egymodbusRTU slave könyvtárat (egy 32-modbus példával), valamint egySSD1306_I2Cosztályt az I2C OLED kijelzőkhöz.Példák — hozzáadtuk az MQTT feliratkozást (
mqtt_sub.py, azmqtt.pyátnevezvemqtt_pub.py-ra).Érzékelő — hozzáadtuk a
sensor.XGA(1024x768) képkockaméretet; aprint()/repr()egy Bayer képen most már JSON metaadatokat ad ki.
Egyéb változások és fejlesztések¶
Újraírtuk az OV2640 vezérlőt (egyenesen álló képek, működő automatikus funkciók, JPEG pillanatkép elfogadva); engedélyeztük a nagy felbontású apriltageket (megszünteti a <64K-képpontos ROI-korlátot a képes lapkákon); az OV2640 PCLK-t 72 MHz-ről 36 MHz-re csökkentettük.
Hibajavítások¶
Képkezelés:
Javítottunk egy bináris műveleteknél fellépő kép végén túli túlcsordulást, a printf/lebegőpontos pontosságot a
find_apriltags()/find_datamatrices()/find_lines()kimenetében, a hibás JSON-t a foltprint()kimenetében, afind_apriltags()működését vflippelt / hmirrorozott képeken, afind_lbp()ROI-hibát, a JPEG-tömörítés időtúllépését nagy felbontásoknál, valamint azfb_allocmemóriastatisztika-jelentését.
Kamera és érzékelők:
Javítottuk a JPEG-mód gyorsítótár-karbantartását és puffer-igazítását, a maximális DCMI átviteli méretet, az OV2640 regiszterkonfigurációt és felbontásokat, az érzékelő leállított állapotának visszaállítását reset után, valamint az OV7725 képminőséget (kameránkénti sávszűrő hozzáadásával).
Hálózat és rendszer:
Javítottuk a
socket.accept()hardfaultját/hibáját, a WINC1500 socket időtúllépés-kezelését (a 0 időtúllépés mostantól blokkoló; a socketek nem záródnak be recv időtúllépésekor), a H7 mélyalvást, az RTC-t (upstream frissítés és a H7 EXTI / ébresztő-időzítő / szoftveres reset problémái), valamint apyb.Servoidőzítő IRQ-ját (a Servo nem működött).
Hardver- és lapkatámogatás¶
OpenMV Cam H7 Plus (OPENMV4R) — új lapka SDRAM-vezérlővel, amely egy nagy (~31 MB) képkocka-puffert tesz lehetővé.
OV5640 — új 5 MP kameravezérlő I2C-alapú felismeréssel.
FDCAN — perifériatámogatás.
Megszakító API-változások¶
A felhasználó számára látható API-változások a v3.4.1 és a v3.4.2 között. Hatókör: Python C-modulok a modules/ könyvtárban és Python könyvtárak a scripts/libraries/ könyvtárban.
Minden változás meg van jelölve a hatásával:
major — a funkciót használó legtöbb szkriptet érinti; portolnod kell a kódot.
minor — szűk API; csak az azt használó szkripteket érinti.
behavior — azonos API, eltérő eredmények; ellenőrizd újra a hangolt szkripteket.
A változások ebben a sorrendben hatás szerint vannak csoportosítva. Ha csak portolni szeretnéd a kódodat, ugorj a végén található migrációs ellenőrzőlistára. Minden commit-hash a hozzá tartozó diffre hivatkozik a GitHubon.
A WINC1500 WLAN.ifconfig() szemantikája megváltozott (major)¶
A WINC1500 WiFi shielden a WLAN.ifconfig() többé nem a régi 5 elemű [rssi, security, ssid, mac, ip] listát adja vissza. Most már egy (ip, subnet, gateway, dns) tuple-t kér le/állít be (és támogatja a statikus IP-konfigurációt), megfelelve a szabványos network felületnek. Az olyan kódnak, amely a kapcsolati adatokat az ifconfig() metódusból olvasta ki, át kell állnia az új WLAN.netinfo() metódusra ((rssi, security, ssid, mac, ip)).
Commitok: e685b484a
Az MQTTClient.wait_msg() None értéket ad vissza üres fogadás esetén (minor)¶
A mqtt könyvtár MQTTClient.wait_msg() metódusa most már None értéket ad vissza üres fogadás esetén, ahelyett, hogy OSError(-1) kivételt dobna. Az olyan kódnak, amely az OSError(-1) kivételt kapta el a lezárt/üres socket észleléséhez, ehelyett a None visszatérési értéket kell ellenőriznie.
Commitok: 76239ea89
Migrációs ellenőrzőlista¶
A v3.4.2-re való tiszta portoláshoz a tipikus teendők a következők:
Cseréld le a WINC1500
WLAN.ifconfig()kapcsolati-adat olvasásait aWLAN.netinfo()metódusra (az ifconfig változása).Ellenőrizd az
MQTTClient.wait_msg()Nonevisszatérési értékét azOSError(-1)elkapása helyett (a wait_msg változása).Hangold újra az AprilTag-észlelést, vagy fordíts az
IMLIB_ENABLE_FINE_APRILTAGSdefinícióval, ha 8 irányú összefüggőségre van szükséged (a find_apriltags változása).
Minden más szkript változatlanul fut.