v3.7.0¶
v3.7.0 adalah rilis besar. Menambahkan modul audio (mikrofon PDM Portenta H7) dengan API callback non-blocking baru, modul pengenalan ucapan TensorFlow micro_speech, kontroler LCD RGB paralel yang sepenuhnya baru (dengan keluaran HDMI dan sentuh FT5X06), metode image.flush() dengan konstanta format piksel, dan pipeline penskalaan image.draw_image() yang ditulis ulang. Beberapa pustaka helper lama dan metode citra dihapus serta matematika yuv_to_* berubah — baca perubahan yang merusak di bawah ini.
Sorotan¶
Modul
audio— penangkapan mikrofon PDM onboard Portenta H7 dengan APIstart_streaming(callback)non-blocking.micro_speech— modul pengenalan ucapan TensorFlow micro-speech.Kontroler LCD baru — dukungan tampilan RGB paralel, keluaran HDMI (TFP410), dan sentuh FT5X06.
image.draw_image()— ditulis ulang dengan pipeline penskalaan/alpha/palet penuh (x_scale/y_scale/hint/color_palette…).image.flush()beserta konstanta format piksel (image.BINARY/GRAYSCALE/RGB565/YUV422/BAYER/JPEG).Merusak: pustaka helper matematika lama dan beberapa metode citra dihapus, API
draw_image()/ LCD dirombak, danyuv_to_*tidak lagi mengurangi 128 — lihat perubahan yang merusak.
Fitur baru¶
audio— modulaudioPortenta H7 baru untuk penangkapan mikrofon PDM:audio.init(),audio.start_streaming(callback)non-blocking, danaudio.stop_streaming()(frekuensi ditentukan dalam Hz).micro_speech— modul baru dengan kelasMicroSpeech,audio_callback(), danmicro_speech()untuk pengenalan ucapan TensorFlow;listen()menggunakan rata-rata jendela berjalan dan menerima kata kuncifilteruntuk membatasi hasil pada daftar label.LCD — kontroler LCD baru dengan dukungan tampilan RGB paralel, tipe
LCD_NONE/LCD_SHIELD/LCD_DISPLAY, banyak konstanta ukuran bingkai,triple_buffer/framesize/refresh/bgr/deinit,displayyang diperluas, keluaran HDMI melalui TFP410, dan dukungan layar sentuh FT5X06.image.flush()— ditambahkan metodeimage.flush()dan konstanta format piksel (image.BINARY/GRAYSCALE/RGB565/YUV422/BAYER/JPEG).image.draw_image()— ditulis ulang dengan pipeline penskalaan baru:x_scale/y_scale/x_size/y_size,rgb_channel,alpha,color_palette,alpha_palette, danhint, beserta konstantaimage.AREA/BILINEAR/BICUBIC/CENTER/EXTRACT_RGB_CHANNEL_FIRST/APPLY_COLOR_PALETTE_FIRSTdan contoh alpha-blending / tabel warna / penskalaan baru.ImageReader.next_frame()mendapat kata kuncipauseuntuk menonaktifkan penundaan pemutaran real-time.Menambahkan contoh audio Portenta (
audio_fft.py,micro_speech.py) dan contoh wake-from-stop ExtInt.
Perubahan dan perbaikan lainnya¶
Contoh bawaan diorganisasikan ulang di bawah
scripts/examples/Arduino/; framebuffer kini diperbarui secara instan setelah memuat/membuat citra dengancopy_to_fb=True(tidak perlu flush manual); heap Portenta dikurangi sedikit untuk menampung lebih banyak state driver statis.
Perbaikan bug¶
Kamera dan pencitraan:
Memperbaiki pertukaran merah/biru (urutan byte RGB565) pada citra yang diambil, pembulatan gambar DMA2D agar sesuai dengan kode gambar lainnya, kerusakan
fb_allocpada alokasi rekursif (find_blobs()), dan membatasitop_hat()/black_hat()di balik pengaktifan operasi binary dan math.
Tampilan dan audio:
Memperbaiki keluaran LCD shield dan mode audio mono 1-channel Portenta.
Portenta:
Mengatasi masalah Ethernet/SDRAM (mengatur
rst_ethtinggi) dan memperbaiki konfigurasi timing SDRAM.
Dukungan hardware dan board¶
Arduino Portenta H7 — penangkapan audio mikrofon PDM onboard (SAI / PDM2PCM).
LCD — kontroler tampilan RGB paralel baru (LTDC diaktifkan dalam build H7), keluaran HDMI melalui TFP410, dan dukungan LCD layar sentuh FT5X06.
Perubahan API yang merusak¶
Perubahan API yang terlihat pengguna antara v3.6.9 dan v3.7.0. Cakupan: modul Python C di modules/ dan pustaka Python di scripts/libraries/.
Setiap perubahan ditandai dengan dampaknya:
minor — API terbatas; hanya memengaruhi skrip yang menggunakannya.
behavior — API sama, hasil berbeda; periksa kembali skrip yang telah disesuaikan.
Perubahan dikelompokkan berdasarkan dampak dalam urutan tersebut. Jika Anda hanya ingin memigrasikan kode, langsung ke daftar periksa migrasi di akhir. Setiap hash commit terhubung ke diff-nya di GitHub.
Pustaka helper matematika lama dihapus (minor)¶
Pustaka helper mtx, rv, ulinalg, umatrix, dan vec dihapus dari scripts/libraries demi ulab. Skrip yang import salah satu dari ini akan gagal dan harus dimigrasi ke ulab.
Commit: 1f7da9272
remove_shadows() / chrominvar() / illuminvar() dihapus (minor)¶
image.remove_shadows(), image.chrominvar(), dan image.illuminvar() dihapus tanpa pengganti. Skrip yang memanggil metode ini harus menghapus pemanggilan tersebut.
Commit: 3173c2bb3
Tanda tangan image.draw_image() dirombak (minor)¶
image.draw_image() ditulis ulang di atas pipeline penskalaan baru. Argumen alpha / scale posisional lama dan urutan posisional sebelumnya tidak lagi berlaku; gunakan bentuk kata kunci baru (x_scale= / y_scale= atau x_size= / y_size=, alpha=, color_palette=, hint= …).
Commit: 3439f8824
Penulisan ulang modul LCD (minor)¶
Modul lcd ditulis ulang untuk kontroler tampilan baru. lcd.init() kini menerima type tampilan (LCD_NONE / LCD_SHIELD / LCD_DISPLAY) dan argumen kata kunci baru, dan permukaan konstanta / API diorganisasikan ulang secara substansial. Skrip khusus shield lama sebagian besar masih berfungsi, tetapi default dan perilakunya berubah — tinjau skrip LCD terhadap API type / framesize baru.
Commit: 185538207
yuv_to_* tidak lagi mengurangi 128 (behavior)¶
image.yuv_to_binary() / yuv_to_grayscale() / yuv_to_rgb() / yuv_to_lab() kini memperlakukan elemen tuple Y sebagai nilai unsigned 0–255 alih-alih mengurangi 128. Pemanggil harus meneruskan Y tanpa bias −128 sebelumnya untuk mendapatkan warna yang sama seperti sebelumnya.
Commit: dcf141192
Daftar periksa migrasi¶
Untuk migrasi bersih ke v3.7.0, pekerjaan tipikal adalah:
Migrasi penggunaan
mtx/rv/ulinalg/umatrix/veckeulab(penghapusan pustaka matematika).Hapus pemanggilan
image.remove_shadows()/chrominvar()/illuminvar()(metode citra yang dihapus).Perbarui pemanggilan
image.draw_image()ke tanda tangan kata kunci baru (perombakan draw_image).Tinjau skrip LCD terhadap API
type/framesizelcdbaru (penulisan ulang LCD).Hilangkan bias −128 saat meneruskan Y ke
yuv_to_*(perubahan yuv_to_*).
Semua skrip lainnya berjalan tanpa perubahan.