라즈베리파이/GPIO

GPIO 출력(쉘 스크립트, 파이썬 이용)

youjin.A 2016. 2. 8. 04:50

쉘 스크립트

1. LXTerminal아이콘 더블 클릭~

 

2. 커맨드라인에 sudo su 입력

pi@ raspberry ~ $ sudo su

커맨드 프롬프트가 root@ raspberrypi:/home/pi# 이렇게 바뀐다.

 

3. 25번 핀의 LED를 켜고 끄기에 앞서 사용하려는 핀번호를 내보내기 파일(export)에 쓴다.

root@ raspberrypi:/home/pi# echo 25 > /sys/class/gpio/export

export파일에 핀 번호를 쓰면 해당 핀용 제어파일이 담길 새로운 디렉터리가 /sys/class/gpio/에 만들어진다.

여기서는 /sys/class/gpio/gpio25라는 파일이 만들어진다.

 

4. cd 명령을 사용하여 그 디렉터리로 이동한다.

root@ raspberrypi:/home/pi# cd /sys/class/gpio/gpio25

l(소문자 L)s 명령을 사용하여 현재 디렉터리에 어떤 파일과 폴더들이 있는지 본다.

root@ raspberrypi:/sys/class.gpio/gpio25# ls

actuve_low direction edge power subsystem uevent value

지금부터 작업해야 할 파일은 direction과 value파일이다.

 

5. direction 파일은 해당 핀을 입력이나 출력으로 설정하는 방식이다. LED를 켤려면 출력으로 설정.

root@ raspberrypi:/sys/class.gpio/gpio25# echo out > direction

 

6. LED를 켤려면 value파일에 1을 써야한다.

root@ raspberrypi:/sys/class.gpio/gpio25# echo 1 > value

엔터를 눌리면 LED가 켜진다!

 

7. LED를 끄려면 valud파일에 0을 쓴다.

root@ raspberrypi:/sys/class.gpio/gpio25# echo 0 > value

8. 루트에서 나갈려면 exit 입력

파이썬

LED를 켜​는 것은 이번에는 파이썬을 이용해서 구현 할 수 있다.

1. File Manager(파일 관리자)를 연다. 홈 디렉터리 /home/pi/에 있는지 확인한다.

 

 

2. 마우스 왼쪽버튼을 눌러서 Create New > Blank file 을 클릭하여 파일을 만든다. (이름, 맘대로).py 라고 이름을 지정한다. .py꼭 있어야됨. 나는 blink.py라고 했다.

 

3. 파일을 더블클릭하고 코드를 넣는다.

import RPi.GPIO as GPIO //GPIO제어에 필요한 코드를 가져온다.

import time //sleep함수에 필요한 코드를 가져온다.

 

GPIO.setmode(GPIO.BCM) //칩의 신호 번호를 사용한다.

GPIO.setup(25, GPIO.OUT) //25번 핀을 출력으로 설정한다.

 

while True: //들여쓰기를 한 코드 조각으로 무한 루프를 만든다.

     GPIO.output(25, GPIO.HIGH) //LED를 켠다.

     time.sleep(1) //1초 기달

     GPIO.output(25, GPIO.LOW) //LED 끈다.

     time.sleep(1)

 

 

4. LXTerminal을 열고 홈디렉터인지 확인한 다음 파일을 실행하자

pi@ raspberrypi ~ $ sudo python blink.py

LED가 깜박일 것이다.

 

5.Ctrl + C를 누르면 스크립트 종료하고 다시 커맨드 라인으로 돌아간다.

 

 

 

파이썬 언어 참고

https://wikidocs.net/57