v4.1.0¶
v4.1.0은 완전한 Arduino Nano RP2040 Connect / Raspberry Pi Pico 지원(WiFi, Bluetooth, 카메라 캡처, jump-to-bootloader), 직접 JPEG 이미지 디코딩, 펌웨어에 내장된(frozen) urequests HTTP 클라이언트, OV7670 센서 지원, 표준화된 센서 오류 보고를 제공합니다. WiFi API와 센서 예외가 변경되었습니다 — 아래의 호환성 변경 사항을 읽어 보세요.
주요 사항¶
RP2 보드 — Arduino Nano RP2040 Connect / Pico가 WiFi(NINA-W10), Bluetooth(NimBLE), 카메라/DCMI 캡처, jump-to-bootloader를 갖추게 되었습니다.
JPEG 디코딩 — 이미지 연산이 이제 압축된 JPEG 이미지를 직접 받아들입니다.
urequestsHTTP 클라이언트가 펌웨어에 내장(frozen)되었습니다.OV7670 카메라 센서 지원.
호환성 변경: NINA/RP2 WiFi API가 재작업되었으며 여러 센서 오류가 이제
RuntimeError를 발생시킵니다 — 호환성 변경 사항을 참고하세요.
새로운 기능¶
Arduino Nano RP2040 Connect / Raspberry Pi Pico — NINA-W10
network드라이버를 통한 WiFi, Bluetooth/NimBLE, 카메라 캡처(DCMI PIO 프로그램), jump-to-bootloader 명령.JPEG 이미지 디코딩 —
find_apriltags(),lcd.display(),tv.display()및 관련 이미지 연산이 이제 압축된 JPEG 이미지를 직접 받아들입니다(바이너리/그레이스케일/RGB565로 디코딩).urequests— HTTP 클라이언트(GET/POST/PUT/…)가 이제 OpenMV 4 / 4 Plus / Portenta / Nicla에 내장(frozen)되었으며,http_post.py예제가 포함됩니다.ble_advertising헬퍼 라이브러리가 Nano RP2040 Connect에 내장(frozen)되었습니다.호스트/디버그 —
pyopenmv.reset_to_bl()및 부트로더로 재설정하는 새USBDBG_SYS_RESET_TO_BL(0x0E) 명령; Arduino Nano 33 BLE Sense의 jump-to-bootloader.OV7670 — 새로운 OV7670 카메라 센서 지원, OpenMV 4에서 선택 가능.
기타 변경 및 개선 사항¶
RP2 UDP 소켓이 바인딩되지 않은 채 사용될 때 임시 포트에 자동으로 바인딩됩니다; 번들된 MicroPython 서브모듈이 업데이트되었습니다.
버그 수정¶
네트워킹:
NINA WiFi 소켓 accept/close/send/recv/bind 처리 및 연산 타임아웃, 그리고 IDE 출력을 손상시킬 수 있던 RP2 디버그 텍스트 버퍼 경쟁 상태를 수정했습니다.
카메라 및 시스템:
HM01B0 리셋, OpenMV H7에서 센서 스캔 실패 후 카메라 I2C 버스가 멈추는 문제, USB 연결 해제 시 H7 ULPI 저전력 진입, H7 ADC 핀 생성, 그리고 Portenta 카메라 핀아웃 / 실드 SPI-CS를 수정했습니다.
하드웨어 및 보드 지원¶
Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi, Bluetooth, 카메라, 더 큰 플래시 파일시스템, MSC 부트로더.
OV7670 카메라 센서(OpenMV 4).
Arduino Portenta H7 — 브레이크아웃 I2C4, 추가 PWM/클럭 핀, OV7725 / MT9V034 센서.
호환성에 영향을 주는 API 변경¶
v4.0.2와 v4.1.0 사이의 사용자 가시적 API 변경 사항. 범위: modules/의 Python C 모듈과 scripts/libraries/의 Python 라이브러리.
각 변경 사항은 영향도에 따라 태그가 지정됩니다:
minor — 좁은 범위의 API; 이를 사용한 스크립트에만 영향을 줍니다.
behavior — 동일한 API이지만 결과가 다름; 튜닝된 스크립트를 다시 확인하세요.
변경 사항은 해당 순서대로 영향도별로 그룹화됩니다. 코드를 포팅하기만 하려면 끝에 있는 마이그레이션 체크리스트로 이동하세요. 각 커밋 해시는 GitHub의 해당 diff로 연결됩니다.
NINA / RP2 WiFi API 재작업 (minor)¶
NINA / RP2 WLAN 드라이버가 업스트림 MicroPython / CYW43 network 인터페이스에 맞추어 재작업되었습니다: WLAN(interface) 생성자(STA/AP 모드), 새로운 active([bool]) 메서드, connect의 별칭인 config / start_ap, connect()의 ssid 인자가 essid로 이름 변경, 새로운 channel 키워드, 그리고 nina.fw_version()이 이제 원시 바이트 대신 (major, minor, patch) 튜플을 반환합니다. NINA 펌웨어 버전 불일치는 이제 OSError 대신 치명적이지 않은 경고가 됩니다.
센서 오류가 이제 RuntimeError를 발생시킴 (behavior)¶
센서 오류 보고가 통합된 오류 코드 테이블을 중심으로 표준화되었습니다: 카메라 실패(캡처 타임아웃, 잘못된 framesize/pixformat/window/framerate, 프레임 버퍼 오류, JPEG 오버플로, 감지되지 않은 센서 등)가 이제 일관되고 설명적인 메시지를 발생시키며, 이전에 ValueError를 발생시키던 여러 조건이 이제 RuntimeError를 발생시킵니다(sensor.reset() 포함). 이러한 경우에 대해 ValueError를 잡던 코드는 대신 RuntimeError를 잡아야 합니다.
마이그레이션 체크리스트¶
v4.1.0으로 깔끔하게 포팅하기 위한 일반적인 작업은 다음과 같습니다:
NINA/RP2 WiFi 코드를 표준
network.WLAN인터페이스(WLAN(interface),active(),essid=)로 포팅하고nina.fw_version()에서 튜플을 받도록 기대하세요(WiFi API 변경).카메라 /
sensor.reset()오류 처리 주변의except ValueError를except RuntimeError로 변경하세요(센서 오류 변경).