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ụngpyb/machinecủa MicroPython.Module
image—Image()/HaarCascade()/ các bộ mô tả giờ nằm trong moduleimage.time.clock— đồng hồ tốc độ khung hình được chuyển vào moduletime.Cascade Haar tích hợp sẵn —
HaarCascade("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óastages=để 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ìnhQQVGA2.mlx—mlx.read(type)với đầu ramlx.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
MemoryErrorthay 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ắcfast_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 time và clock = time.clock() — đối tượng trả về vẫn cung cấp .tick() / .fps() / .avg() / .reset().
Commits: a8928ca3b
/flash và /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à:
Thay thế các module tùy chỉnh
gpio/led/spi/uart/socket/wlan/file/selectbằng MicroPythonpyb/machine(việc xóa module tùy chỉnh).import imagevà thêm tiền tốimage.trướcImage()/HaarCascade()(việc chuyển module image).Sử dụng
import timevàclock = time.clock()(việc chuyển clock).Thêm
/flash//sdvàosys.pathmộ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.