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 display baru — menggantikan lcd dengan backend terpadu SPIDisplay / 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: lcddisplay, lcd_touchft5x06, pin LED diganti nama — lihat perubahan yang merusak kompatibilitas.

Fitur baru

  • Backend displayDisplayData (pembacaan DDC/EDID), serializer DVI/HDMI TFP410, dukungan layar MIPI-DSI pada STM32 H7, driver HDMI/DVI cec, dan library Python display dengan helper inisialisasi panel RGB ST7701.

  • Sentuh — driver sentuh kapasitif 5 titik GT911 baru (read_points() / read_id() / reset()).

  • Ekstensi machine — library machine yang dapat dibekukan dengan kelas helper machine.LED, dan metode baru machine.LED.value([v]).

  • Kontrol sensorsensor.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, dan sensor.disable_delays() untuk melewati penundaan settling kamera demi konfigurasi ulang yang lebih cepat.

  • i.MX RTsensor.set_xclk_frequency() kini menerima frekuensi apa pun (dibulatkan ke pembagi CSI valid terdekat) dan modul SPI lcd / tv / fir diaktifkan 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/vcvtp yang tidak valid pada Cortex-M4 (fast_floorf/fast_ceilf), bug penskalaan in-place dalam konversi image.to_*(), dan kerusakan cache draw DMA2D.

Display dan sistem:

  • Memperbaiki timing dan mode potret layar DSI, micro_speech listen() 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.

Commit: 227824aac, 6c6336829

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).

Commit: 86ad6dcdb, 9344c3b74, 2b5b7963b

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:

  1. Ganti penggunaan import lcd dengan modul display baru dan backend yang sesuai (perubahan modul display).

  2. Beralih dari lcd_touch ke FT5X06, perbarui nama pin LED lama, dan periksa kembali API driver IMU upstream (perubahan sentuh/pin/driver).

  3. Ganti try/except RuntimeError di sekitar kontrol sensor yang tidak didukung dengan pemeriksaan kemampuan (perubahan kontrol sensor).