v4.5.9¶
v4.5.9 menghadirkan streaming pratinjau mentah untuk papan tanpa encoder JPEG perangkat keras, pemotongan sensor perangkat keras untuk membebaskan lebih banyak RAM, debayering yang dipercepat Helium lebih cepat, dan sekumpulan perbaikan kamera/USB-debug. Ini juga mengubah API hasil AprilTag dan set keluarga AprilTag default, jadi baca perubahan breaking di bawah ini.
Highlights¶
Streaming pratinjau mentah — papan tanpa encoder JPEG perangkat keras kini dapat mengirim bingkai mentah yang diperkecil ke IDE/host alih-alih gagal melakukan pratinjau.
Pemotongan sensor perangkat keras — menetapkan ukuran bingkai yang lebih kecil kini mengurangi memori per-buffer dan membebaskan RAM untuk
fb_alloc().Debayering lebih cepat — konversi Bayer→RGB/skala abu-abu kini dipercepat Helium-SIMD pada papan Cortex-M55.
Breaking: objek hasil AprilTag berubah ke akses atribut dan set keluarga AprilTag default dikurangi (lihat perubahan AprilTag dan perubahan keluarga AprilTag).
New features¶
Streaming pratinjau mentah — papan tanpa encoder JPEG perangkat keras dapat melewati JPEG dan melakukan streaming bingkai mentah yang diperkecil (dibatasi ~60 KB) ke IDE/host, sehingga pratinjau langsung berfungsi pada papan tersebut.
Other changes and improvements¶
Pemotongan perangkat keras kini diaktifkan pada semua papan STM32/NXP (Giga, Nicla Vision, Portenta H7, OpenMV 1–4 / 4 Plus / Pure Thermal / RT1060). Saat ukuran bingkai atau jendela ditetapkan, memori per-buffer dikurangi ke ukuran yang dipotong, membebaskan lebih banyak RAM untuk
fb_alloc().Debayering lebih cepat — konversi Bayer→RGB565/skala abu-abu kini dipercepat ARM Helium/MVE SIMD pada papan Cortex-M55 (misalnya RT1060), dengan jalur encoder JPEG SIMD bersama.
Debug IDE lebih cepat — debugger kini mentransfer data langsung dari stack USB bila memungkinkan, menghindari salinan ekstra.
Submodul MicroPython diperbarui — papan dapat mengubah ukuran buffer CDC TinyUSB, ditambah perbaikan GC dan aturan build.
Bug fixes¶
Camera and sensors:
Mengoreksi pola Bayer/CFA OV7725 (GBRG → BGGR), memperbaiki output warna yang di-debayer pada kamera OV7725; OV7725 kini melaporkan format piksel Bayer, dan sensor hanya-Bayer kini melaporkan kedalaman sumber 1-byte-per-piksel.
Memperbaiki perhitungan ukuran framebuffer raw/Bayer.
Machine learning:
TensorFlow Lite Micro kini menggunakan memori bebas heap GC saat mengukur arena tensor sementara, mencegah kegagalan alokasi pemuatan model pada papan dengan memori frame-buffer terbatas.
Host / IDE:
Memperbaiki penanganan buffer CDC USB-debug pada papan TinyUSB untuk throughput serial/debug yang lebih andal.
tools/pyopenmv: memperbaiki urutan byte RGB565, menambahkan argumenscale, dan alat frame-buffer kini melaporkan ukuran/format citra.
Hardware and board support¶
OV7725 kini melaporkan format piksel Bayer (penanganan raw/CFA yang benar).
Pemotongan perangkat keras diaktifkan di seluruh rangkaian papan STM32/NXP.
Breaking API changes¶
Perubahan API yang terlihat pengguna antara v4.5.8 dan v4.5.9. Cakupan: modul C Python dalam modules/ dan pustaka Python dalam scripts/libraries/.
Setiap perubahan diberi tag dengan dampaknya:
minor — API sempit; hanya memengaruhi skrip yang menggunakannya.
behavior — API sama, hasil berbeda; periksa ulang skrip yang disetel.
Perubahan dikelompokkan berdasarkan dampak dalam urutan tersebut. Jika Anda hanya ingin memindahkan kode, langsung ke daftar periksa migrasi di akhir. Setiap hash commit menautkan ke diff-nya di GitHub.
Objek hasil AprilTag dan set_buffers (minor)¶
Hasil AprilTag dari find_apriltags() kini mengekspos datanya sebagai atribut alih-alih metode — gunakan tag.cx, tag.cy, tag.rotation, tag.family, tag.corners alih-alih tag.cx(), tag.family(), dll. Aksessor baru name (string nama keluarga) dan presisi float cxf / cyf ditambahkan.
Secara terpisah, konfigurasi buffer video otomatis berubah: set_buffers menggantikan auto_adjust — lewatkan -1 untuk menggunakan hingga tiga buffer ukuran bingkai (atau sebanyak yang muat) dan 1 untuk menggunakan seluruh frame buffer. Ukuran buffer kini sadar bits-per-piksel, sehingga lebih banyak buffer dapat dialokasikan untuk format 1 bpp.
ble_advertising dan RPC-over-network dihapus (minor)¶
Pustaka pembantu ble_advertising dan contoh ble_temperature.py dihapus — gunakan aioble sebagai gantinya (contoh suhu aioble disediakan). Kelas master/slave jaringan RPC dihapus dari rpc.py.
Keluarga AprilTag dinonaktifkan secara default (behavior)¶
Keluarga AprilTag kini dapat dipilih secara individual pada waktu kompilasi, dan yang tidak digunakan dinonaktifkan secara default. Pada papan standar, find_apriltags() kini hanya mendeteksi keluarga TAG36H11 kecuali firmware dibangun ulang dengan keluarga lain yang diaktifkan. Skrip yang mengandalkan keluarga lain (TAG16H5, TAG25H9, ...) pada build standar akan secara diam-diam berhenti mendeteksinya.
Commit: effe12f2c
Migration checklist¶
Untuk pemindahan bersih ke v4.5.9, pekerjaan umum adalah:
Ubah akses hasil AprilTag dari pemanggilan metode ke atribut (
tag.cx()→tag.cx), dan alihkanauto_adjustkeset_buffers(perubahan AprilTag / buffer).Ganti
ble_advertisingdenganaiobledan hapus penggunaan master/slave jaringan RPC apa pun (penghapusan).Jika Anda menggunakan keluarga AprilTag selain
TAG36H11pada build standar, perhatikan bahwa keluarga tersebut tidak lagi terdeteksi secara default (perubahan keluarga AprilTag).