v1.7.0

v1.7.0 เปิดตัวโมดูล cpufreq (การควบคุมความถี่ CPU / overclocking) โมดูล os ของ MicroPython การควบคุม refresh rate / resolution ของเซนเซอร์ thermal MLX และการรองรับบอร์ด OpenMV Cam M7 (STM32F7) เบื้องต้น ลายเซ็นของ fir.init() การจัดการเฟรมที่ใหญ่เกินไป และค่าเริ่มต้นคุณภาพ JPEG เปลี่ยนแปลง — โปรดอ่านการเปลี่ยนแปลงที่ไม่เข้ากันด้านล่าง

ไฮไลต์

  • โมดูล cpufreq — สอบถาม / ตั้งค่าความถี่ CPU พร้อมตัวอย่าง overclocking

  • โมดูล os — ขณะนี้โมดูล os ของ MicroPython พร้อมใช้งาน

  • MLX thermalfir.init() รับ refresh rate และความละเอียด ADC

  • OpenMV Cam M7 — การรองรับบอร์ด STM32F7 เบื้องต้น

  • ไม่เข้ากัน: fir.init() ใช้ keyword-only แล้ว เฟรมที่ใหญ่เกินไปถูก auto-crop และค่าเริ่มต้นคุณภาพ JPEG ลดลง — ดูการเปลี่ยนแปลงที่ไม่เข้ากัน

ฟีเจอร์ใหม่

  • cpufreq — เพิ่มโมดูล cpufreq พร้อม cpufreq.get_frequency() / cpufreq.set_frequency() และค่าคงที่ CPUFREQ_120MHZ / 144 / 168 / 192 / 216MHZ บวกตัวอย่าง overclocking.py

  • os — เปิดใช้งานโมดูล os ของ MicroPython

  • MLX / FIR — ขณะนี้ fir.init() รับ refresh rate และความละเอียด ADC พร้อมตัวควบคุม refresh / resolution ที่ตรงกันสำหรับเซนเซอร์ thermal MLX

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

  • ปรับแต่งบริเวณ AGC/AEC ของ OV7725 (ลด motion blur) เปิดใช้งาน DSP solid colorbar สำหรับ OV7725 และแก้ไขการสตรีมบัฟเฟอร์เฟรมของ IDE (ไม่มีเฟรมเก่าหรือซ้ำกัน)

การแก้ไขบัก

  • แก้ไข DCMI/DMA transfer-size overflow ใน sensor.snapshot() ปรับปรุงการจัดการ buffer-overflow ในการบีบอัด JPEG ปรับปรุงบริเวณการทำงาน AEC/AGC ของ OV7725 สำหรับ auto exposure/gain ที่ดีขึ้น และแก้ไขสคริปต์ colorbar / self-test สำหรับ OV7725

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

  • OpenMV Cam M7 (STM32F7 / OPENMV7) — การรองรับบอร์ดและบูตโหลดเดอร์เบื้องต้น

  • OpenMV 2 — นาฬิกาเซนเซอร์ขับเคลื่อนโดยเอาต์พุต MCO

การเปลี่ยนแปลง API ที่ไม่เข้ากัน

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

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

  • minor — API แคบ ส่งผลกระทบเฉพาะสคริปต์ที่ใช้มัน

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

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

fir.init() ใช้ keyword-only แล้ว (minor)

fir.init() ได้รับการปรับปรุงให้รับอาร์กิวเมนต์แบบ keyword (type= / refresh= / resolution= ค่าเริ่มต้น refresh 64 Hz สูงสุด 512 Hz) แทนอาร์กิวเมนต์แบบตำแหน่ง อัปเดตการเรียก fir.init(...) แบบตำแหน่งเป็นรูปแบบ keyword

Commits: 958c5b7f7

เฟรมที่ใหญ่เกินไปถูก auto-crop เป็น QVGA (พฤติกรรม)

sensor.snapshot() ไม่ raise อีกต่อไปเมื่อเฟรม raw เกินขนาดเฟรม raw สูงสุดของบอร์ด — ขณะนี้เฟรม raw ที่ใหญ่เกินไปจะถูก windowed/cropped เป็น QVGA แทน (เฉพาะ JPEG-mode raw ยังคงถูกปฏิเสธ) เลือกขนาดเฟรมที่รองรับหากคุณพึ่งพา error เดิม

Commits: b655a5488, abace9e4f

ขนาดเฟรมสูงสุดของ OpenMV 2 ลดลงเป็น QVGA (พฤติกรรม)

บน OpenMV 2 ขนาดเฟรม integral-image / raw / blob สูงสุดถูกลดจาก VGA เป็น QVGA การร้องขอ VGA สำหรับการทำงาน grayscale / RGB565 / blob / integral-image บน OpenMV 2 ขณะนี้จะถูก crop เป็น QVGA — ออกแบบสคริปต์ที่ขึ้นอยู่กับการประมวลผล VGA บนบอร์ดนั้นใหม่

Commits: 7499062bd

ค่าเริ่มต้นคุณภาพ JPEG ลดลง (พฤติกรรม)

ค่าเริ่มต้นคุณภาพ JPEG ถูกลด (ค่าเริ่มต้น 50 → 35 พร้อมค่าขีดแบ่ง subsample ของ IDE ที่ต่ำลง) เพื่อการสตรีมที่เชื่อถือได้มากขึ้น JPEG ที่ถ่าย/สตรีมมีคุณภาพต่ำกว่าโดยค่าเริ่มต้น — ส่ง quality ที่ชัดเจนให้กับ image.compress() หากต้องการคุณภาพเดิม

Commits: d9c8b1535

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

สำหรับการย้ายที่ราบรื่นไปยัง v1.7.0 งานทั่วไปคือ:

  1. แปลงการเรียก fir.init(...) แบบตำแหน่งเป็นรูปแบบ keyword (การเปลี่ยนแปลง fir.init)

  2. ใช้ขนาดเฟรมที่รองรับแทนการพึ่งพา error เฟรมที่ใหญ่เกินไปเดิม (การเปลี่ยนแปลงเฟรมที่ใหญ่เกินไป) และออกแบบการประมวลผล VGA บน OpenMV 2 ใหม่ (การเปลี่ยนแปลงขนาดเฟรม OpenMV 2)

  3. ส่ง quality ที่ชัดเจนให้กับ image.compress() หากต้องการคุณภาพ JPEG เดิม (การเปลี่ยนแปลงคุณภาพ JPEG)

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