v4.5.0¶
v4.5.0은 주요 릴리스입니다. 기존 lcd 모듈이 SPI / 병렬 / DSI / TV 백엔드를 각각 갖춘 통합 display 모듈로 대체되었고, Arduino Giga 보드가 추가되었으며, 디스플레이, 터치, 센서 제어 기능이 대거 추가되었습니다. 몇 가지 호환성을 깨는 변경 사항이 있으니 아래 내용을 읽어보십시오.
주요 내용¶
새
display모듈 —lcd를 통합된SPIDisplay/RGBDisplay/DSIDisplay/TVDisplay백엔드로 대체합니다.Arduino Giga 보드 지원.
새 디스플레이/터치 하드웨어 — STM32 H7의 DSI 디스플레이, TFP410 DVI/HDMI, HDMI/DVI CEC, ST7701 RGB 패널, 그리고 GT911 / FT5X06 정전식 터치.
새 센서 제어 — 블랙 레벨 보정, 야간 모드,
sensor.disable_delays(); 훨씬 빨라진 전치(~5배)와 모폴로지(~2.5배).호환성 변경:
lcd→display,lcd_touch→ft5x06, LED 핀 이름 변경 — 호환성을 깨는 변경 사항을 참고하십시오.
새 기능¶
디스플레이 백엔드 —
DisplayData(DDC/EDID 읽기),TFP410DVI/HDMI 시리얼라이저, STM32 H7의 MIPI-DSI 디스플레이 지원, HDMI/DVIcec드라이버, 그리고ST7701RGB 패널 초기화 헬퍼를 포함한 Pythondisplay라이브러리.터치 — 새
GT9115점 정전식 터치 드라이버(read_points()/read_id()/reset()).machine확장 —machine.LED헬퍼 클래스를 포함한 프리징 가능한machine라이브러리와 새machine.LED.value([v])메서드.센서 제어 —
sensor.set_auto_blc(enable, regs=None)/sensor.get_blc_regs()(블랙 레벨 캘리브레이션),IOCTL_SET_NIGHT_MODE/IOCTL_GET_NIGHT_MODE(OV7725/OV5640), OV7670 hmirror/vflip, 그리고 더 빠른 재구성을 위해 카메라 안정화 지연을 건너뛰는sensor.disable_delays().i.MX RT —
sensor.set_xclk_frequency()가 이제 모든 주파수를 허용하며(가장 가까운 유효한 CSI 분주값으로 맞춤), SPIlcd/tv/fir모듈이 RT1060에서 활성화되었습니다.
기타 변경 및 개선¶
훨씬 빠른 이미지 연산 — 이미지 전치가 약 5배 빨라졌고
image.morph()가 약 2.5배 빨라졌습니다.카메라 버스 프로브가 이제 여러 장치 주소를 스캔하고 검증하여, 버스에 여러 장치가 있는 보드를 지원합니다.
버그 수정¶
카메라 및 센서:
여러 센서(HM01B0, HM0360, MT9M114, MT9V0xx, OV2640, OV5640, OV7690, OV7725, OV9650, PAJ6100)의 게인 계산 정확도, MT9V0xx 노출 / 컬럼 비닝, OV5640 노출, OV7670 VGA 윈도잉을 수정했습니다.
이제 STM32는 잘못된 이미지를 반환하는 대신 손상된 전치 프레임을 폐기합니다.
이미지 처리:
이미지 / FIR / ToF / LCD / TV 연산에 영향을 미치던 정수 오버플로, Cortex-M4의 잘못된
vcvtm/vcvtp부동소수점 명령어(fast_floorf/fast_ceilf),image.to_*()변환의 인플레이스 스케일링 버그, 그리고 DMA2D 그리기 캐시 손상을 수정했습니다.
디스플레이 및 시스템:
DSI 디스플레이 타이밍 및 세로 모드, Nicla Vision / Portenta H7의
micro_speechlisten(), STM32 사용자 스위치(pyb.Switch), I2C4 버스 지원을 수정했습니다.
하드웨어 및 보드 지원¶
Arduino Giga — 명명된 Arduino 핀 매핑과 전체 예제 세트를 갖춘 새 보드.
OpenMV RT1060 — SPI LCD, TV, FIR 열화상 모듈이 활성화되었습니다.
Arduino Nano 33 BLE Sense — LED 핀.
호환성을 깨는 API 변경¶
v4.4.3과 v4.5.0 사이의 사용자에게 보이는 API 변경. 범위: modules/의 Python C 모듈과 scripts/libraries/의 Python 라이브러리.
각 변경 사항에는 영향도가 표시되어 있습니다:
major — 이를 사용한 대부분의 스크립트를 수정해야 합니다.
minor — 좁은 범위의 API이며, 이를 사용한 스크립트만 영향을 받습니다.
behavior — API는 동일하지만 결과가 다릅니다. 튜닝된 스크립트를 다시 확인하십시오.
변경 사항은 그 순서대로 영향도별로 묶여 있습니다. 코드를 포팅하기만 하면 된다면 끝부분의 마이그레이션 체크리스트로 건너뛰십시오. 각 커밋 해시는 GitHub의 해당 diff로 연결됩니다.
lcd 모듈이 display로 대체됨 (major)¶
기존 lcd 모듈이 제거되고, SPIDisplay(SPI LCD 실드), RGBDisplay / 병렬, DSIDisplay(MIPI-DSI), TVDisplay 백엔드로 분리되어 공통 API를 갖춘 통합 display 모듈로 대체되었습니다. 스크립트는 import lcd에서 display 모듈로 전환하고 적절한 백엔드 객체를 생성해야 합니다.
터치 모듈, LED 핀, 번들 드라이버 (minor)¶
범용 lcd_touch 모듈이 전용 FT5X06 정전식 터치 드라이버 모듈로 대체되었습니다. 모든 보드 간 일관성을 위해 LED 핀 이름이 변경되었습니다(기존 LED 핀 이름을 참조하는 스크립트는 업데이트해야 합니다). 번들 hts221 / lps22h / lsm6dsox / lsm9ds1 IMU/센서 드라이버가 API가 약간 다른 업스트림 micropython-lib 버전으로 대체되었습니다(번들 예제도 이에 맞게 업데이트되었습니다).
지원되지 않는 센서 제어가 이제 경고를 출력함 (behavior)¶
sensor.set_auto_gain(), set_auto_exposure(), set_auto_whitebal(), set_auto_blc()는 이제 활성 센서가 해당 제어를 지원하지 않을 때 RuntimeError를 발생시키는 대신 경고를 출력합니다. 따라서 동일한 스크립트를 기능이 다른 여러 센서에서 실행할 수 있습니다. 예외를 잡는 데 의존하던 코드는 업데이트해야 합니다.
커밋: dbf4996f2
마이그레이션 체크리스트¶
v4.5.0으로 깔끔하게 포팅하려면 일반적으로 다음 작업이 필요합니다:
import lcd사용을 새display모듈과 적절한 백엔드로 대체하십시오(display 모듈 변경).lcd_touch를FT5X06로 전환하고, 기존 LED 핀 이름을 모두 업데이트하며, 업스트림 IMU 드라이버 API를 다시 확인하십시오(터치/핀/드라이버 변경).지원되지 않는 센서 제어를 둘러싼
try/except RuntimeError를 기능 확인으로 대체하십시오(센서 제어 변경).