v3.9.4

v3.9.4 เพิ่มโมดูล buzzer ioctl สำหรับ การตรวจจับการเคลื่อนไหว HM01B0 ของ Himax (พร้อมตัวอย่างการปลุกจากสถานะพลังงานต่ำ) การควบคุมหน้าต่างการอ่านค่า MT9V034 ฟังก์ชันพลังงานต่ำสำหรับ Ethernet ไดรเวอร์กล้อง OV7670 และกล้องสำหรับ Arduino Nano 33 BLE Sense นอกจากนี้ยังมีการปรับปรุงความเร็วครั้งใหญ่สำหรับ JPEG / LCD / TV API เอาต์พุต VSYNC ถูกแทนที่ด้วยคอลแบ็ก และการคำนวณค่าเกน/การรับแสงของ MT9V034 ได้รับการแก้ไข — โปรดอ่านการเปลี่ยนแปลงที่ทำให้สคริปต์เสียหายด้านล่าง

ไฮไลต์

  • โมดูล Buzzer — โมดูล buzzer ใหม่ (freq(), duty(), RESONANT_FREQ) สำหรับ OpenMV Pure Thermal

  • การตรวจจับการเคลื่อนไหว HM01B0 — ioctl สำหรับตรวจจับการเคลื่อนไหวของ Himax ใหม่ พร้อมตัวอย่างการปลุกจากสถานะพลังงานต่ำ

  • หน้าต่างการอ่านค่า MT9V034 — ควบคุมหน้าต่างการอ่านค่าชัตเตอร์แบบโกลบอลผ่าน sensor.ioctl()

  • กล้องและบอร์ดใหม่ — ไดรเวอร์ OV7670 เบื้องต้น กล้องสำหรับ Arduino Nano 33 BLE Sense และบอร์ด Bormio

  • ไปป์ไลน์เร็วขึ้น — เขียน SIMD JPEG encoder ใหม่ การดีเบเยอร์เร็วขึ้น และการถ่ายโอน LCD/TV ที่เร็วขึ้นอย่างมาก

  • การเปลี่ยนแปลงที่ทำให้สคริปต์เสียหาย: sensor.set_vsync_output() ถูกแทนที่ด้วย sensor.set_vsync_callback() และการคำนวณค่าเกน/การรับแสงของ MT9V034 ได้รับการแก้ไข — ดูการเปลี่ยนแปลงที่ทำให้สคริปต์เสียหาย

ฟีเจอร์ใหม่

  • Buzzer — เพิ่มโมดูล buzzer พร้อม buzzer.freq(), buzzer.duty(), และค่าคงที่ buzzer.RESONANT_FREQ (สำหรับ OpenMV Pure Thermal)

  • การตรวจจับการเคลื่อนไหว HM01B0 — เพิ่ม ioctl IOCTL_HIMAX_MD_ENABLE / MD_WINDOW / MD_THRESHOLD / MD_CLEAR และ IOCTL_HIMAX_OSC_ENABLE พร้อมตัวอย่างการตรวจจับการเคลื่อนไหวของ Himax และตัวอย่างการปลุกจากสถานะพลังงานต่ำ himax_wakeup_on_motion_detection.py

  • หน้าต่างการอ่านค่า MT9V034 — เพิ่ม IOCTL_SET_READOUT_WINDOW / IOCTL_GET_READOUT_WINDOW สำหรับการควบคุมหน้าต่างการอ่านค่า MT9V034 ผ่าน sensor.ioctl()

  • Ethernet พลังงานต่ำ — เพิ่มฟังก์ชันปิดพลังงาน/พลังงานต่ำสำหรับ Ethernet

  • Portenta — เพิ่มฟังก์ชันคอลแบ็กสำหรับเปิด/ปิด oscillator ภายนอก

การเปลี่ยนแปลงและการปรับปรุงอื่น ๆ

  • เขียน JPEG encoder ด้วย SIMD ใหม่และเร่งความเร็วการเข้ารหัส Bayer→YCbCr รักษาแกน JPEG ฮาร์ดแวร์ให้ทำงานระหว่างรันสคริปต์ เพิ่มความเร็วการดีเบเยอร์ (~19.5 มิลลิวินาทีสำหรับ VGA) ย้ายการบีบอัด JPEG ไปที่ MDMA เร่งความเร็วเส้นทางการถ่ายโอน TV/LCD ด้วย SIMD/DMA ที่มีประสิทธิภาพ และลดการใช้งาน SPI LCD bus อย่างมาก เพิ่มไดรเวอร์ USB3320 ULPI PHY สำหรับ USB ความเร็วสูง

การแก้ไขข้อบกพร่อง

กล้องและเซนเซอร์:

  • แก้ไขการเริ่มต้นและการสตรีมของไดรเวอร์ HM01B0 และปรับเป้าหมาย AE / ค่าเกนสูงสุด แก้ไขการจำกัดค่าเกน AGC/AEC ของ MT9V034 และแก้ไขการโหลดเฟิร์มแวร์โฟกัสอัตโนมัติของ OV5640 (ลำดับไบต์)

จอแสดงผล:

  • แก้ไขการถ่ายโอน DMA ของ SPI LCD ที่ใหญ่กว่า 64 KB ขั้วเอาต์พุต LCD และความเสถียรของ LCD bus (AXI QOS)

ระบบและการเชื่อมต่อ:

  • แก้ไขอินสแตนซ์ SDMMC ที่ใช้โดยไดรเวอร์ CYW43 WiFi (พร้อมอินสแตนซ์ SDMMC ที่กำหนดโดยบอร์ด) ปรับปรุงประสิทธิภาพ DMA ของ FLIR Lepton (VOSPI เพิ่มขึ้นเป็น 20 MHz บน H7) แก้ไขพฤติกรรมพลังงานต่ำ/สแตนด์บายของ Portenta (ขีดจำกัดกระแส PMIC SW1 พลังงานต่ำสำหรับ Ethernet และ ULPI) ทำให้เซิร์ฟเวอร์ RTSP รองรับ CSeq และ PLAY Range headers ที่ไม่เป็นลำดับ (FFPLAY) แก้ไขการจัดแนว EABI 8-ไบต์ของสแต็กในลิงเกอร์ และแก้ไขการ import ที่เสียหายในตัวอย่าง mqtt_sub.py ของ Portenta

ฮาร์ดแวร์และการรองรับบอร์ด

  • เซนเซอร์กล้อง OV7670 — ไดรเวอร์เบื้องต้น

  • Arduino Nano 33 BLE Sense — ไดรเวอร์เซนเซอร์กล้อง (nrf port) พร้อมการแก้ไขพิน reset และ I2C bus

  • HM01B0 — เพิ่มความละเอียด 320x320

  • Bormio — การกำหนดค่านาฬิกา PLL เลย์เอาต์แฟลช และ GPIO PORT K (เปิดใช้งานบน Portenta ด้วย)

  • USB3320 ULPI PHY — USB ความเร็วสูง

การเปลี่ยนแปลง API ที่ทำให้สคริปต์เสียหาย

การเปลี่ยนแปลง API ที่ผู้ใช้มองเห็นได้ระหว่าง v3.9.3 และ v3.9.4 ขอบเขต: Python C-modules ใน modules/ และ Python libraries ใน scripts/libraries/

การเปลี่ยนแปลงแต่ละรายการถูกแท็กด้วยผลกระทบ:

  • major — ส่งผลกระทบต่อสคริปต์ส่วนใหญ่ที่ใช้ฟีเจอร์นั้น คุณจะต้องพอร์ตโค้ด

  • behavior — API เหมือนเดิม แต่ผลลัพธ์ต่างออกไป โปรดตรวจสอบสคริปต์ที่ปรับแต่งไว้อีกครั้ง

การเปลี่ยนแปลงถูกจัดกลุ่มตามผลกระทบตามลำดับนั้น หากคุณต้องการพอร์ตโค้ดเท่านั้น ไปที่ รายการตรวจสอบการย้าย ที่ท้ายเอกสาร แต่ละแฮช commit เชื่อมโยงไปยัง diff บน GitHub

เอาต์พุต VSYNC ถูกแทนที่ด้วยคอลแบ็ก (major)

sensor.set_vsync_output(pin) ถูกลบออกและแทนที่ด้วย sensor.set_vsync_callback(callback) สาย VSYNC ไม่ขับเคลื่อน Pin โดยตรงอีกต่อไป แต่จะเรียก Python callable พร้อมสถานะ VSYNC และคอลแบ็กของคุณจะสลับ Pin เอง โค้ดที่ใช้ sensor.set_vsync_output() จะต้องถูกพอร์ต (ดูตัวอย่าง vsync_gpio_output.py ที่อัปเดตแล้ว)

Commits: 5bbe25c20

การคำนวณค่าเกน/การรับแสงของ MT9V034 ได้รับการแก้ไข (behavior)

ความเร็วนาฬิกาและการคำนวณค่าเกน/การรับแสงของ MT9V034 ได้รับการแก้ไข ดังนั้น sensor.set_auto_gain() / sensor.set_auto_exposure() จะให้ค่าที่ถูกต้อง (และด้วยเหตุนี้จึงแตกต่างจากเดิม) สคริปต์ที่ฮาร์ดโค้ดค่าเกน/การรับแสงเพื่อชดเชยการคำนวณที่ผิดพลาดเดิมบนกล้อง MT9V034 แบบโกลบอลชัตเตอร์ควรลบค่าชดเชยเหล่านั้นออกและปรับแต่งใหม่

Commits: 4420536c4

รายการตรวจสอบการย้าย

สำหรับการพอร์ตที่สะอาดไปยัง v3.9.4 งานทั่วไปคือ:

  1. แทนที่ sensor.set_vsync_output(pin) ด้วย sensor.set_vsync_callback(callback) และสลับ Pin จากภายในคอลแบ็ก (การเปลี่ยนแปลง VSYNC)

  2. ปรับแต่งค่าเกน/การรับแสงที่ชดเชยสำหรับ MT9V034 ใหม่ตามการคำนวณที่แก้ไขแล้ว (การเปลี่ยนแปลง MT9V034)

สคริปต์อื่น ๆ ทั้งหมดทำงานได้โดยไม่ต้องแก้ไข