v1.1.0

v1.1.0 là bản phát hành kiến trúc nền tảng: bỏ các module ngoại vi tùy chỉnh ban đầu để chuyển sang MicroPython built-ins tiêu chuẩn, chuyển API xử lý ảnh vào module image và đồng hồ tốc độ khung hình vào time, đồng thời bổ sung các cascade Haar tích hợp sẵn, get_pixel() / set_pixel(), hỗ trợ board OpenMV 2, và gỡ lỗi qua USB-CDC. Đây là bản phát hành phá vỡ API nặng nề, định nghĩa lại toàn bộ API — hãy đọc các thay đổi phá vỡ bên dưới.

Điểm nổi bật

  • MicroPython built-ins — các module tùy chỉnh gpio / led / spi / socket / wlan / uart / file / select đã bị xóa để sử dụng pyb / machine của MicroPython.

  • Module imageImage() / HaarCascade() / các bộ mô tả giờ nằm trong module image.

  • time.clock — đồng hồ tốc độ khung hình được chuyển vào module time.

  • Cascade Haar tích hợp sẵnHaarCascade("frontalface") / HaarCascade("eye") (không cần file).

  • Hỗ trợ board OpenMV 2 và gỡ lỗi qua USB-CDC.

  • Thay đổi phá vỡ: cấu trúc module được định nghĩa lại — xem các thay đổi phá vỡ.

Tính năng mới

  • Image — thêm Image.get_pixel(x, y) / set_pixel() và truy cập điểm ảnh qua chỉ số img[i]; cascade Haar tích hợp trên bộ nhớ flash (HaarCascade("frontalface") / HaarCascade("eye")) cùng từ khóa stages= để giới hạn số tầng cascade; draw_string() hoạt động trên ảnh thang xám.

  • Sensor — thêm sensor.set_colorbar(), sensor.set_saturation(), và kích thước khung hình QQVGA2.

  • mlxmlx.read(type) với đầu ra mlx.RAINBOW / mlx.GRAYSCALE.

  • Gỡ lỗi — triển khai gỡ lỗi qua USB CDC, truy vấn phiên bản firmware fw_version(), firmware riêng cho từng board (OpenMV 1 / OpenMV 2), và các tập lệnh tự kiểm tra / thanh màu; lỗi nghiêm trọng/phân tích cú pháp được ghi vào bộ nhớ flash.

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

  • Hết bộ nhớ giờ phát sinh MemoryError thay vì OSError; các tập lệnh chạy với cơ chế ném lại ngoại lệ để in lỗi thay vì bị treo; tốc độ baud serial có thể cấu hình (mặc định 921600); hệ thống file flash lớn hơn; xung clock điểm ảnh của cảm biến được giảm xuống 54 MHz để tăng độ ổn định khi chụp; sensor.reset() chỉ dựa vào soft reset của cảm biến.

Sửa lỗi

  • Đã sửa: lỗi đối chiếu mẫu, find_features() lặp lại đối tượng đầu tiên, truy cập thanh ghi nguyên tử SCCB/I2C, phát hiện thẻ SD, ánh xạ chân (pin) soft-I2C, độ chính xác màu sắc fast_cbrtf / LAB, và việc sử dụng bộ nhớ của integral-image / bộ lọc median trên OpenMV 1 / 2.

Phần cứng và hỗ trợ board

  • Hỗ trợ board OpenMV 2 (STM32F427) (và thiết kế phần cứng OpenMV 3); MCO được sử dụng làm xung clock cảm biến trên OpenMV 2.

Thay đổi phá vỡ API

Các thay đổi API hiển thị với người dùng giữa v1.0.3-beta và v1.1.0. Phạm vi: C-modules Python trong modules/ và thư viện Python trong scripts/libraries/.

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

  • major — ảnh hưởng đến hầu hết các tập lệnh đã sử dụng tính năng đó; bạn cần port lại code.

  • behavior — API giống nhau, kết quả khác nhau; hãy kiểm tra lại các tập lệnh đã điều chỉnh.

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

Xóa các module ngoại vi tùy chỉnh (major)

Các module tùy chỉnh ban đầu clock / file / gpio / led / select / socket / spi / wlan / uart đã bị xóa để sử dụng các ngoại vi tích hợp pyb / machine của MicroPython. Hãy port các tập lệnh sang các tương đương MicroPython tiêu chuẩn (ví dụ: pyb.Pin / pyb.LED / pyb.SPI / pyb.UART).

Commits: 6d2fafa94

API xử lý ảnh được chuyển vào module image (major)

Image(), HaarCascade(), và các hàm lưu/tải bộ mô tả không còn là built-in trần nữa — chúng nằm trong module image mới. Các tập lệnh phải import image và sử dụng image.Image / image.HaarCascade().

Commits: 54288c535

Đồng hồ tốc độ khung hình được chuyển vào time (major)

Module clock độc lập đã bị xóa; đồng hồ tốc độ khung hình giờ nằm trong time. Sử dụng import timeclock = time.clock() — đối tượng trả về vẫn cung cấp .tick() / .fps() / .avg() / .reset().

Commits: a8928ca3b

/flash/sd không còn được tự động thêm vào sys.path (behavior)

Nhãn ổ đĩa / thư mục gốc đã được sửa và /flash cùng /sd không còn tự động được thêm vào sys.path. Các tập lệnh import các module hỗ trợ bằng tên đơn giản từ các vị trí đó phải thêm đường dẫn một cách tường minh (hoặc đặt module ở nơi có thể tìm thấy).

Commits: 09e77b5da

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

Để port sạch sang v1.1.0, công việc điển hình là:

  1. Thay thế các module tùy chỉnh gpio / led / spi / uart / socket / wlan / file / select bằng MicroPython pyb / machine (việc xóa module tùy chỉnh).

  2. import image và thêm tiền tố image. trước Image() / HaarCascade() (việc chuyển module image).

  3. Sử dụng import timeclock = time.clock() (việc chuyển clock).

  4. Thêm /flash / /sd vào sys.path một cách tường minh nếu bạn import các module hỗ trợ bằng tên đơn giản (thay đổi sys.path).

Tất cả các tập lệnh khác chạy không thay đổi.