v3.9.4

v3.9.4 menambahkan modul buzzer, ioctls deteksi gerak HM01B0 Himax (dengan contoh wake-on-motion berdaya rendah), kontrol jendela readout MT9V034, fungsi low-power Ethernet, driver kamera OV7670, dan kamera Arduino Nano 33 BLE Sense. Rilis ini juga membawa sejumlah besar peningkatan kecepatan JPEG / LCD / TV. API output VSYNC digantikan dengan callback dan matematika gain/eksposur MT9V034 telah dikoreksi — baca perubahan yang merusak di bawah ini.

Sorotan

  • Modul Buzzer — modul buzzer baru (freq(), duty(), RESONANT_FREQ) pada OpenMV Pure Thermal.

  • Deteksi gerak HM01B0 — ioctls deteksi gerak Himax baru beserta contoh wake-on-motion berdaya rendah.

  • Jendela readout MT9V034 — kontrol jendela readout global-shutter melalui sensor.ioctl().

  • Kamera/papan baru — driver OV7670 dasar, kamera Arduino Nano 33 BLE Sense, dan papan Bormio.

  • Pipeline lebih cepat — encoder JPEG SIMD yang ditulis ulang, debayering lebih cepat, dan peningkatan kecepatan transfer LCD/TV yang signifikan.

  • Merusak: sensor.set_vsync_output() digantikan dengan sensor.set_vsync_callback() dan matematika gain/eksposur MT9V034 telah dikoreksi — lihat perubahan yang merusak.

Fitur baru

  • Buzzer — menambahkan modul buzzer dengan buzzer.freq(), buzzer.duty(), dan konstanta buzzer.RESONANT_FREQ (OpenMV Pure Thermal).

  • Deteksi gerak HM01B0 — menambahkan ioctls IOCTL_HIMAX_MD_ENABLE / MD_WINDOW / MD_THRESHOLD / MD_CLEAR dan IOCTL_HIMAX_OSC_ENABLE, dengan contoh deteksi gerak Himax dan contoh wake berdaya rendah himax_wakeup_on_motion_detection.py.

  • Jendela readout MT9V034 — menambahkan IOCTL_SET_READOUT_WINDOW / IOCTL_GET_READOUT_WINDOW untuk kontrol jendela readout MT9V034 melalui sensor.ioctl().

  • Low-power Ethernet — menambahkan fungsi power-down / low-power Ethernet.

  • Portenta — menambahkan fungsi callback enable/disable external-oscillator.

Perubahan dan peningkatan lainnya

  • Menulis ulang encoder JPEG dengan SIMD dan mempercepat encoding Bayer→YCbCr, menjaga inti hardware JPEG tetap bertenaga selama eksekusi skrip, mempercepat debayering (~19,5 ms untuk VGA), membongkar kompresi JPEG ke MDMA, mempercepat jalur transfer TV/LCD dengan SIMD/DMA efisien, dan secara masif mengurangi penggunaan bus SPI LCD. Menambahkan driver USB3320 ULPI PHY untuk USB berkecepatan tinggi.

Perbaikan bug

Kamera dan sensor:

  • Memperbaiki init/streaming driver HM01B0 dan menyetel target AE / gain maksimumnya, mengoreksi pembatasan gain AGC/AEC MT9V034, dan memperbaiki pemuatan firmware autofocus OV5640 (urutan byte).

Tampilan:

  • Memperbaiki transfer DMA SPI LCD lebih besar dari 64 KB, polaritas output LCD, dan stabilitas bus LCD (AXI QOS).

Sistem dan konektivitas:

  • Memperbaiki instans SDMMC yang digunakan oleh driver CYW43 WiFi (dengan instans SDMMC yang ditentukan per-papan), meningkatkan efisiensi DMA FLIR Lepton (VOSPI dinaikkan ke 20 MHz pada H7), memperbaiki perilaku low-power/standby Portenta (batas arus PMIC SW1, low-power Ethernet dan ULPI), membuat server RTSP menoleransi header CSeq dan PLAY Range yang tidak berurutan (FFPLAY), memperbaiki penyelarasan 8-byte EABI stack linker, dan memperbaiki import yang rusak di contoh Portenta mqtt_sub.py.

Dukungan perangkat keras dan papan

  • Sensor kamera OV7670 — driver dasar.

  • Arduino Nano 33 BLE Sense — driver sensor kamera (port nrf) dengan perbaikan pin reset dan bus I2C.

  • HM01B0 — menambahkan resolusi 320x320.

  • Bormio — konfigurasi clock PLL, tata letak flash, dan GPIO PORT K (juga diaktifkan pada Portenta).

  • USB3320 ULPI PHY — USB berkecepatan tinggi.

Perubahan API yang merusak

Perubahan API yang terlihat oleh pengguna antara v3.9.3 dan v3.9.4. Cakupan: Python C-modules di modules/ dan library Python di scripts/libraries/.

Setiap perubahan ditandai dengan dampaknya:

  • major — memengaruhi sebagian besar skrip yang menggunakan fitur tersebut; Anda perlu melakukan porting kode.

  • behavior — API sama, hasil berbeda; periksa kembali skrip yang telah distel.

Perubahan dikelompokkan berdasarkan dampak dalam urutan tersebut. Jika Anda hanya ingin melakukan porting kode, lompat ke daftar periksa migrasi di akhir. Setiap hash commit terhubung ke diff-nya di GitHub.

Output VSYNC digantikan dengan callback (major)

sensor.set_vsync_output(pin) telah dihapus dan digantikan dengan sensor.set_vsync_callback(callback). Baris VSYNC tidak lagi menggerakkan Pin secara langsung; sebagai gantinya, sebuah callable Python dipanggil dengan status VSYNC, dan callback Anda yang mengaktifkan Pin tersebut. Kode yang menggunakan sensor.set_vsync_output() harus di-porting (lihat contoh vsync_gpio_output.py yang diperbarui).

Commits: 5bbe25c20

Matematika gain/eksposur MT9V034 dikoreksi (behavior)

Kecepatan clock MT9V034 dan matematika gain/eksposur telah dikoreksi, sehingga sensor.set_auto_gain() / sensor.set_auto_exposure() kini menghasilkan nilai yang akurat (dan karenanya berbeda) dari sebelumnya. Skrip yang meng-hardcode nilai gain/eksposur kompensasi sebagai solusi untuk matematika lama yang salah pada kamera global-shutter MT9V034 harus menghapus solusi tersebut dan menyetel ulang.

Commits: 4420536c4

Daftar periksa migrasi

Untuk porting bersih ke v3.9.4, pekerjaan umumnya adalah:

  1. Ganti sensor.set_vsync_output(pin) dengan sensor.set_vsync_callback(callback) dan aktifkan Pin dari dalam callback (perubahan VSYNC).

  2. Setel ulang solusi gain/eksposur MT9V034 terhadap matematika yang telah dikoreksi (perubahan MT9V034).

Semua skrip lainnya berjalan tanpa perubahan.