v3.4.2

v3.4.2 je veliko izdanje. Uvodi OpenMV Cam H7 Plus (SDRAM, golemi framebuffer za snimanje visoke razlučivosti), OV5640 5 MP kameru, podršku za FDCAN, prepisani OV2640 upravljač, Image.jpeg_encode_for_ide() te nove biblioteke pid / modbus. API ifconfig() za WINC1500 i zadane vrijednosti find_apriltags() su se promijenile — pročitajte nekompatibilne promjene u nastavku.

Istaknuto

  • OpenMV Cam H7 Plus — nova pločica s SDRAM upravljačem i framebufferom od ~31 MB za snimanje visoke razlučivosti.

  • Upravljač za OV5640 5 MP kameru s detekcijom putem I2C.

  • Podrška za FDCAN periferiju, s CAN primjerom.

  • Prepisivanje OV2640 — uspravne slike, ispravne automatske funkcije, JPEG snimka i nova sensor.XGA veličina sličice.

  • IDE JPEGImage.jpeg_encode_for_ide() i automatski prijenos velikih JPEG-ova u IDE.

  • Nekompatibilno: semantika WINC1500 WLAN.ifconfig() se promijenila, MQTTClient.wait_msg() više ne baca iznimku pri praznom primanju, a find_apriltags() se zadano koristi 4-smjernom povezanošću — vidi nekompatibilne promjene.

Nove značajke

  • WiFi — dodani su WLAN.netinfo() (vraća (rssi, security, ssid, mac, ip)) i konfiguracija statičke IP adrese za WINC1500 putem WLAN.ifconfig(), s primjerom statičke IP adrese.

  • FDCAN — dodana je podrška za FDCAN periferiju i primjer can.py.

  • IDE JPEG — dodani su Image.jpeg_encode_for_ide() / Image.jpeg_encoded_for_ide(); veliki JPEG-ovi se automatski prenose u IDE kad je međuspremnik premalen.

  • Biblioteke — dodana je biblioteka PID regulatora pid, biblioteka RTU slave modbus (s primjerom 32-modbus) te klasa SSD1306_I2C za I2C OLED zaslone.

  • Primjeri — dodan je MQTT pretplatnik (mqtt_sub.py, uz preimenovanje mqtt.py u mqtt_pub.py).

  • Senzor — dodana je sensor.XGA (1024x768) veličina sličice; print() / repr() na Bayer slici sada ispisuje JSON metapodatke.

Ostale promjene i poboljšanja

  • Prepisan je OV2640 upravljač (uspravne slike, ispravne automatske funkcije, prihvaćena JPEG snimka); omogućeni su apriltagovi visoke razlučivosti (uklanja ograničenje ROI-ja od <64K piksela na sposobnim pločicama); snižen je OV2640 PCLK s 72 MHz na 36 MHz.

Ispravci grešaka

Obrada slike:

  • Ispravljeni su prelijevanje preko kraja slike u binarnim operacijama, printf/preciznost float vrijednosti u izlazu find_apriltags() / find_datamatrices() / find_lines(), neispravan JSON u print() mrlje, find_apriltags() na vflipped / hmirrored slikama, greška ROI-ja u find_lbp(), istek vremena JPEG kompresije za velike razlučivosti te izvještavanje o statistici memorije fb_alloc.

Kamera i senzori:

  • Ispravljeni su održavanje cachea u JPEG načinu i poravnanje međuspremnika, najveća veličina DCMI prijenosa, konfiguracija registara i razlučivosti OV2640, vraćanje stanja gašenja senzora pri resetiranju te kvaliteta slike OV7725 (dodan je filtar protiv pruga po kameri).

Mreža i sustav:

  • Ispravljeni su hardfault/greška socket.accept(), rukovanje istekom vremena utičnice WINC1500 (istek vremena 0 sada je blokirajući; utičnice se ne zatvaraju pri isteku vremena primanja), H7 duboko spavanje, RTC (ažuriranje uzvodno te problemi s H7 EXTI / mjeračem buđenja / mekim resetom) te mjerač IRQ za pyb.Servo (Servo nije bio funkcionalan).

Hardver i podrška za pločice

  • OpenMV Cam H7 Plus (OPENMV4R) — nova pločica s SDRAM upravljačem koji omogućuje velik (~31 MB) framebuffer.

  • OV5640 — novi upravljač za 5 MP kameru s detekcijom putem I2C.

  • FDCAN — podrška za periferiju.

Nekompatibilne promjene API-ja

Korisniku vidljive nekompatibilnosti API-ja između v3.4.1 i v3.4.2. Opseg: Python C-moduli u modules/ i Python biblioteke u scripts/libraries/.

Svaka je promjena označena svojim utjecajem:

  • major — utječe na većinu skripti koje su koristile značajku; morat ćete prilagoditi kod.

  • minor — uzak API; utječe samo na skripte koje su ga koristile.

  • behavior — isti API, drugačiji rezultati; ponovno provjerite ugođene skripte.

Promjene su grupirane prema utjecaju tim redoslijedom. Ako samo želite prilagoditi svoj kod, prijeđite na kontrolni popis za migraciju na kraju. Svaki hash commita vodi na svoj diff na GitHubu.

Semantika WINC1500 WLAN.ifconfig() se promijenila (major)

Na WINC1500 WiFi shieldu, WLAN.ifconfig() više ne vraća staru listu s 5 elemenata [rssi, security, ssid, mac, ip]. Sada dohvaća/postavlja torku (ip, subnet, gateway, dns) (i podržava konfiguraciju statičke IP adrese), u skladu sa standardnim network sučeljem. Kod koji je čitao informacije o vezi iz ifconfig() mora prijeći na novu metodu WLAN.netinfo() ((rssi, security, ssid, mac, ip)).

Commiti: e685b484a

MQTTClient.wait_msg() vraća None pri praznom primanju (minor)

Metoda MQTTClient.wait_msg() biblioteke mqtt sada vraća None pri praznom primanju umjesto da baca OSError(-1). Kod koji je hvatao OSError(-1) za otkrivanje zatvorene/prazne utičnice mora umjesto toga provjeravati povratnu vrijednost None.

Commiti: 76239ea89

find_apriltags() zadano koristi 4-smjernu povezanost (behavior)

image.find_apriltags() sada zadano koristi 4-smjernu (umjesto 8-smjerne) povezanost rubova — brže je, ali otkriveni se tagovi mogu neznatno razlikovati. Da biste vratili prethodnu točnost, izgradite firmware s definiranim IMLIB_ENABLE_FINE_APRILTAGS.

Commiti: c1d9bec2c

Kontrolni popis za migraciju

Za čistu prilagodbu na v3.4.2 tipičan posao je:

  1. Zamijenite čitanja informacija o vezi iz WINC1500 WLAN.ifconfig() s WLAN.netinfo() (promjena ifconfig).

  2. Provjerite MQTTClient.wait_msg() za povratnu vrijednost None umjesto hvatanja OSError(-1) (promjena wait_msg).

  3. Ponovno ugodite detekciju AprilTag-ova ili izgradite s IMLIB_ENABLE_FINE_APRILTAGS ako vam treba 8-smjerna povezanost (promjena find_apriltags).

Sve ostale skripte rade nepromijenjeno.