v1.0.0-beta

v1.0.0-beta là phiên bản phát hành đầu tiên (beta) của OpenMV firmware — bản build công khai đầu tiên của OpenMV Cam. Nó đặt nền móng cho tất cả những gì tiếp theo: một runtime scripting MicroPython trên STM32F4 OpenMV Cam, API cảm biến sensor, thư viện thị giác máy image, và OpenMV IDE để phát triển trực tiếp. Là phiên bản đầu tiên, không có gì cần nâng cấp từ trước — mục này tóm tắt những gì firmware ban đầu được tích hợp.

Điểm nổi bật

  • MicroPython trên OpenMV Cam — chạy các tập lệnh Python trên camera qua USB với REPL tương tác và giao diện gỡ lỗi IDE.

  • Chụp ảnh từ camera — module sensor: cấu hình định dạng điểm ảnh / độ phân giải / tốc độ khung hình và lấy các khung hình bằng snapshot().

  • Thị giác máy — thư viện image: phát hiện vùng màu (blob), vẽ, bộ lọc, khớp mẫu, phát hiện khuôn mặt Haar-cascade, và điểm đặc trưng.

  • OpenMV IDE — IDE desktop với bộ đệm khung hình trực tiếp, trình soạn thảo code, và cập nhật firmware trong IDE.

  • Phần cứng — OpenMV Cam gốc (STM32F4) với camera OmniVision OV9650 / OV2640, hỗ trợ thẻ SD và WiFi-shield.

Tính năng mới

Scripting và module:

  • Một runtime MicroPython làm nền tảng firmware, với khả năng thực thi tập lệnh trên camera qua giao diện gỡ lỗi USB và REPL tương tác.

  • Module sensorset_pixformat() / set_framesize() / set_framerate(), điều khiển ngưỡng độ khuếch đại / độ sáng / độ tương phản / độ khuếch đại, reset(), snapshot(), và lật ngang / lật dọc — cùng với các hằng số cảm biến và độ phân giải.

  • Module thị giác máy image (imlib) hiển thị các đối tượng ảnh (với giao thức buffer Python) và bề mặt xử lý ảnh bên dưới.

  • Module time / clock để đo thời gian và FPS.

  • Các module ngoại vi ban đầu — led (đèn LED RGB), spi, gpio (I/O chân với đăng ký ngắt ngoài), uart, rng phần cứng, bộ định thời systick, và file / select cho hệ thống tập tin.

  • Kết nối mạng qua socket / wlan (CC3000 WiFi), driver màn hình lcd, module cảm biến nhiệt mlx90620, và ghi video AVI/MJPEG.

Xử lý ảnh:

  • Các khung hình camera được chụp vào bộ đệm khung hình được cấp phát động.

  • Phát hiện vùng màu (flood-fill) và ngưỡng màu sắc LAB/XYZ (với bảng chuyển đổi RGB↔LAB).

  • Các nguyên tắc vẽ (đường thẳng, chuỗi/font, hình tròn), bộ lọc (erode / dilate / median / invert / binary / threshold), co giãn ảnh (bilinear), trích xuất ảnh con, blit, và pha trộn alpha.

  • Khớp mẫu (với lưu/tải mẫu), phát hiện khuôn mặt/đối tượng Viola-Jones Haar-cascade (cascade có thể tải + bộ chuyển đổi cascade OpenCV), cascade LBP và bộ phát hiện mắt, phát hiện điểm đặc trưng FAST / SURF / FREAK và khớp bộ mô tả, ảnh tích phân, và phát hiện chuyển động.

  • Mã hóa JPEG (với điều khiển chất lượng), lưu ảnh PPM / PGM / PNG / raw, và mã hóa video AVI/MJPEG.

IDE và công cụ:

  • Ứng dụng desktop OpenMV IDE — bộ đệm khung hình trực tiếp với FPS, trình soạn thảo code (mở / mới / lưu / lưu-thành, file gần đây, menu Ví dụ tích hợp), kết nối / reset / tự động kết nối, và tải/lưu cấu hình.

  • Cập nhật firmware trong IDE qua DFU, tiện ích pydfu thuần Python, và lệnh USB force-into-bootloader; thư viện/giao thức host openmv.py; bộ xem bộ đệm khung hình độc lập và công cụ cascade; và quy tắc udev Linux.

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

  • Các tập lệnh ví dụ đi kèm: phát hiện vùng màu (blob), phát hiện / theo dõi khuôn mặt, SURF / điểm đặc trưng, khớp mẫu, LCD, bộ xem bộ đệm khung hình, blit, MJPEG streamer, ghi AVI, echo server, FPS, và demo JPEG / ghi ảnh.

Phần cứng và hỗ trợ bo mạch

  • OpenMV Cam — STM32F4xx (STM32F407 / F429) trên các phiên bản phần cứng đầu, với CMSIS + STM32 peripheral/Cube HAL và CMSIS-DSP.

  • Camera — OmniVision OV9650 và OV2640 (SCCB/I2C, điều khiển bộ điều áp) qua sensor HAL, cùng với cảm biến nhiệt hồng ngoại MLX90620; độ phân giải từ QQCIF/QCIF đến SVGA/UXGA ở tốc độ tối đa 30 FPS.

  • Lưu trữ / kết nối — thẻ SD (SPI và SDIO) với FatFS, hệ thống tập tin flash nội bộ, SDRAM (bộ đệm khung hình trong SDRAM), USB OTG FS (gỡ lỗi + DFU), CC3000 WiFi (shields WiFi / BLE), đèn LED hồng ngoại, và I2C soft/hardware và SPI điều khiển DMA.

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

Không có. v1.0.0-beta là phiên bản phát hành đầu tiên (beta) của OpenMV firmware — không có phiên bản trước để mất tương thích. Các phiên bản tiếp theo ghi lại các thay đổi không tương thích ngược so với phiên bản trước; xem phần còn lại của nhật ký thay đổi.