v4.0.0¶
v4.0.0은 주요 v3 → v4 릴리스입니다. 최신 멀티 프레임 sensor 버퍼링 API(더블/트리플 버퍼링과 비디오 FIFO), 프레임 완료 콜백, Portenta를 지원하는 Bluetooth 모듈(NimBLE 스택), 초기 MT9M114 카메라 드라이버, MDMA로 오프로드된 카메라 캡처, image.draw_image()의 Bayer/JPEG 지원을 도입하며, MicroPython 1.15로 도약합니다. 레거시 스트리밍 모드가 제거되었고 sensor.set_windowing()이 재작업되었습니다 — 아래의 호환성을 깨는 변경 사항을 확인하세요.
주요 변경 사항¶
멀티 프레임 버퍼링 —
sensor가 더 높고 부드러운 프레임 레이트를 위해 더블 버퍼링, 트리플 버퍼링, 그리고 비디오 FIFO 모드를 갖추게 되었습니다.프레임 완료 콜백 — 논블로킹 캡처 파이프라인을 위해 새 프레임이 준비되면 실행되는 콜백을 등록합니다.
Bluetooth — NimBLE 스택 위에 구축된
bluetooth모듈로, Arduino Portenta H7에서 활성화됩니다(BLE 예제 포함).MT9M114 — 초기 카메라 센서 드라이버.
더 빠른 캡처 — 카메라 데이터 캡처를 위한 MDMA 오프로드.
draw_image()가 이제 Bayer 및 JPEG 소스/대상을 받아들입니다.MicroPython 1.15 — 번들된 MicroPython이 1.13에서 1.15로 업데이트되었습니다.
호환성을 깨는 변경: 레거시 스트리밍 모드가 제거되었고
sensor.set_windowing()이 재작업되었습니다 — 호환성을 깨는 변경 사항을 참조하세요.
새로운 기능¶
센서 멀티 버퍼링 —
sensor.set_framebuffers()/sensor.get_framebuffers()와SINGLE_BUFFER/DOUBLE_BUFFER/TRIPLE_BUFFER/VIDEO_FIFO모드를 추가하고, 더블, 트리플, 비디오 FIFO 캡처를 위한sensor.get_frame_available()을 추가했습니다.프레임 완료 콜백 — 각 새 프레임이 완료될 때 Python 콜백이 실행되도록
sensor.set_frame_callback()을 추가했습니다.Bluetooth — NimBLE 스택을 기반으로 하는
bluetooth모듈(NimBLE 서브모듈, CYW-BT 드라이버)을 추가하고, Arduino Portenta H7에서 BLE 예제와 함께 활성화했습니다.MT9M114 — 초기 MT9M114 카메라 센서 드라이버를 추가했습니다.
draw_image — 디베이어링 지원과 JPEG 복사 지원을 추가하여
image.draw_image()가 Bayer 및 JPEG 소스/대상 이미지를 받아들입니다.MDMA 캡처 오프로드 — 더 높은 처리량을 위해 카메라 데이터 캡처가 MDMA로 오프로드됩니다.
이제
-1을 전달하여 색상 팔레트 인자를 비활성화할 수 있습니다(None은 유효한 인자로 예약되어 있기 때문입니다).
기타 변경 및 개선 사항¶
새로운 소프트웨어 I2C 구현으로 전환했습니다. MicroPython 업스트림과 정렬했습니다. 보드별 ulab 구성. OpenMV 2에서 기본 내장 모듈을 활성화했습니다. 더 공정한 프레임 버퍼 리드아웃 잠금. Cortex-M0/M0+로 뮤텍스 지원을 확장하고 잠금 타임아웃을 추가했습니다.
버그 수정¶
카메라 및 이미징:
Pure Thermal 보드에서 FLIR Lepton 초기화 신뢰성, ImageIO JPEG 버퍼 / 일시 정지 처리, HM01B0 vflip/hmirror 설정, 이미지가 무효화될 때의 JPEG 버퍼 플러시, 그리고 framesize가 유효하지 않을 때 설정되던
cropped플래그를 수정했습니다.
시스템 및 연결:
USB 명령 드레이닝과 부트로더 리셋 명령, 뮤텍스 초기화, UART 클록 소스, FatFS 코드 페이지 정의, WINC1500 대역 외 ACK 처리, WiFi 디버깅, 그리고 Nano33 USB PID를 수정했습니다. 전용 아날로그 패드를 격리했습니다.
하드웨어 및 보드 지원¶
MT9M114 카메라 센서(초기 드라이버).
Arduino Portenta H7 — Bluetooth 활성화(NimBLE)와 BLE 예제.
Arduino Nano RP2040 Connect / Nano 33 BLE Sense — 지원되지 않는 곳에서 WiFi 디버그 플래그 비활성화. blinky 예제 추가. USB PID 수정.
호환성을 깨는 API 변경¶
v3.9.4와 v4.0.0 사이의 사용자에게 보이는 API 변경. 범위: modules/의 Python C 모듈과 scripts/libraries/의 Python 라이브러리.
각 변경에는 그 영향이 태그로 표시되어 있습니다:
major — 대부분의 스크립트에 영향을 줍니다. 거의 확실히 코드를 이식해야 합니다.
minor — 좁은 범위의 API. 이를 사용한 스크립트에만 영향을 줍니다.
behavior — 동일한 API, 다른 결과. 튜닝된 스크립트를 다시 확인하세요.
변경 사항은 그 순서대로 영향별로 그룹화되어 있습니다. 코드를 이식하기만 하면 된다면, 끝에 있는 마이그레이션 체크리스트로 건너뛰세요. 각 커밋 해시는 GitHub의 해당 diff로 연결됩니다.
스트리밍 모드 제거됨 (major)¶
레거시 센서 스트리밍 모드가 새로운 멀티 프레임 버퍼링 API를 위해 제거되었습니다. 스트리밍 모드를 활성화했던 코드는 DOUBLE_BUFFER / TRIPLE_BUFFER / VIDEO_FIFO와 함께 sensor.set_framebuffers()로 전환하고, 대신 sensor.snapshot() / sensor.get_frame_available()로 캡처를 구동해야 합니다.
커밋: a42f3a647
sensor.set_windowing() 재작업됨 (behavior)¶
sensor.set_windowing()이 훨씬 더 유연해졌습니다. 이제 여러 인자 형식(영역 튜플, 또는 가운데 정렬된 width/height, 또는 x, y, w, h)을 받아들이고 현재 해상도를 기준으로 윈도우를 해석합니다. 이전의 고정된 형식으로 윈도잉 인자를 전달했던 스크립트는 다른 영역을 선택할 수 있으므로 다시 확인해야 합니다.
커밋: 3e9c43554
MicroPython 1.13 → 1.15 (behavior)¶
번들된 MicroPython 코어가 1.13에서 1.15로(1.14를 거쳐) 업데이트되었습니다. 표준 라이브러리와 언어 동작은 업스트림 MicroPython 1.15를 따릅니다. 버전별 micropython / 표준 모듈 동작에 의존하는 스크립트를 다시 확인하세요.
ImageIO update_jpeg_buffer 인자 제거됨 (minor)¶
ImageIO JPEG 버퍼 업데이트가 이미지 소스 인자에서 버퍼를 도출하도록 재작업되었고, 명시적인 update_jpeg_buffer 인자가 제거되었습니다. ImageIO에 update_jpeg_buffer를 전달했던 스크립트는 그 인자를 제거해야 합니다.
커밋: 5c6937bd1
마이그레이션 체크리스트¶
v4.0.0으로 깔끔하게 이식하려면 일반적으로 다음 작업이 필요합니다:
제거된 스트리밍 모드의 모든 사용을 새로운
sensor.set_framebuffers()멀티 버퍼링 API로 교체하세요(스트리밍 모드 제거됨).재작업되어 더 유연해진 인자 처리에 맞춰
sensor.set_windowing()호출을 다시 확인하세요(윈도잉 변경).버전별 MicroPython 동작에 의존하는 스크립트를 MicroPython 1.15에 맞춰 다시 검증하세요(MicroPython 버전 상향).
ImageIO 호출에서
update_jpeg_buffer인자를 제거하세요(ImageIO 변경).
다른 모든 스크립트는 변경 없이 실행됩니다.