v4.5.0¶
v4.5.0 adalah rilis besar. Modul lcd lama digantikan oleh modul display yang terpadu dengan backend SPI / paralel / DSI / TV yang terpisah, dukungan board Arduino Giga ditambahkan, dan serangkaian fitur display, sentuh, dan kontrol sensor hadir. Ada beberapa perubahan yang merusak kompatibilitas — baca di bawah ini.
Sorotan¶
Modul
displaybaru — menggantikanlcddengan backend terpaduSPIDisplay/RGBDisplay/DSIDisplay/TVDisplay.Dukungan board Arduino Giga.
Hardware display/sentuh baru — layar DSI pada STM32 H7, TFP410 DVI/HDMI, HDMI/DVI CEC, panel RGB ST7701, serta sentuh kapasitif GT911 / FT5X06.
Kontrol sensor baru — kalibrasi black-level, mode malam, dan
sensor.disable_delays(); transpose (~5x) dan morfologi (~2.5x) jauh lebih cepat.Merusak:
lcd→display,lcd_touch→ft5x06, pin LED diganti nama — lihat perubahan yang merusak kompatibilitas.
Fitur baru¶
Backend display —
DisplayData(pembacaan DDC/EDID), serializer DVI/HDMITFP410, dukungan layar MIPI-DSI pada STM32 H7, driver HDMI/DVIcec, dan library Pythondisplaydengan helper inisialisasi panel RGBST7701.Sentuh — driver sentuh kapasitif 5 titik
GT911baru (read_points()/read_id()/reset()).Ekstensi
machine— librarymachineyang dapat dibekukan dengan kelas helpermachine.LED, dan metode barumachine.LED.value([v]).Kontrol sensor —
sensor.set_auto_blc(enable, regs=None)/sensor.get_blc_regs()(kalibrasi black-level),IOCTL_SET_NIGHT_MODE/IOCTL_GET_NIGHT_MODE(OV7725/OV5640), hmirror/vflip OV7670, dansensor.disable_delays()untuk melewati penundaan settling kamera demi konfigurasi ulang yang lebih cepat.i.MX RT —
sensor.set_xclk_frequency()kini menerima frekuensi apa pun (dibulatkan ke pembagi CSI valid terdekat) dan modul SPIlcd/tv/firdiaktifkan pada RT1060.
Perubahan dan peningkatan lainnya¶
Operasi citra jauh lebih cepat — transpose citra ~5x lebih cepat dan
image.morph()~2.5x lebih cepat.Probe bus kamera kini memindai dan memvalidasi beberapa alamat perangkat, mendukung board dengan beberapa perangkat pada bus yang sama.
Perbaikan bug¶
Kamera dan sensor:
Memperbaiki akurasi perhitungan gain pada banyak sensor (HM01B0, HM0360, MT9M114, MT9V0xx, OV2640, OV5640, OV7690, OV7725, OV9650, PAJ6100), eksposur / column-binning MT9V0xx, eksposur OV5640, dan windowing VGA OV7670.
STM32 kini membuang bingkai transpose yang rusak alih-alih mengembalikan citra yang buruk.
Pemrosesan citra:
Memperbaiki integer overflow yang memengaruhi operasi citra / FIR / ToF / LCD / TV, instruksi floating-point
vcvtm/vcvtpyang tidak valid pada Cortex-M4 (fast_floorf/fast_ceilf), bug penskalaan in-place dalam konversiimage.to_*(), dan kerusakan cache draw DMA2D.
Display dan sistem:
Memperbaiki timing dan mode potret layar DSI,
micro_speechlisten()pada Nicla Vision / Portenta H7, saklar pengguna STM32 (pyb.Switch), dan dukungan bus I2C4.
Dukungan hardware dan board¶
Arduino Giga — board baru, dengan pemetaan pin Arduino bernama dan set contoh lengkap.
OpenMV RT1060 — modul SPI LCD, TV, dan FIR thermal diaktifkan.
Arduino Nano 33 BLE Sense — pin LED.
Perubahan API yang merusak kompatibilitas¶
Perubahan API yang terlihat pengguna antara v4.4.3 dan v4.5.0. Cakupan: C-module Python di modules/ dan library Python di scripts/libraries/.
Setiap perubahan diberi tag dengan dampaknya:
besar — sebagian besar skrip yang menggunakannya perlu diedit.
kecil — API sempit; hanya memengaruhi skrip yang menggunakannya.
perilaku — API sama, hasil berbeda; periksa kembali skrip yang telah disetel.
Perubahan dikelompokkan berdasarkan dampak dalam urutan tersebut. Jika Anda hanya ingin memigrasikan kode, langsung ke daftar periksa migrasi di akhir. Setiap hash commit menautkan ke diff-nya di GitHub.
Modul lcd digantikan oleh display (besar)¶
Modul lcd lama dihapus dan digantikan oleh modul display terpadu yang dibagi menjadi backend SPIDisplay (perisai LCD SPI), RGBDisplay / paralel, DSIDisplay (MIPI-DSI), dan TVDisplay dengan API umum. Skrip harus beralih dari import lcd ke modul display dan membuat objek backend yang sesuai.
Modul sentuh, pin LED, dan driver bundel (kecil)¶
Modul lcd_touch generik digantikan oleh modul driver sentuh kapasitif FT5X06 khusus. Nama pin LED diubah namanya untuk konsistensi di semua board (skrip yang mereferensikan nama pin LED lama harus diperbarui). Driver IMU/sensor bundel hts221 / lps22h / lsm6dsox / lsm9ds1 digantikan dengan versi micropython-lib upstream, yang API-nya sedikit berbeda (contoh bundel telah diperbarui untuk menyesuaikan).
Kontrol sensor yang tidak didukung kini memberi peringatan (perilaku)¶
sensor.set_auto_gain(), set_auto_exposure(), set_auto_whitebal() dan set_auto_blc() kini mencetak peringatan alih-alih menaikkan RuntimeError ketika sensor aktif tidak mendukung kontrol tersebut, sehingga skrip yang sama dapat berjalan di berbagai sensor dengan kemampuan yang berbeda. Kode yang mengandalkan penangkapan eksepsi harus diperbarui.
Commit: dbf4996f2
Daftar periksa migrasi¶
Untuk migrasi bersih ke v4.5.0, pekerjaan umum yang perlu dilakukan:
Ganti penggunaan
import lcddengan moduldisplaybaru dan backend yang sesuai (perubahan modul display).Beralih dari
lcd_touchkeFT5X06, perbarui nama pin LED lama, dan periksa kembali API driver IMU upstream (perubahan sentuh/pin/driver).Ganti
try/except RuntimeErrordi sekitar kontrol sensor yang tidak didukung dengan pemeriksaan kemampuan (perubahan kontrol sensor).