Home » 산딸기 가지고 놀기 » 라즈베리파이 GPIO 강좌 : 02. Output 테스트 (LED 출력, 파이썬)

라즈베리파이 GPIO 강좌

라즈베리파이 GPIO 강좌 : 02. Output 테스트 (LED 출력, 파이썬)

2013.03.01

1. 학습내용

: 라즈베리파이 GPIO 를 다루어보기로 하겠다. 이번 강좌에서는 GPIO의 Output 기능을 테스트하기로 하자. 이를 위해서는 간단히 LED를 연결하고 LED를 키고 끄기는 프로그램을 해 볼 것이다. 사용언어는 파이썬(Python)이다.

2. 개발환경

: 개발환경은 하드웨어적으로는 라즈베리파이 모델B 버전2 512RAM 환경에, 소프트웨어적으로는 라즈베리파이의 공식 OS라고도 할 수 있는 데비안 리눅스계열의 Raspbian “wheezy”의 “2013-02-09-wheezy”버전을 사용하기로 하겠다. Raspbian “wheezy” 설치방법은 이전 강좌 “05. Raspberry Pi 퀵스타트 (OS 설치 및 테스트 구동)” 을 참고하기 바란다. 또한, 사용되는 언어로는 파이썬을 이용할 생각이다. 이는 Raspbian “wheezy”의 “2013-02-09-wheezy” 버전을 설치하면 기본 설치되어 있다.

끝으로, 라즈베리파이 OS의 의존패키지 등이 변경 및 업데이트 되었을 가능성도 있기때문에 본강좌를 시작하기 전에 기본적인 업데이트를 실행해주자. 명령어는 아래와 같이 두 개로 구성되어 있으며 터미널창에서 실행하도록 하자.

 

1. 업데이트 된 라이브러리 및 프로그램을 업데이트한다. 다운로드 개념이라고 보면된다.

sudo apt-get update

2. 업데이트된 라이브러리 및 프로그램을 설정 및 설치하게 된다.

sudo apt-get upgrade

 

3. LED 회로

: 이번 GPIO Output 테스트에 사용될 GPIO는 GPIO 23번, 24번이다. 이는 각각 P1 헤더핀의 16번, 18번핀에 해당된다. 회로도는 아래와 같이 구성하도록 하자. 브레드보드에서 작업해도 되고, 별도의 기판에 납땜을 해도좋다.

우선, LED 2개, 저항 220~330옴을 아래와 같이 라즈베리파이의 P1 헤더핀의 16번, 18번핀에 연결해주도록 하자. 아래의 회로도는 GPIO의 Output 값을 High 로 설정해 주면 LED가 On, Low로 설정해 주면 Off가 되는 구성이다.

(※ 참고로 LED는 아래 그림과 깉이 다리가 짧은 쪽이 Cathode – , 긴 쪽이 Anode + 이다. )

 gpio-2-1

gpio-2-2

gpio-2-3

gpio-2-4

 

 4. 프로그램 작성

: 이번LED 테스트는 파이썬으로 작성해 보고자 한다. 매우 간단하니 천천히 따라해 보자. 우선, 위와 같은 회로를 구성한 후 전원을 넣고, 라즈베리파이를 구동하자. 원래 라즈베리파이의 GPIO를 제어하기 위해서는 파이썬의 RPi.GPIO 라이브러리를 설치해야하나 Raspbian “wheezy”의 “2013-02-09-wheezy”버전 설치하게 되면 기본적으로 설치가 되어있어서 바로 프로그램 작성 후 실행이 가능하게 되어있다. 자~ 그럼 쉘에서 아래의 명령을 실행하며 LED를 켜보도록 하자.
1. 자신의 작업 폴더 생성 및 이동

mkdir gpio-test
cd gpio-test

2. 프로그램 작성 (편집기는 vi, nano, Leafpad 등 원하는 것을 사용한다. )

nano

 

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

print "Setup LED pins as outputs"

GPIO.setup(23, GPIO.OUT)
GPIO.output(23, False)
GPIO.setup(24, GPIO.OUT)
GPIO.output(24, False)

GPIO.output(23, True)
GPIO.output(24, True)

time.sleep(1)

GPIO.output(23, False)
GPIO.output(24, False)

raw_input('press enter to exit program')

GPIO.cleanup()

 

위 내용은 GPIO 23번, 24번핀을 출력핀으로 설정해주고 두 LED를 모두 ON 시킨 후, 1초 대기한다. 그 후 다시 Off 시키는 내용이다. 이 내용을 전부 입력해주고, “gpio-test1.py” 라는 이름으로 저장해주자.

gpio-2-5 gpio-2-6

 

5. 프로그램 실행

: GPIO 관련 프로그램 실행은 항상 루트 권한으로 실행해줘야 한다. 이를 실행해 주면 GPIO23, 24번에 연결된 LED가 모두 켜진 후, 1초 대기, 그리고 두 LED가 모두 꺼지는 작업을 수행하게 된다.

gpio-2-7

이로써 간단히 라즈베리파이의 GPIO 기능을 이용한 LED 제어를 해보았다.

다음 강좌에서는 스위치를 이용하여 입력 신호를 받아 보도록 하자.

 

[ 참고자료 ]

[1] “라즈베리파이 공식 사이트”, http://www.raspberrypi.org/
[2] “라즈베리파이 위키미디어 설명”, http://en.wikipedia.org/wiki/Raspberry_Pi
[3] “Embedded Linux Wiki”, http://elinux.org/
[4] “공식 판매점 Element14”, http://downloads.element14.com/raspberryPi1.html?COM=raspi-group
[5] “공식 판매점 RS Componts”, http://uk.rs-online.com/web/generalDisplay.html?id=raspberrypi
[6] “공식 판매점 Allied Electronics”, http://www.alliedelec.com/lp/120626raso/
[7] “element14의 레즈베리파이 커뮤니티”, http://www.element14.com/community/groups/raspberry-pi
[8] Embedded Linux 커뮤니티의 “RPi Tutorials”, http://elinux.org/RPi_Tutorials
[9] “RASPBERRY PI INFORMATION AND VIDEOS”, http://raspi.tv/
[10] “Raspberry Pi Spy”, http://www.raspberrypi-spy.co.uk/
[11] “RaspiHub”, http://www.raspihub.com/
[12] “Adafruit Blog”, http://www.adafruit.com/blog/category/raspberry-pi/
[13] “Raspberry Pi Pod”, http://www.recantha.co.uk/blog/
[14] “bcm2835”, http://www.open.com.au/mikem/bcm2835/

 

End.

written by Yoonseok Pyo
http://robotpilot.net/
http://cafe.naver.com/openrt
http://www.rasplay.org/


이 저작물은 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 Unported 라이선스 에
따라 이용할 수 있습니다.

산딸기마을 포스트 검색

공동제작 공동프로젝트 무상후원 기관

산딸기마을 기부하기

산딸기마을 방문자 현황

Flags Countries Visits Page views
South Korea 626063 1845660
United States 10882 26091
Japan 5011 13204
Germany 2755 5151
India 1897 2902
Canada 1729 4640
United Kingdom 1596 2642
Australia 1240 2901
Russia 1219 1677
China 1077 2239
Total Pageviews: 1936700