v3.3.0¶
v3.3.0 adalah rilis besar. Versi ini menambahkan dukungan penuh kamera termal FLIR Lepton dengan antarmuka sensor.ioctl() baru dan palet warna, modul output video SPI tv, mode triggered global-shutter, sekumpulan besar metode gambar/analisis image baru (gamma_corr(), draw_ellipse(), draw_edges(), banyak properti blob), serta library ToF / motor / linalg baru. API cpufreq telah didesain ulang dan sensor.set_framesize() kini memunculkan pengecualian — baca perubahan yang merusak di bawah ini.
Sorotan¶
FLIR Lepton — dukungan penuh kamera termal melalui antarmuka
sensor.ioctl()baru, palet warna, danimage.to_rainbow().Modul
tv— output video TV SPI / komposit.Mode triggered global-shutter — pengambilan gambar triggered MT9V034 melalui
sensor.ioctl().Pencitraan —
gamma_corr(),draw_ellipse(),draw_edges(), alpha blendingdraw_image(), dan banyak properti blob baru.Library baru — driver jarak ToF VL53L1X, driver motor TB6612, micro-linalg.
Merusak: API
cpufreqtelah didesain ulang,sensor.set_framesize()kini memunculkan pengecualian saat gagal,sensor.alloc_extra_fb()tidak lagi mendukung Bayer/JPEG, dan argumen posisionalimage.replace()bergeser — lihat perubahan yang merusak.
Fitur baru¶
FLIR Lepton — menambahkan
sensor.ioctl()untuk kontrol khusus sensor dan sekumpulan lengkap ioctl Lepton (radiometri, refresh/resolusi, perintah-jalankan, set/get atribut, suhu FPA/AUX dalam °C, mode/rentang pengukuran, lebar/tinggi),sensor.set_color_palette()/sensor.get_color_palette()dengansensor.PALETTE_RAINBOW/PALETTE_IRONBOW,image.to_rainbow(), dan skrip contoh Lepton (27-Lepton).Mode triggered —
IOCTL_SET_TRIGGERED_MODE/IOCTL_GET_TRIGGERED_MODEuntuk pengambilan gambar triggered global-shutter MT9V034, dengan contoh FPS tinggi dan mode triggered.Modul
tv— menambahkan binding output video TV SPI / komposit.Pencitraan — menambahkan
image.gamma_corr(),image.draw_ellipse(),image.draw_edges(), alpha blendingdraw_image(), kata kuncimask=padaclear(), menambahkan kembalimask_rectangle()/mask_circle()/mask_ellipse(), kata kunci rotation / hmirror / vflip padadraw_string()/draw_text(), kata kuncitranspose(dan aliasassign/set) padareplace(),x_scale/y_scalepadacopy()ditambahcrop()/scale(), konstruktorImage()dari dimensi, pixformatsensor.BINARY, fungsi konversi color-space yang diekspor, dan banyak properti blob baru (corners,perimeter,roundness,elongation,extent,compactness,solidity,convexity,enclosing_circle,enclosed_ellipse, rotation).Library — menambahkan driver sensor jarak ToF
vl53l1x, driver motortb6612(dengan contoh DC-motor dan stepper Motor-Shield), dan library micro-linalg (ulinalg/umatrix).Memutakhirkan FatFS ke FF13C (mampu exFAT).
Perubahan dan peningkatan lainnya¶
Meningkatkan kualitas JPEG default (rentang menengah dari rendah–tinggi alih-alih nilai hardcoded); operasi citra in-place tidak lagi memerlukan pengulangan citra sebagai argumen pertama;
draw_string()menerima nilai skala non-integer.
Perbaikan bug¶
Kamera dan sensor:
Memperbaiki hang startup Lepton 3.5 (timeout + pemulihan) dan keandalan reset,
set_framesize()MT9V034 sebelumset_pixformat()(urutan panggilan tidak lagi penting), MT9V034 WVGA pada STM32H7, rentang auto-eksposur MT9V034 dan pembaruan register bayangan, serta bug ADC H7.
Pencitraan:
Memperbaiki akses memori tidak valid di
find_apriltags(),copy()saat menyalin citra berskala ke framebuffer utama, alokasi framebufferto_grayscale()/to_rgb565(),len()objek keypoint, penanganan batas MCU JPEG, parsing daftar ambang batasbinary(), dandraw_keypoints()yang menerima tuple keypoint.
Sistem:
Memperbaiki kebocoran ketidakseimbangan mark/free
fb_allocdi seluruh metodeimage/fir/lcd/tv/nn, membuatpy_assertmembebaskan memori framebuffer pada pengecualian yang ditangkap (#417), menghapus flag overrun UART (ORE) sehingga overrun tidak lagi memblokir pembacaan UART, memperbaiki handler IRQ RTC, dan memperbaiki alat Windowscascade_convert.py.
Dukungan hardware dan board¶
Kamera termal FLIR Lepton.
TV shield — output video TV SPI / komposit.
Mode triggered global-shutter (MT9V034).
Perubahan API yang merusak¶
Perubahan API yang terlihat oleh pengguna antara v3.2.0 dan v3.3.0. 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.
API cpufreq didesain ulang (major)¶
Modul cpufreq telah didesain ulang untuk dukungan H7. Konstanta cpufreq.CPUFREQ_120MHZ / 144 / 168 / 192 / 216MHZ dan cpufreq.get_frequency() dihapus. cpufreq.set_frequency() kini menerima integer MHz biasa (mis. cpufreq.set_frequency(120)), dan cpufreq.get_current_frequencies() / cpufreq.get_supported_frequencies() ditambahkan.
Commit: 6babf84a1
Argumen posisional image.replace() bergeser (minor)¶
image.replace() mendapatkan argumen transpose, menggeser argumen posisional mask dari posisi 4 ke posisi 5. Kode yang meneruskan mask secara posisional (mis. img.replace(src, hmirror, vflip, mask)) harus beralih ke bentuk kata kunci img.replace(src, mask=mask).
Commit: dbe7bf059
sensor.alloc_extra_fb() tidak lagi menerima Bayer/JPEG (minor)¶
sensor.alloc_extra_fb() tidak lagi menerima sensor.BAYER atau sensor.JPEG (kini juga mendukung sensor.BINARY). Kode yang mengalokasikan framebuffer ekstra dalam format Bayer atau JPEG harus menggunakan GRAYSCALE / RGB565 (atau mengalokasikan buffer dengan cara lain).
Commit: f9e6b3fe0
sensor.set_framesize() memunculkan pengecualian saat gagal (behavior)¶
sensor.set_framesize() kini memunculkan ValueError ketika ukuran bingkai tidak didukung alih-alih mengembalikan False. Kode yang memeriksa nilai kembalian False harus menangkap pengecualian ValueError.
Commit: b0442633e
Daftar periksa migrasi¶
Untuk porting bersih ke v3.3.0, pekerjaan umum yang diperlukan adalah:
Porting kode
cpufreqkeset_frequency()integer-MHz danget_current_frequencies()/get_supported_frequencies()(desain ulang cpufreq).Teruskan
maskkeimage.replace()sebagai kata kunci (perubahan replace).Alokasikan framebuffer ekstra sebagai
GRAYSCALE/RGB565alih-alih Bayer/JPEG (perubahan alloc_extra_fb).Tangkap
ValueErrordi sekitarsensor.set_framesize()alih-alih memeriksaFalse(perubahan set_framesize).
Semua skrip lainnya berjalan tanpa perubahan.