시작하기
GPIO

GPIO

GPIO(General Purpose Input Output)는 프로세서가 주변 장치와 신호를 주고받는 범용 입출력 포트입니다. 라즈베리파이와 같은 대부분의 SBC(Single Board Computer)는 아래 그림과 같은 GPIO 핀 헤더를 제공하며, Grablo 는 이 핀에 연결한 장치를 I/O장치로 제어합니다. 보드별 핀 번호는 부록의 핀맵을 참고합니다.

라즈베리파이 보드와 40핀 GPIO 헤더의 핀 배치도
라즈베리파이의 GPIO 헤더. 각 핀의 GPIO 번호와 기능이 표시되어 있습니다.

설정 → GPIO에서는 GPIO 샘플 시간과 외부 GPIO 를 설정합니다. 샘플 시간은 GPIO 입력 변화를 감시하는 시간 간격으로, 짧을수록 정밀하지만 CPU 점유율이 높아지며, 프로젝트 디바이스가 라즈베리파이(0~4)인 경우에만 표시됩니다. 1, 2, 4, 5, 8, 10μs 중에서 선택하며 일반적으로 5μs 가 적당합니다. 이 값은 PWM 모니터링, 고속 카운터처럼 GPIO 입력의 변화를 감지하는 장치의 정밀도를 결정하므로, 샘플 시간보다 짧은 변화는 감지되지 않습니다. 예를 들어 5μs(5마이크로초, 초당 20만 번)로 설정하면 5μs 보다 짧게 바뀐 입력은 감지할 수 없습니다.

외부 GPIO

일반 PC 와 같이 보드에 GPIO 핀이 없거나 보드의 핀이 부족한 경우에는 외부 GPIO에 FT232H, MCP2221, NUMATO 의 USB-GPIO 어댑터를 등록하여 사용할 수 있습니다. 어댑터는 타입에 관계없이 여러 개를 추가할 수 있으며, 어댑터별 핀 구성과 지원 기능은 부록의 외부 GPIO 어댑터 표를 참고합니다.

FT232H USB-GPIO 어댑터 보드 사진
FT232H: USB to GPIO, UART, SPI, I2C
MCP2221 USB-GPIO 어댑터 보드 사진
MCP2221: USB to GPIO, UART, I2C
NUMATO 8채널 USB GPIO 보드 사진
NUMATO: USB to GPIO + ADC
항목설명
이름어댑터를 구분할 이름입니다. 임의로 지정합니다.
타입FT232H(기본값), MCP2221, NUMATO 중에서 선택합니다.
인덱스FT232H 와 MCP2221 에 표시됩니다. 같은 타입의 어댑터가 여러 개일 때 각 어댑터를 구분하는 번호(0~255)이며, 스캔 버튼을 누르면 컨트롤러에 연결된 장치가 검색됩니다. 장치가 하나이면 기본값(Device 0)을 사용합니다.
모델NUMATO 에 표시됩니다. USB-GPIO 8CH + ADC(기본값)부터 16CH, 32CH, 64CH, 128CH + ADC 까지 채널 수에 맞는 모델을 선택합니다.
시리얼 포트NUMATO 에 표시됩니다. 어댑터가 연결된 시리얼 포트를 검색 버튼으로 찾거나 직접 입력합니다(예: Windows 는 COM3, Linux 는 /dev/ttyACM0).
알아두기 인덱스는 타입별로 0부터 매깁니다. 예를 들어 FT232H 두 개와 MCP2221 한 개를 연결했다면 첫 번째 FT232H 는 인덱스 0, 두 번째 FT232H 는 인덱스 1, MCP2221 은 인덱스 0 입니다.

Linux 컨트롤러에서는 터미널 또는 SSH 에서 다음 명령으로 NUMATO 어댑터의 시리얼 포트를 확인할 수 있습니다. NUMATO 어댑터가 하나이고 다른 시리얼 장치를 연결하지 않았다면 /dev/ttyACM0 입니다.

dmesg | grep ttyACM