라즈베리파이 GPIO 파이썬 프로그래밍 마스터하기: 단계별 튜토리얼
GPIO 핀은 모든 라즈베리파이 마이크로컨트롤러의 핵심 특징입니다. 특히 입출력 확장을 통해 싱글 보드 컴퓨터(SBC)의 기능을 크게 확장할 수 있죠. 이번 튜토리얼에서는 라즈베리파이 GPIO 핀을 심층적으로 살펴보고, 파이썬으로 제어하는 방법을 단계별로 안내합니다.
GPIO란 무엇이며 어떻게 작동하는가?
그림 1: GPIO 핀
GPIO(General Purpose Input Output)는 라즈베리파이 마이크로컨트롤러와 SBC에 공통으로 존재하는 범용 입출력 인터페이스입니다. 라즈베리파이 제로 및 기타 모듈의 입출력 핀 단자가 바로 GPIO입니다.
이 핀들을 통해 적외선 송신기, 모터 등 전자 부품을 연결할 수 있습니다. 또한 라즈비안 OS의 핀 헤더 구멍을 통해 스위치, 센서 모듈 등 외부 물리적 컴포넌트로부터 데이터를 수신할 수도 있습니다.
우선 하드웨어 설정을 올바르게 완료해 핀이 의도대로 작동하도록 해야 합니다. 이어서 사용 중인 파이 모델에 맞는 소프트웨어 설정도 필요합니다.
라즈베리파이 GPIO 핀아웃 상세 해설
그림 2: 라즈베리파이 마이크로컨트롤러
라즈베리파이 B+, 라즈베리파이 제로, 또는 라즈베리파이 OS가 설치된 모든 마이크로컨트롤러에는 40핀 헤더가 장착되어 있습니다.
초기 모델은 달랐습니다. 예컨대 라즈베리파이 모델 B는 26핀이었습니다. 라즈베리파이 OS의 모든 40개 GPIO 핀은 각자의 고유 기능을 가지므로, 초기 설정 시 핀 기능을 정확히 파악하는 것이 중요합니다.
각 핀 모드에 대한 상세 설명:
파이썬으로 라즈베리파이 GPIO 핀 프로그래밍하기
그림 3: 파이썬 코딩 개념도
이제 GPIO 핀을 통해 소프트웨어로 하드웨어 부품을 제어하는 방법을 알아보겠습니다.
하드웨어 준비물
이 튜토리얼에서는 파이 웨지(Pi Wedge) 브레이크아웃 키트를 권장합니다. 없을 경우 수-암 점퍼 와이어로 브레드보드와 연결하면 됩니다.
필요 부품:
- 브레드보드 및 브레드보드 레일
- 수-암 점퍼 와이어
- 풀업 저항(내부 풀업) 및 풀다운 저항
- 330옴 저항
- 수동 적외선 센서 또는 LED
파이썬 GPIOzero API 라이브러리
라즈베리파이의 입출력 핀을 파이썬으로 제어하려면 GPIOzero 라이브러리가 필요합니다. 파이썬 프로젝트 디렉토리를 직접 찾아볼 필요 없이, 대부분의 파이 부품이 라이브러리에 정의되어 있어 편리합니다.
파이썬(RPi.GPIO) API 설정 방법
그림 4: 파이썬 언어 개념도
라즈비안 OS를 사용 중이라면 파이썬 GPIO 라이브러리가 기본 탑재되어 있어 별도 다운로드가 불필요합니다. 다른 OS라면 관련 명령어로 설치해야 합니다.
라즈비안 설치 후 from gpiozero import ... 구문으로 임포트하면 됩니다. 임포트 시간은 짧으며, 완료 후 다음 단계로 진행하면 됩니다.
참고: 반드시 라즈비안 OS여야 파이썬을 설치할 수 있는 것은 아닙니다. 라즈비안은 단지 파이썬 라이브러리 설정을 가장 직관적으로 지원할 뿐입니다.
파이썬 환경 설정
주로 RPi.GPIO 모듈을 사용합니다. 앞서 언급했듯 파이썬(RPi.GPIO) API를 쓰면 GPIO 핀 작동을 위해 별도 파일을 다운로드할 필요가 없습니다.
설정 단계
먼저 아래 명령어를 실행하세요:
다음으로 프로젝트에 사용할 핀 번호 체계를 선택합니다. 두 가지 방식 중 선택 가능:
- 브로드컴 칩 전용 핀 (BCM 모드)
- 보드 번호 체계 (BOARD 모드)
이어 핀 모드를 설정합니다. 아래 명령어로 핀 모드 설정을 진행하세요:
라즈베리파이 GPIO 프로젝트 예시
그림 5: 라즈베리파이
하드웨어/소프트웨어 설정이 끝났다면 raspi-config 도구로 다양한 실전 프로젝트에 도전해 보세요. 위에서 배운 GPIO 튜토리얼만 잘 이해하면 물리 컴퓨팅 프로젝트를 바로 시작할 수 있습니다.
가능한 프로젝트 예시:
- 라즈베리파이 적외선 모션 센서 / 모션 이벤트 감지기
- 라즈베리파이 모션 감지 알람
- 라즈베리파이 이미저(Imager) 프로젝트
결론
지금까지 GPIO 헤더 핀을 다양한 외부 부품과 연결하고 여러 입력에 연동하는 방법을 알아봤습니다. 핀 헤더 행(GPIO 핀) 덕분에 라즈베리파이 제로는 놀라운 컴퓨팅 디바이스가 됩니다. 이 필수 도구에 대한 추가 문의는 언제든 연락 주세요.