v3.9.0¶
v3.9.0 adalah rilis besar. Ini menambahkan port nRF dengan Arduino Nano 33 BLE Sense (kamera, modul audio PDM, ulab, driver sensor beku), membawa sensor termal FLIR Lepton plus MLX90641 / MLX90621 dan modul fir yang dirombak besar-besaran, ioctls autofokus OV5640, dan tipe streaming baru image.ImageIO. Modul CMSIS-NN nn lama dan kelas ImageReader / ImageWriter lama dihapus — baca perubahan yang merusak kompatibilitas di bawah.
Sorotan¶
Arduino Nano 33 BLE Sense — port nRF52840 baru dengan kamera, modul
audioPDM,ulab, dan driver sensor beku.Termal — dukungan FLIR Lepton, MLX90641, dan MLX90621 dengan modul
firyang dirombak (palet, pencerminan, penskalaan, radiometri, FFC).OV5640 autofokus — ioctls
sensor.IOCTL_*_AUTO_FOCUSbaru.image.ImageIO— tipe aliran citra terpadu (memori atau file; baca/tulis/cari/ukuran/tutup) yang menggantikanImageReader/ImageWriter.Perubahan merusak: modul CMSIS-NN
nndanimage.ImageReader/image.ImageWriterdihapus, serta perilakufind_lines()/firberubah — lihat perubahan yang merusak kompatibilitas.
Fitur baru¶
Port nRF / Arduino Nano 33 BLE Sense — port nRF52840 baru dan dukungan papan, dengan modul
audiobaru (audio.init(),audio.start_streaming(),audio.stop_streaming()),ulabdiaktifkan, dan driver sensorapds9960/lps22h/lsm9ds1/hts221yang dibekukan.image.ImageIO— tipe aliran citra baru yang mendukung aliran memori dan file denganread()/write()/seek()/size()/close(), ditambah contoh baca/tulis/memori ImageIO.FLIR Lepton — dukungan
FIR_LEPTONditambahkan denganfir.radiometric(),fir.trigger_ffc(), danfir.register_vsync_cb().Sensor termal — dukungan termopile MLX90641 (
FIR_MLX90641) dan MLX90621 ditambahkan (driver resmi Melexis).Palet / orientasi
fir— konstantafir.PALETTE_RAINBOW/PALETTE_IRONBOW/GRAYSCALE/RGB565ditambahkan, danfir.read_ir()kini menerimahmirror/vflip/transpose.OV5640 autofokus —
sensor.IOCTL_TRIGGER_AUTO_FOCUS/IOCTL_PAUSE_AUTO_FOCUS/IOCTL_RESET_AUTO_FOCUS/IOCTL_WAIT_ON_AUTO_FOCUSditambahkan (OpenMV 2/3/4/4 Plus/PT/Portenta).Contoh Arduino diorganisasi ulang ke dalam direktori per-papan.
Perubahan dan peningkatan lainnya¶
Beralih ke pesan error MicroPython yang dikompresi (string exception lebih pendek); argumen
typedarifir.init()kini mendeteksi otomatis melalui pemindaian bus I2C jika dihilangkan; exceptionxallockini melaporkan jumlah byte yang diminta; UART 8 diaktifkan pada Portenta; contoh FIR dikonsolidasikan kethermal_camera.py/thermal_overlay.py/thermal_overlay_lcd.py. Untuk muat dalam flash,image.get_similarity()dan pencarian selektif dinonaktifkan pada build OpenMV 4, dan pustaka citra kini dapat dibangun tanpa filesystem (untuk papan tanpa filesystem).
Perbaikan bug¶
Kamera dan sensor:
Memperbaiki perhitungan PCLK OV5640, menambahkan handler IRQ I2C yang hilang (memperbaiki hang transfer I2C), merombak pembacaan/penulisan I2C cambus untuk keandalan, membuat bus I2C Lepton dapat dipilih, memindahkan pin bus-recovery cambus ke konfigurasi per-papan, mencoba ulang pemindaian cambus sekali sebelum gagal, dan membuat OpenMV PT (Lepton + kamera berbagi I2C) bekerja.
Termal:
Memperbaiki komputasi nilai-maksimum dalam
firget_ir()/draw_ir()danimage.get_similarity()(FLT_MIN→-FLT_MAX), penanganan 12→16-bit AMG8833, dan akurasi MLX90621 (driver resmi Melexis).
Tampilan, audio, dan sistem:
Memindahkan transfer LCD SPI STM32 ke callback HAL SPI (keandalan tampilan), memperbaiki
audio.init()Nano 33 (osilator HF + rasio PDM agar mikrofon berfungsi), kondisi timer H7 dengan HAL baru,gc_collectnRF dan inisialisasi/de-inisialisasi papan awal, serta menghentikan pencetakan pesan "uh oh, no preference for overlapping detection" yang tidak perlu selamafind_apriltags()/find_rects().
Dukungan perangkat keras dan papan¶
Arduino Nano 33 BLE Sense — papan nRF52840 baru (kamera, audio PDM,
ulab, driver sensor beku).Sensor termal FLIR Lepton, MLX90641, dan MLX90621.
OV5640 autofokus — OpenMV 2/3/4/4 Plus/PT/Portenta.
Portenta — UART 8 diaktifkan.
Perubahan API yang merusak kompatibilitas¶
Perubahan API yang terlihat oleh pengguna antara v3.8.0 dan v3.9.0. Cakupan: C-modul Python dalam modules/ dan pustaka Python dalam scripts/libraries/.
Setiap perubahan diberi tag dengan dampaknya:
major — memengaruhi sebagian besar skrip yang menggunakan fitur tersebut; Anda perlu mem-port 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 mem-port kode Anda, langsung ke daftar periksa migrasi di bagian akhir. Setiap hash commit menautkan ke diff-nya di GitHub.
Modul CMSIS-NN nn dihapus (major)¶
Modul CMSIS-NN nn dihapus, termasuk nn.load(), net.forward(), net.search(), dan pembantu nn_class. Inferensi model berpindah ke modul TensorFlow Lite (tf). Skrip yang memuat model .network dengan nn harus diport ke tf dengan model TensorFlow Lite.
Commits: fbc767b36
ImageReader / ImageWriter digantikan oleh image.ImageIO (major)¶
image.ImageReader / image.ImageWriter dan metode next_frame() / add_frame() mereka dihapus dan digantikan oleh tipe image.ImageIO baru, yang mendukung aliran memori dan file melalui read() / write() / seek() / size() / close(). Kode yang menggunakan kelas reader/writer lama harus diport ke image.ImageIO (lihat contoh imageio_read.py / imageio_write.py yang diganti nama).
Commits: 783a78754
Kata kunci scale dari fir.draw_ir() dihapus (minor)¶
fir.draw_ir() ditulis ulang di atas pipeline gambar baru. Kata kunci scale=(min, max) dihapus, dan argumen hint, x_scale, y_scale, roi, serta argumen offset posisional x/y ditambahkan. Skrip yang meneruskan scale=(min, max) ke fir.draw_ir() harus menghapusnya dan menggunakan argumen baru.
Commits: 0a29103b1
Aproksimasi find_lines() (behavior)¶
image.find_lines() kini mengaproksimasi magnitudo gradien sebagai (abs(gx) + abs(gy)) / 2 dan melewati magnitudo di bawah 126. Ini lebih cepat tetapi mengubah himpunan garis yang terdeteksi dan nilai akumulator, jadi setel ulang threshold / theta_margin / rho_margin.
Commits: 902ae3c98
fir.snapshot() dirombak (behavior)¶
fir.snapshot() dirombak secara substansial dengan API kata kunci baru (hmirror, vflip, transpose, x_scale, y_scale, x_size, y_size, scale, rgb_channel, alpha, color_palette, hint, pixformat, copy_to_fb), dan contoh yang disertakan ditulis ulang. Perilaku posisional/pixformat-only sebelumnya berubah; port skrip FIR ke bentuk kata kunci baru (lihat contoh thermopile-shield yang diperbarui).
Commits: 53f2248b8
fir.init() menimbulkan exception saat gagal (behavior)¶
fir.init() kini menimbulkan exception (dan melakukan de-init dengan bersih) ketika sensor termal tidak terdeteksi, alih-alih melanjutkan secara diam-diam. Bungkus fir.init() dalam try / except (atau pastikan sensor terhubung) di tempat Anda sebelumnya mengandalkannya untuk tidak menimbulkan exception.
Commits: 4b2f972f3
Daftar periksa migrasi¶
Untuk port yang bersih ke v3.9.0, pekerjaan umum yang perlu dilakukan adalah:
Port inferensi model CMSIS-NN
nnke modul TensorFlow Litetf(penghapusan nn).Ganti
image.ImageReader/image.ImageWriterdenganimage.ImageIO(perubahan ImageIO).Hapus kata kunci
scale=(min, max)darifir.draw_ir()dan gunakan argumen baru (perubahan draw_ir).Setel ulang parameter
find_lines()terhadap metrik magnitudo aproksimasi (perubahan find_lines).Port skrip FIR ke API kata kunci
fir.snapshot()baru (perubahan fir.snapshot) dan tanganifir.init()yang menimbulkan exception saat sensor tidak ada (perubahan fir.init).
Semua skrip lainnya berjalan tanpa perubahan.