v3.4.2¶
v3.4.2 adalah rilis besar. Versi ini memperkenalkan OpenMV Cam H7 Plus (SDRAM, framebuffer besar untuk pengambilan resolusi tinggi), kamera OV5640 5 MP, dukungan FDCAN, penulisan ulang driver OV2640, Image.jpeg_encode_for_ide(), serta library pid / modbus baru. API ifconfig() WINC1500 dan default find_apriltags() berubah — baca perubahan yang merusak di bawah ini.
Sorotan¶
OpenMV Cam H7 Plus — board baru dengan driver SDRAM dan framebuffer ~31 MB untuk pengambilan resolusi tinggi.
Driver kamera OV5640 5 MP dengan deteksi berbasis I2C.
Dukungan periferal FDCAN, dengan contoh CAN.
Penulisan ulang OV2640 — citra tegak, fungsi auto yang berfungsi, snapshot JPEG, dan ukuran bingkai
sensor.XGAbaru.IDE JPEG —
Image.jpeg_encode_for_ide()dan auto-transmit JPEG besar ke IDE.Merusak: semantik
WLAN.ifconfig()WINC1500 berubah,MQTTClient.wait_msg()tidak lagi memunculkan pengecualian pada recv kosong, danfind_apriltags()default ke konektivitas 4 arah — lihat perubahan yang merusak.
Fitur baru¶
WiFi — menambahkan
WLAN.netinfo()(mengembalikan(rssi, security, ssid, mac, ip)) dan konfigurasi IP statis WINC1500 melaluiWLAN.ifconfig(), dengan contoh IP statis.FDCAN — menambahkan dukungan periferal FDCAN dan contoh
can.py.IDE JPEG — menambahkan
Image.jpeg_encode_for_ide()/Image.jpeg_encoded_for_ide(); JPEG besar secara otomatis ditransmisikan ke IDE ketika buffer terlalu kecil.Library — menambahkan library PID-controller
pid, library slave RTUmodbus(dengan contoh 32-modbus), dan kelasSSD1306_I2Cuntuk layar OLED I2C.Contoh — menambahkan subscribe MQTT (
mqtt_sub.py, denganmqtt.pydiubah namanya menjadimqtt_pub.py).Sensor — menambahkan ukuran bingkai
sensor.XGA(1024x768);print()/repr()pada citra Bayer kini menghasilkan metadata JSON.
Perubahan dan peningkatan lainnya¶
Menulis ulang driver OV2640 (citra tegak, fungsi auto yang berfungsi, snapshot JPEG diterima); mengaktifkan apriltags resolusi tinggi (menghapus batas ROI <64K piksel pada board yang mampu); menurunkan PCLK OV2640 dari 72 MHz ke 36 MHz.
Perbaikan bug¶
Pencitraan:
Memperbaiki overflow binary-ops melewati akhir citra, presisi printf/float dalam output
find_apriltags()/find_datamatrices()/find_lines(), JSON malformed dalam blobprint(),find_apriltags()pada citra vflipped / hmirrored, bug ROIfind_lbp(), timeout kompresi JPEG untuk resolusi besar, dan pelaporan statistik memorifb_alloc.
Kamera dan sensor:
Memperbaiki pemeliharaan cache dan penyelarasan buffer mode JPEG, ukuran transfer DCMI maksimum, konfigurasi register dan resolusi OV2640, pemulihan state shutdown sensor saat reset, dan kualitas citra OV7725 (menambahkan filter banding per kamera).
Jaringan dan sistem:
Memperbaiki hardfault/bug
socket.accept(), penanganan timeout socket WINC1500 (timeout 0 kini memblokir; socket tidak ditutup saat timeout recv), deep-sleep H7, RTC (pembaruan upstream dan masalah EXTI / wakeup-timer / soft-reset H7), dan IRQ timerpyb.Servo(Servo tidak berfungsi).
Dukungan hardware dan board¶
OpenMV Cam H7 Plus (OPENMV4R) — board baru dengan driver SDRAM yang memungkinkan framebuffer besar (~31 MB).
OV5640 — driver kamera 5 MP baru dengan deteksi berbasis I2C.
FDCAN — dukungan periferal.
Perubahan API yang merusak¶
Perubahan API yang terlihat oleh pengguna antara v3.4.1 dan v3.4.2. Cakupan: modul C Python di modules/ dan library Python di scripts/libraries/.
Setiap perubahan diberi tag dampaknya:
major — memengaruhi sebagian besar skrip yang menggunakan fitur ini; Anda perlu melakukan porting kode.
minor — API yang sempit; hanya memengaruhi skrip yang menggunakannya.
behavior — API sama, hasil berbeda; periksa ulang skrip yang sudah disetel.
Perubahan dikelompokkan berdasarkan dampak dalam urutan tersebut. Jika Anda hanya ingin melakukan porting kode, langsung ke daftar periksa migrasi di bagian akhir. Setiap hash commit menautkan ke diff-nya di GitHub.
Semantik WLAN.ifconfig() WINC1500 berubah (major)¶
Pada WiFi shield WINC1500, WLAN.ifconfig() tidak lagi mengembalikan daftar 5 elemen lama [rssi, security, ssid, mac, ip]. Kini ia mendapatkan/mengatur tuple (ip, subnet, gateway, dns) (dan mendukung konfigurasi IP statis), sesuai dengan antarmuka network standar. Kode yang membaca info koneksi dari ifconfig() harus beralih ke metode WLAN.netinfo() baru ((rssi, security, ssid, mac, ip)).
Commit: e685b484a
MQTTClient.wait_msg() mengembalikan None pada recv kosong (minor)¶
MQTTClient.wait_msg() library mqtt kini mengembalikan None pada penerimaan kosong alih-alih memunculkan OSError(-1). Kode yang menangkap OSError(-1) untuk mendeteksi socket tertutup/kosong harus memeriksa nilai kembalian None.
Commit: 76239ea89
Daftar periksa migrasi¶
Untuk porting bersih ke v3.4.2, pekerjaan umum yang diperlukan adalah:
Ganti pembacaan info koneksi
WLAN.ifconfig()WINC1500 denganWLAN.netinfo()(perubahan ifconfig).Periksa
MQTTClient.wait_msg()untuk nilai kembalianNonealih-alih menangkapOSError(-1)(perubahan wait_msg).Setel ulang deteksi AprilTag atau build dengan
IMLIB_ENABLE_FINE_APRILTAGSjika Anda memerlukan konektivitas 8 arah (perubahan find_apriltags).
Semua skrip lainnya berjalan tanpa perubahan.