v4.4.0

v4.4.0은 tf.regression() API, OpenMV Cam H7 Pro의 FLIR Lepton 지원, Arduino Nicla Vision의 Cortex-M4 보조 프로세서 지원, 그리고 MicroPython 1.19를 추가합니다. 일부 보드별 모듈과 WiFi/LCD 동작이 변경되었으므로 아래의 호환성 변경 사항을 확인하세요.

주요 사항

  • tf.regression() — 1D 입력/1D 출력 TensorFlow Lite 회귀 모델을 실행합니다.

  • OpenMV Cam H7 Pro의 FLIR Lepton 열화상 센서 지원.

  • Arduino Nicla Vision — Cortex-M4 보조 프로세서 지원, MicroSpeech 동작, LPUART1.

  • MicroPython이 1.19로 업데이트되었으며, ulab은 5.1.1로 업데이트되었습니다.

  • 호환성 변경: Nicla Vision의 lcd/tv 모듈이 비활성화되고 RP2040 Connect의 WiFi 드라이버가 변경되었습니다 — 호환성 변경 사항을 참조하세요.

새로운 기능

  • tf.regression(model, input_array) — 1D 입력/출력 TensorFlow Lite 회귀 모델을 위한 새로운 함수로, float 출력의 리스트를 반환합니다.

  • GC2145 제어sensor.set_auto_exposure()sensor.set_auto_whitebal()이 이제 GC2145에서 동작합니다(자동 노출 / 화이트 밸런스를 비활성화할 수 있으며, 명시적인 노출/게인은 아직 지원되지 않습니다).

  • Arduino Nicla Vision — Cortex-M4(CM4) 보조 프로세서 지원과 LPUART1 주변장치가 활성화되었습니다.

  • machine.PinUSB_VBUS 핀이 이제 사용자 스크립트에 노출됩니다.

기타 변경 및 개선 사항

  • MicroPython이 1.19로 업데이트되었고, ulab은 5.1.1로, 번들된 cyw43 WiFi 드라이버도 업데이트되었습니다.

  • RP2(Arduino Nano RP2040 Connect)와 nRF(Arduino Nano 33 BLE Sense) 포트가 IDE/호스트 연결을 위해 새로운 TinyUSB 기반 디버거로 전환되었습니다.

  • OV7670 XCLK가 12 MHz에서 24 MHz로 상향되었습니다(레지스터 세트 업데이트).

버그 수정

카메라 및 센서:

  • OpenMV Pure Thermal의 블롭 온도 통계가 이제 색상 이미지 대신 IR 이미지를 사용하므로, 블롭별 평균 온도가 올바르게 계산됩니다.

  • 더 정확한 스케일 출력을 위해 draw_image()의 ROI 처리와 영역 스케일링을 수정했습니다.

  • IMU SPI 버스가 활성화되어 있을 때 IMU가 계속 동작하도록, 소프트 리셋 후 IMU를 다시 초기화합니다.

시스템:

  • FAST/AGAST 특징 검출, 블롭 검출, CLAHE, LCD/TV 드라이버 전반의 부호 있는/없는 비교 문제를 수정했고, STM32 카메라-GPIO / SPI / DAC 해제 처리, H7 LPUART 핀 매핑, STM32Cube.AI nn 모듈 등록을 수정했습니다.

Arduino Nicla Vision:

  • MicroSpeech가 이제 동작하며(PDM 버퍼를 두 배로 늘리고 예제 추가), 저전력 대기 모드를 수정했습니다.

하드웨어 및 보드 지원

  • OpenMV Cam H7 Pro — FLIR Lepton 열화상 센서 지원.

  • Arduino Nicla Vision — CM4 보조 프로세서, LPUART1, MicroSpeech, 저전력 대기.

호환성에 영향을 주는 API 변경

v4.3.3과 v4.4.0 사이의 사용자에게 영향을 주는 API 변경입니다. 범위: modules/의 Python C 모듈과 scripts/libraries/의 Python 라이브러리.

각 변경 사항은 영향 정도가 태그로 표시됩니다:

  • minor — 좁은 범위의 API로, 특정 보드의 스크립트에만 영향을 줍니다.

  • behavior — 동일한 API이지만 결과가 다릅니다. 튜닝된 스크립트를 다시 확인하세요.

변경 사항은 해당 순서대로 영향별로 그룹화되어 있습니다. 코드를 포팅하기만 원한다면, 끝에 있는 마이그레이션 체크리스트로 이동하세요. 각 커밋 해시는 GitHub의 해당 diff로 연결됩니다.

Nicla Vision 모듈과 RP2040 WiFi (minor)

Arduino Nicla Vision에서 CM4 보조 프로세서 지원을 위한 메모리를 확보하기 위해 lcdtv 모듈이 비활성화되었습니다 — Nicla Vision에서 이 모듈을 사용하는 스크립트는 더 이상 해당 모듈을 찾을 수 없습니다. Arduino Nano RP2040 Connect는 OpenMV 자체 WiFi/nina 구현에서 상위 MicroPython NINA-W10 드라이버/모듈로 전환되었으며, 그 API는 다릅니다.

커밋: f78d191e3, ddf01cb09

WiFi 소켓 타임아웃 및 LCD 수직 반전 (behavior)

WINC1500 소켓 타임아웃은 이제 ETIMEDOUT 대신 논블로킹 오류(EWOULDBLOCK)를 반환하므로, 타임아웃된 소켓이 더 이상 예기치 않게 닫히지 않습니다 — ETIMEDOUT을 잡던 코드는 업데이트해야 합니다. SPI LCD 실드 display는 이제 트리플 버퍼링이 활성화되지 않은 상태에서 음수 y_scale이 요청되면 ValueError(“Vertical flip requires triple buffering!”)를 발생시킵니다.

커밋: 1dc4bea88, 7e52cf751

마이그레이션 체크리스트

v4.4.0으로 깔끔하게 포팅하기 위한 일반적인 작업은 다음과 같습니다:

  1. Nicla Vision에서는 lcd/tv 사용을 중단하고, Nano RP2040 Connect에서는 WiFi 코드를 상위 NINA-W10 드라이버로 포팅하세요(보드 모듈 변경 사항).

  2. WINC1500 소켓 코드가 타임아웃 시 EWOULDBLOCK을 처리하도록 업데이트하고, 수직 반전된 LCD 출력을 위해 트리플 버퍼링을 활성화하세요(동작 변경 사항).