v1.7.0

v1.7.0 giới thiệu mô-đun cpufreq (điều khiển tần số CPU / ép xung), mô-đun os của MicroPython, điều khiển tốc độ làm mới / độ phân giải cảm biến nhiệt MLX, và bước đầu hỗ trợ bo mạch OpenMV Cam M7 (STM32F7). Chữ ký fir.init(), xử lý khung hình quá kích thước, và chất lượng JPEG mặc định đã thay đổi — hãy đọc phần thay đổi không tương thích bên dưới.

Điểm nổi bật

  • Mô-đun cpufreq — truy vấn / đặt tần số CPU, kèm ví dụ ép xung.

  • Mô-đun os — mô-đun os của MicroPython hiện có sẵn.

  • Cảm biến nhiệt MLXfir.init() nhận tốc độ làm mới và độ phân giải ADC.

  • OpenMV Cam M7 — bước đầu hỗ trợ bo mạch STM32F7.

  • Không tương thích: fir.init() hiện chỉ nhận tham số từ khóa, khung hình quá kích thước bị tự động cắt, và chất lượng JPEG mặc định giảm — xem phần thay đổi không tương thích.

Tính năng mới

  • cpufreq — bổ sung mô-đun cpufreq với cpufreq.get_frequency() / cpufreq.set_frequency() và các hằng số CPUFREQ_120MHZ / 144 / 168 / 192 / 216MHZ, cùng ví dụ overclocking.py.

  • os — kích hoạt mô-đun os của MicroPython.

  • MLX / FIRfir.init() hiện nhận tốc độ làm mới và độ phân giải ADC, với các điều khiển refresh / resolution tương ứng cho cảm biến nhiệt MLX.

Các thay đổi và cải tiến khác

  • Tinh chỉnh vùng AGC/AEC của OV7725 (ít nhòe chuyển động hơn), kích hoạt thanh màu DSP solid cho OV7725, và sửa lỗi truyền phát bộ đệm khung hình IDE (không còn khung hình cũ / trùng lặp).

Sửa lỗi

  • Sửa lỗi tràn kích thước truyền DCMI/DMA trong sensor.snapshot(), dọn dẹp xử lý tràn bộ đệm nén JPEG, cải thiện vùng hoạt động AEC/AGC của OV7725 để phơi sáng/khuếch đại tự động tốt hơn, và sửa các tập lệnh thanh màu / self-test cho OV7725.

Hỗ trợ phần cứng và bo mạch

  • OpenMV Cam M7 (STM32F7 / OPENMV7) — hỗ trợ bo mạch và bootloader ban đầu.

  • OpenMV 2 — xung nhịp cảm biến được điều khiển bởi đầu ra MCO.

Thay đổi API không tương thích

Các thay đổi API không tương thích dành cho người dùng giữa v1.6.0 và v1.7.0. Phạm vi: các C-module Python trong modules/ và thư viện Python trong scripts/libraries/.

Mỗi thay đổi được gắn nhãn theo mức độ ảnh hưởng:

  • minor — API hẹp; chỉ ảnh hưởng đến các tập lệnh đã sử dụng nó.

  • behavior — API giữ nguyên, kết quả khác; hãy kiểm tra lại các tập lệnh đã tinh chỉnh.

Các thay đổi được nhóm theo mức độ ảnh hưởng theo thứ tự đó. Nếu bạn chỉ muốn chuyển đổi mã, hãy chuyển đến danh sách kiểm tra di chuyển ở cuối. Mỗi hash commit liên kết đến diff của nó trên GitHub.

fir.init() hiện chỉ nhận tham số từ khóa (minor)

fir.init() đã được cải tiến để nhận tham số từ khóa (type= / refresh= / resolution=, mặc định refresh 64 Hz, tối đa 512 Hz) thay vì tham số vị trí. Hãy cập nhật các lệnh gọi fir.init(...) theo dạng vị trí sang dạng từ khóa.

Commits: 958c5b7f7

Khung hình quá kích thước bị tự động cắt về QVGA (hành vi)

sensor.snapshot() không còn báo lỗi khi khung hình thô vượt quá kích thước tối đa của bo mạch — thay vào đó, các khung hình thô quá kích thước hiện được windowing/cắt về QVGA (chỉ có chế độ raw JPEG vẫn bị từ chối). Hãy chọn framesize được hỗ trợ nếu bạn dựa vào lỗi trước đây.

Commits: b655a5488, abace9e4f

Kích thước khung hình tối đa của OpenMV 2 giảm xuống QVGA (hành vi)

Trên OpenMV 2, kích thước khung hình tối đa cho ảnh tích phân / thô / vùng màu (blob) đã giảm từ VGA xuống QVGA. Yêu cầu VGA cho các thao tác grayscale / RGB565 / blob / ảnh tích phân trên OpenMV 2 hiện bị cắt về QVGA — hãy thiết kế lại các tập lệnh phụ thuộc vào xử lý VGA trên bo mạch đó.

Commits: 7499062bd

Chất lượng JPEG mặc định giảm (hành vi)

Chất lượng JPEG mặc định đã giảm (mặc định 50 → 35, với ngưỡng subsample IDE thấp hơn) để truyền phát đáng tin cậy hơn. Các ảnh JPEG được chụp/truyền phát sẽ có chất lượng thấp hơn theo mặc định — hãy truyền quality rõ ràng cho image.compress() nếu bạn cần chất lượng trước đó.

Commits: d9c8b1535

Danh sách kiểm tra di chuyển

Để chuyển đổi sạch sang v1.7.0, các công việc điển hình là:

  1. Chuyển đổi các lệnh gọi fir.init(...) theo dạng vị trí sang dạng từ khóa (thay đổi fir.init).

  2. Sử dụng framesize được hỗ trợ thay vì dựa vào lỗi khung hình quá kích thước cũ (thay đổi khung hình quá kích thước), và thiết kế lại xử lý VGA trên OpenMV 2 (thay đổi framesize OpenMV 2).

  3. Truyền quality rõ ràng cho image.compress() nếu bạn cần chất lượng JPEG trước đó (thay đổi chất lượng JPEG).

Tất cả các tập lệnh khác chạy bình thường.