3.30. 마무리

스크립트가 물리 세계와 통신하는 순간 등장하는 machine 모듈의 부분들을 살펴보았습니다:

  • GPIO 출력과 입력 – LED나 트랜지스터를 구동하고, 버튼이나 리밋 스위치를 읽는 것. 모든 하드웨어 프로젝트가 의지하는 기본 구성 요소이며, 신뢰성이 필요한 읽기를 위한 풀 저항과 소프트웨어 디바운싱을 포함합니다.

  • 아날로그 신호 – ADC로 센서, 가변 저항, 또는 그 밖의 연속적으로 변하는 전압을 읽는 것; 그리고 DAC를 사용할 수 없을 때 PWM과 저역 통과 RC 필터로 제어된 전압을 생성하는 것.

  • PWM 응용 – LED 밝기 조절, H-브리지를 통한 DC 모터 속도 변경, 서보 위치 지정. 하나의 파형, 서로 다른 물리적 평균화기(눈, 모터의 인덕턴스)와 서로 다른 프레이밍(듀티 사이클 대 절대 펄스 폭).

  • 시리얼 버스 – 비동기 점대점 링크를 위한 UART; 장치마다 칩 셀렉트 하나를 가진 빠른 온보드 주변장치를 위한 SPI; 단 두 가닥의 선으로 느린 다중 장치 센서 버스를 위한 I2C; 모듈 사이의 견고한 다중 마스터 필드 버스를 위한 CAN.

  • 프로덕션 패턴 – 멈춤에서 복구하기 위한 워치독 타이머, 배터리를 늘리기 위한 슬립 모드. 카메라가 작업대를 떠나는 첫 순간부터 둘 다 필수가 됩니다.

이것이면 임베디드 장치의 감지 – 계획 – 실행 루프를 구축하기에 충분합니다: I2C / SPI / ADC로 센서를 읽고, Python에서 결정을 내리며, PWM / GPIO로 액추에이터를 구동하고, UART / CAN으로 상태를 보고하며, 이벤트 사이에는 슬립합니다.

3.30.1. 이 레퍼런스를 나중에 사용하기

하드웨어 장들을 한 번 읽고 마는 것이 아니라 레퍼런스 자료로 다루십시오. machine 모듈 레퍼런스 페이지는 “이 호출의 정확한 이름이 무엇인가”가 질문일 때 모든 클래스와 메서드를 한곳에 나열합니다. 여기의 장별 페이지는 레퍼런스 자료가 그 자체로는 주지 않는 “어떤 손잡이가 무엇을 하며, 왜 그러한가”라는 관점을 위해 다시 찾아올 곳입니다.

3.30.2. 여기서 어디로 갈 것인가

비전 센서가 다음 주요 주제입니다. 이 섹션이 거의 모든 MCU에 등장하는 일반적인 주변장치 – Pin, ADC, PWM, UART, SPI, I2C, CAN – 를 가르쳤다면, 다음 섹션은 카메라의 정의적인 주변장치를 매우 깊이 가르칩니다: 이미지 센서, 그리고 광자가 유리에 닿는 것과 RAM 안의 픽셀 버퍼 사이에 놓인 광학, 실리콘, 신호 처리의 긴 사슬입니다. 도구 모음은 csiimage 모듈로 옮겨가지만, GPIO를 구동하고 I2C로 통신하며 PWM을 사용하는 것에 관해 배운 모든 것은 그대로 이어집니다 – 스트로브, 트리거, 센서 실드 모두 방금 다룬 동일한 버스를 사용합니다.