v2.7.0¶
v2.7.0 memodernisasi API auto-gain / auto-exposure / white-balance sensor ke satuan fisik (dB / mikrodetik), merombak korelasi fase find_displacement() (menambahkan rotasi/skala), dan menambahkan get_similarity() (SSIM), chrominvar() / illuminvar(), buffer bingkai ekstra, dan pustaka MQTT. Ini adalah rilis yang banyak merusak — baca perubahan yang merusak di bawah ini.
Sorotan¶
API sensor modern —
set_auto_gain()/set_auto_exposure()/set_auto_whitebal()kini menggunakan dB / mikrodetik, dengan pasanganget_gain_db()/get_exposure_us()/get_rgb_gain_db().Korelasi fase —
find_displacement()dirombak dengan rotasi / skala danfind_rotscale()/linpolar()/logpolar().SSIM — kemiripan struktural
image.get_similarity().Buffer bingkai ekstra —
sensor.alloc_extra_fb()/dealloc_extra_fb().MQTT — pustaka MQTT baru.
Merusak: API gain/exposure/whitebal sensor,
find_displacement()/ ukuran bingkai FFT,find_number(), alat firmware WINC, danz_rotation()AprilTag semuanya berubah — lihat perubahan yang merusak.
Fitur baru¶
Sensor — ditambahkan
sensor.get_gain_db(),sensor.get_exposure_us(),sensor.get_rgb_gain_db(), kata kuncigain_db_ceilingpadaset_auto_gain(), dukunganhmirror/vflipMT9V034, dansensor.alloc_extra_fb()/sensor.dealloc_extra_fb()untuk buffer bingkai ekstra di RAM.Image — ditambahkan
remove_shadows(),min()/max()(perbedaan bingkai),get_similarity()(SSIM) dengan contoh kemiripan struktural,chrominvar()/illuminvar(),find_rotscale(),linpolar()/logpolar(), kata kunci threshold / offset / invert pada filter adaptifmean()/mode()/median()/midpoint(),len()/ pengindeksan pada objek titik kunci, dan aksessor.match()pada objek kecocokan titik kunci.Pustaka / jaringan — ditambahkan pustaka MQTT (dengan contoh WiFi MQTT) dan mode
network.WINC.MODE_BSPuntuk memprogram firmware WINC melalui UART debug.Contoh — ditambahkan skrip contoh daya rendah
deep_sleep.py/stop_mode.py, aliran optik lanjutan, dan linear/log-polar; firmware kini mem-parseuart.inisaat boot untuk mengaktifkan REPL UART.
Perubahan dan peningkatan lainnya¶
get_regression()mendapatkan kata kunciarea_threshold/pixels_thresholddan regresi robust yang lebih cepat (untuk mengikuti garis / balap);get_pixel()kini mendukung citra Bayer; ditambahkan persiapan STM32H7 (header CMSIS / HAL / bootloader — papan H7 belum dapat digunakan); memperbarui firmware WINC1500 bundel (19.4.4 / 19.5.2).
Perbaikan bug¶
Imaging:
Memperbaiki bug out-of-bounds pencarian diamond
find_template(), korupsilogpolar/linpolar, danilluminvar()berperilaku liar pada nilai warna mendekati nol.
Sensor dan sistem:
Memperbaiki bug kontrol auto-gain, memulihkan ukuran
MAIN_FBpadasnapshot()(sehinggacopy_to_fbpada resolusi berbeda, resize FB, dan pooling optical-flow bekerja kembali), waktu tunggugethostbynameWINC,pydfuclear-status pada bootloader H7, dan mode stop/standby daya rendah.
Dukungan hardware dan papan¶
STM32H7 — persiapan (CMSIS / HAL / bootloader); papan OpenMV H7 belum dapat digunakan dalam rilis ini.
WINC1500 — firmware bundel diperbarui.
Perubahan API yang merusak¶
Perubahan API yang terlihat pengguna antara v2.6.0 dan v2.7.0. Cakupan: modul Python C di modules/ dan pustaka Python di scripts/libraries/.
Setiap perubahan diberi tag dampaknya:
major — memengaruhi sebagian besar skrip yang menggunakan fitur tersebut; Anda perlu melakukan porting kode.
minor — API sempit; hanya memengaruhi skrip yang menggunakannya.
behavior — API sama, hasil berbeda; periksa ulang skrip yang telah disetel.
Perubahan dikelompokkan berdasarkan dampak dalam urutan tersebut. Jika Anda hanya ingin melakukan porting kode, lompat ke daftar periksa migrasi di akhir. Setiap hash commit menautkan ke diff-nya di GitHub.
sensor.set_auto_gain() dirombak ke dB (major)¶
sensor.set_auto_gain() tidak lagi menerima kata kunci integer value= dan tidak lagi mengembalikan True / False. Gunakan sensor.set_auto_gain(False, gain_db=...) (nilai float dB), baca kembali dengan sensor.get_gain_db() yang baru, dan bungkus pemanggilan dalam try / except karena kegagalan kini menampilkan ValueError.
Commit: b906c5f19
sensor.set_auto_exposure() dirombak ke mikrodetik (major)¶
sensor.set_auto_exposure() tidak lagi menerima kata kunci integer value= dan tidak lagi mengembalikan True / False. Gunakan sensor.set_auto_exposure(False, exposure_us=...), baca kembali dengan sensor.get_exposure_us() yang baru, dan tangani ValueError yang ditampilkan saat kegagalan.
Commit: 7be0a7a18
find_displacement() / ukuran bingkai FFT dirombak (major)¶
Korelasi fase dirombak. image.find_displacement() kini mengembalikan objek displacement (dengan x_translation() / y_translation() — sebelumnya x_offset / y_offset — ditambah rotation() / scale() dan kata kunci baru logpolar / fix_rotation_scale); objek rot-scale terpisah dihapus dan find_rotscale() ditambahkan. Konstanta ukuran bingkai FFT diubah nama/dihapus: sensor.B40x30 dihapus sepenuhnya, dan sensor.B64x32 / B64x64 diubah nama menjadi huruf besar sensor.B64X32 / B64X64 (dengan B128X64 / B128X128 baru).
sensor.set_auto_whitebal() dirombak ke dB (minor)¶
sensor.set_auto_whitebal() mengganti kata kunci integer value=[r, g, b] dengan rgb_gain_db=[r, g, b] (float dB) dan kini mengembalikan None (menampilkan ValueError saat kegagalan) alih-alih True / False. Gunakan sensor.get_rgb_gain_db() yang baru untuk membaca gain kembali.
Commit: 30ecbdc4f
set_hmirror() / set_vflip() mengembalikan None (minor)¶
sensor.set_hmirror() dan sensor.set_vflip() kini mengembalikan None dan menampilkan ValueError saat kegagalan alih-alih mengembalikan status True / False. Hapus kode apa pun yang bercabang berdasarkan nilai kembaliannya.
Commit: aeb023804
Alat firmware WINC memerlukan jalur file (minor)¶
Perkakas firmware network.WINC berubah: wlan.fw_dump() / wlan.fw_update() kini memerlukan argumen jalur file firmware yang wajib dan WINC dibuka dalam mode pemrograman (network.WINC(mode=...)). Perbarui pemanggilan tanpa argumen untuk meneruskan jalur (mis. wlan.fw_update("/winc_19_5_2.bin")).
Commit: fcc3b0b9c
image.find_number() memerlukan ROI 28x28 (behavior)¶
image.find_number() (LeNet) kini memerlukan ROI tepat 28x28 yang muat di dalam citra dan menampilkan kesalahan jika tidak (alih-alih berjalan pada ROI sembarang/penuh citra). Berikan roi=(x, y, 28, 28) secara eksplisit.
Commit: 4d09a13f3
Tanda z_rotation() AprilTag dibalik (behavior)¶
z_rotation() AprilTag (dan rotation() terkait) kini menggunakan konvensi koordinat tangan kanan, sehingga sudut yang dikembalikan dinegasi dibandingkan rilis sebelumnya. Skrip yang bergantung pada tanda lama harus membalik nilainya atau menyesuaikan matematika sudutnya.
Commit: 7673aaf74
Daftar periksa migrasi¶
Untuk porting bersih ke v2.7.0, pekerjaan tipikal adalah:
Porting
set_auto_gain()kegain_db=+get_gain_db()dan tanganiValueError(perombakan auto-gain).Porting
set_auto_exposure()keexposure_us=+get_exposure_us()(perombakan auto-exposure).Perbarui
find_displacement()ke objek displacement dan ubah nama konstanta ukuran bingkai FFT (perombakan find_displacement).Porting
set_auto_whitebal()kergb_gain_db=+get_rgb_gain_db()(perombakan white-balance) dan hentikan pemeriksaan nilai kembalianset_hmirror()/set_vflip()(perubahan mirror/flip).Teruskan jalur firmware ke alat WINC
fw_*(perubahan alat WINC).Teruskan
roi28x28 kefind_number()(perubahan find_number) dan sesuaikan matematika sudut AprilTag untuk tandaz_rotation()yang dibalik (perubahan z_rotation).
Semua skrip lainnya berjalan tanpa perubahan.