v1.7.0

v1.7.0에서는 cpufreq 모듈(CPU 주파수 / 오버클로킹 제어), MicroPython os 모듈, MLX 열화상 센서 새로 고침 / 해상도 제어, 그리고 초기 OpenMV Cam M7(STM32F7) 보드 브링업이 도입되었습니다. fir.init() 시그니처, 초과 크기 프레임 처리, 기본 JPEG 품질이 변경되었습니다 — 아래의 호환성 변경 사항을 읽어 보세요.

주요 사항

  • cpufreq 모듈 — CPU 주파수를 조회 / 설정하며, 오버클럭 예제를 포함합니다.

  • os 모듈 — MicroPython os 모듈을 이제 사용할 수 있습니다.

  • MLX 열화상fir.init()이 갱신 주기와 ADC 해상도를 받습니다.

  • OpenMV Cam M7 — 초기 STM32F7 보드 브링업.

  • 호환성: fir.init()은 이제 키워드 전용이며, 초과 크기 프레임은 자동으로 잘리고, 기본 JPEG 품질이 낮아졌습니다 — 호환성 변경 사항을 참조하세요.

새로운 기능

  • cpufreqcpufreq.get_frequency() / cpufreq.set_frequency()CPUFREQ_120MHZ / 144 / 168 / 192 / 216MHZ 상수, 그리고 overclocking.py 예제를 갖춘 cpufreq 모듈을 추가했습니다.

  • os — MicroPython os 모듈을 활성화했습니다.

  • MLX / FIRfir.init()이 이제 갱신 주기와 ADC 해상도를 받으며, MLX 열화상 센서에 대응하는 refresh / resolution 제어를 갖췄습니다.

기타 변경 및 개선 사항

  • OV7725 AGC/AEC 영역을 조정하고(모션 블러 감소), OV7725용 DSP 솔리드 컬러바를 활성화했으며, IDE 프레임버퍼 스트리밍을 수정했습니다(오래되거나 중복된 프레임 없음).

버그 수정

  • sensor.snapshot()의 DCMI/DMA 전송 크기 오버플로를 수정하고, JPEG 압축 버퍼 오버플로 처리를 정리했으며, 더 나은 자동 노출/게인을 위해 OV7725 AEC/AGC 동작 영역을 개선하고, OV7725용 컬러바 / 자가 진단 스크립트를 수정했습니다.

하드웨어 및 보드 지원

  • OpenMV Cam M7 (STM32F7 / OPENMV7) — 초기 보드 및 부트로더 지원.

  • OpenMV 2 — MCO 출력으로 구동되는 센서 클럭.

호환성을 깨는 API 변경

v1.6.0과 v1.7.0 사이의 사용자에게 보이는 API 변경 사항입니다. 범위: modules/의 Python C 모듈과 scripts/libraries/의 Python 라이브러리.

각 변경 사항에는 영향도가 태그로 표시되어 있습니다:

  • minor — 좁은 API; 이를 사용한 스크립트에만 영향을 줍니다.

  • behavior — 동일한 API, 다른 결과; 조정된 스크립트를 다시 확인하세요.

변경 사항은 그 순서대로 영향도별로 분류되어 있습니다. 코드를 포팅하기만 하면 된다면, 끝부분의 마이그레이션 체크리스트로 건너뛰세요. 각 커밋 해시는 GitHub의 해당 diff로 연결됩니다.

fir.init()이 이제 키워드 전용입니다 (minor)

fir.init()은 위치 인자 대신 키워드 인자(type= / refresh= / resolution=, 기본 refresh 64 Hz, 최대 512 Hz)를 받도록 재작업되었습니다. 위치 인자 형태의 fir.init(...) 호출을 키워드 형태로 갱신하세요.

커밋: 958c5b7f7

초과 크기 프레임이 QVGA로 자동 잘림 (behavior)

sensor.snapshot()은 원시 프레임이 보드의 최대 원시 프레임 크기를 초과해도 더 이상 예외를 발생시키지 않습니다 — 초과 크기의 원시 프레임은 이제 QVGA로 윈도잉/크롭됩니다(JPEG 모드 원시 프레임만 여전히 거부됨). 이전 오류 동작에 의존했다면 지원되는 프레임 크기를 선택하세요.

커밋: b655a5488, abace9e4f

OpenMV 2 최대 프레임 크기가 QVGA로 낮아짐 (behavior)

OpenMV 2에서 최대 적분 이미지 / 원시 / 블롭 프레임 크기가 VGA에서 QVGA로 낮아졌습니다. OpenMV 2에서 그레이스케일 / RGB565 / 블롭 / 적분 이미지 연산에 VGA를 요청하면 이제 QVGA로 잘립니다 — 해당 보드에서 VGA 처리에 의존하던 스크립트를 다시 설계하세요.

커밋: 7499062bd

기본 JPEG 품질 감소 (behavior)

보다 안정적인 스트리밍을 위해 기본 JPEG 품질이 감소되었습니다(기본값 50 → 35, 더 낮은 IDE 서브샘플 임계값 포함). 캡처/스트리밍된 JPEG는 기본적으로 눈에 띄게 품질이 낮습니다 — 이전 품질이 필요하다면 image.compress()에 명시적인 quality를 전달하세요.

커밋: d9c8b1535

마이그레이션 체크리스트

v1.7.0으로 깔끔하게 포팅하려면 일반적으로 다음 작업이 필요합니다:

  1. 위치 인자 형태의 fir.init(...) 호출을 키워드 형태로 변환하세요 (fir.init 변경).

  2. 기존의 초과 크기 프레임 오류에 의존하는 대신 지원되는 프레임 크기를 사용하고 (초과 크기 프레임 변경), OpenMV 2에서 VGA 처리를 다시 설계하세요 (OpenMV 2 프레임 크기 변경).

  3. 이전 JPEG 품질이 필요하다면 image.compress()에 명시적인 quality를 전달하세요 (JPEG 품질 변경).

그 외 모든 스크립트는 변경 없이 실행됩니다.