라즈베리 파이 GPIO 제어 (console, python)

 

라즈베리 파이의 GPIO 핀 구조는 아래와 같습니다.

53bc258dc6c0425cb44870b50ab30621

 

이 중 Digital 핀(GPIO xx)을 제어하는, 가장 기초에 해당하는 내용입니다.

테스트를 위해 아래와 같이 2개의 LED를 연결해 줍니다.

LED_python

 

 

Console 에서 GPIO 제어

 

먼저 해볼 방법은 console 에서 파일 다루듯이 제어하는 방법입니다. 왼쪽 빨간색 LED, GPIO 17번에 연결된 LED를 제어합니다.

cd 명령으로 /sys/class/gpio 폴더로 이동합니다. 그리고 폴더에 어떤 파일들이 있는지 한번 확인합니다.

  • cd /sys/class/gpio
  • ls -l

이 상태에서 GPIO17 핀을 초기화부터 해줍니다. 아래 명령으로… 그리고 다시 폴더에 어떤 파일들이 있는지 확인합니다.

  • echo 17 > /sys/class/gpio/export
  • ls -l

gpio17 심볼릭 링크가 생겼음을 알 수 있습니다. 이 링크를 통해 GPIO17을 제어합니다. 이제 GPIO17 을 input/output 어떤 모드로 사용할지 알려줘야 합니다.

  • echo out > /sys/class/gpio/gpio17/direction

gpio17 폴더로 들어가보면 direction 파일이 생성되어 있고 거기엔 out 이라고 쓰여져 있을겁니다. GPIO17 핀이 out (3.3V 출력) 모드로 설정된 것입니다.

GPIO17 은 digital 핀이므로 여기에 0 또는 1 값을 넣어줄 수 있습니다. 예상하셨겠지만 0이 0V – LED off 상태를 의미하고, 1이 그 반대입니다. LED를 켜기 위해서는 아래와 같이 실행합니다.

  • echo 1 > /sys/class/gpio/gpio17/value

다시 끄기 위해서는

  • echo 0 > /sys/class/gpio/gpio17/value

 

테스트가 다 끝나면 이제 정리 작업을 해줍니다.

  • cd /sys/class/gpio
  • echo 17 > /sys/class/gpio/unexport
  • ls -l

/sys/class/gpio 폴더의 내용을 확인해보면 앞서 생성된 gpio17 심볼릭 링크가 삭제되어 있음을 알 수 있습니다.

 

그런데 이렇게 제어하는건 좀 귀찮죠. 익숙하지도 않고… 다음은 파이썬으로 같은 작업을 해보겠습니다.

 

 

파이썬으로 GPIO 제어 1 (RPi.GPIO)

 

좀 더 우아하게 파이썬으로 GPIO 핀을 제어합니다. 먼저 RPi 라이브러리를 이용한 방법입니다. 제 경우에는 이 라이브러리가 이미 설치되어있던데;;; 다른 작업 하다가 설치한걸지도 모르겠네요. 아래와 같이 접속해보고 문제가 있는지 확인합니다.

  • sudo python
  • >>> import RPi.GPIO as GPIO
  • >>> GPIO.setmode(GPIO>BCM)
  • >>> quit()

문제가 발생한다면 라이브러리 설치합니다.

  • wget ‘http://downloads.sourceforge.net/project/raspberry-gpio-python/RPi.GPIO-0.5.4.tar.gz’
  • tar zxvf RPi.GPIO-0.5.4.tar.gz
  • cd RPi.GPIO-0.5.4/
  • sudo apt-get install python-dev
  • sudo python setup.py install

 

준비가 되었으면 테스트 파일을 만들어 봅니다. 위 회로도에 있는 2개의 LED (GPIO17, GPIO27)를 깜빡이는 예제입니다. 예제 파일을 만듭니다.

  • nano rpitest.py

아래 내용을 모두 넣어줍니다.

 

파이썬 파일을 실행시켜 봅니다. (root 권한 필요)

  • sudo python rpitest.py

30초 간 깜빡이고 종료되면 성공입니다.

 

 

파이썬으로 GPIO 제어 2 (WiringPi)

 

필수 패키지부터 설치합니다.

  • sudo apt-get install -y python-dev python-setuptools

 

WiringPi 다운로드, 빌드

  • git clone git://git.drogon.net/wiringPi
  • cd wiringPi
  • sudo ./build
  • cd ..

 

WiringPi2 다운로드, 인스톨

  • git clone https://github.com/Gadgetoid/WiringPi2-Python.git
  • cd WiringPi2-Python
  • sudo python setup.py install

 

WiringPi 파이썬 라이브러리가 WiringPi2 입니다. WiringPi2-Python/examples 폴더에 가면 예제들이 있습니다. 이걸 이용해서 테스트 해봅니다.

  • cd examples
  • nano quick2wire-io.py

 

예제를 아래와 같이 수정합니다.

 

실행할 때는 루트 권한으로 합니다.

  • sudo python quick2wire-io.py

 

문제없이 실행되면 끝!!

 

참고자료

 

Post Author: TORTUGA

TORTUGA
궁금하신 점은 새로 개편한 홈페이지의 QnA 게시판을 이용해주세요!!!!!!! http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=qna

댓글 남기기

이메일은 공개되지 않습니다.