오늘은 푸시버튼을 누르면 LED가 켜지는 겁~~나게 간단한 예제를 라즈베리파이에서 Python을 이용해서 테스트해 보도록 하겠습니다. 뭐 언제나 그렇듯 항상~~ 기초적인 거지요.. 푸쉬버튼과 LED를 살짝 구해야하고, 또 연결선등등을 구해야합니다만... 저는 이걸 엘레파츠의 라즈베리파이2 입출력 키트로 해결했습니다. 요즘은 엘레파츠가 마음에 들더군요^^ 배송도 빠르고~~ 대응도 괜찮고^^... 뭐 아무튼 그렇게 키트를 구했으니 이제 시작해볼까요...
일단 LED에 대해 아셔야합니다. 뭐냐구요?? +-를 알아야죠^^. 위 그림처럼 구분하면 됩니다. 내부를 보고 짧은쪽이 +, 혹은 다리가 긴 쪽이 +, 위에서 보았을때 동그스름한 부분이 +... 이렇습니다.^^
출처 : DIY Hacking http://diyhacking.com/raspberry-pi-robot/
그리고 라즈베리파이의 GPIO 핀맵을 알아야죠.. 저는 라즈베리파이 B+라서 위 그림 왼쪽의 40핀짜리를 읽으면 됩니다.^^ 그리고 [바로가기]에서 소개한 Fritzing이라는 툴로 그린 브레드보드 그림은
이렇습니다. 회로도로는
이렇구요... 푸쉬버튼은 GND로 한쪽을 연결하고, 다른쪽은 풀업저항을 이용해서 GPIO 21번에 연결했습니다. 그리고, LED는 330옴 저항으로 GPIO 6번에 연결했습니다. 위 그림으로 나머지는 다 설명되겠지요.. 원체 간결한 예제니까요^^
아까 이야기한 키트를 사면 케이스가 따라옵니다. 그러나 한가지 에러가 있는게 뚜껑을 닫으면 저 케이블이 연결되지 않더군요ㅠㅠ.
저렇게 케이블을 연장하고... GPIO를 확장하는
GPIO 확장 보드를 미니 브레드보드에 연결해서 사용했습니다. Fritzing에는 확장보드까지는 그리지 않았습니다.^^
그리고.. 저렇게 푸쉬버튼과 LED가 배치되었네요^^
이제 버튼을 누르면 LED가 켜져야죠^^
이렇게 말이죠.. ㅎㅎ 이제 가장 중요한 Python 코드를 보도록 하겠습니다.
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(6, GPIO.OUT) GPIO.setup(21, GPIO.IN) try: while True: inputIO = GPIO.input(21) if inputIO == False: GPIO.output(6, GPIO.HIGH) #time.sleep(1) else: GPIO.output(6, GPIO.LOW) #time.sleep(1) except KeyboardInterrupt: GPIO.cleanup()
먼저 라즈베리파이의 GPIO를 import하고 GPIO.setmode로 BCM을 설정해둡니다. 그리고, GPIO.setup으로 6번과 21번을 각각 GPIO.out과 in으로 설정해서 푸쉬버튼 값을 받고(in) LED를 켜기 위해 출력(out)하도록 설정합니다. 여기서 try/except 구문으로 구분한것은 키보드로 CTRL+C로 멈출때, GPIO 출력 설정을 지우기(GPIO.cleanup)위해서 입니다. 그렇지 않으면 다시 실행하면 GPIO가 열려있다는 에러 메세지를 받을 수도 있습니다. 그리고, 주석처리된 time.sleep(1)은 버튼을 누르거나 땔때, 1초를 기다리는 것으로 구미에 맞게 사용하시면 됩니다.^^ 코드야 원체 간단하니.. 이정도면 되죠^^ 오늘은 아가 미바뤼의 겨울방학으로 저는 하루 쉬면서 이렇게 포스팅을 할 수 있네요~^^....
'Hardware > SBC (rasp, jetson, latte panda)' 카테고리의 다른 글
라즈베리파이에서 Python 이용하여 GPIO 인터럽트 사용하기 (24) | 2016.04.18 |
---|---|
Python을 이용하여 라즈베리파이 카메라 영상에 오버레이(Overlay) 테스트해보기 (16) | 2016.03.16 |
푸시 버튼으로 라즈베리파이의 카메라 촬영하기 기능을 Python으로 구현하기 (20) | 2016.03.04 |
라즈베리파이에서 Python으로 PiCamera 카메라 심플하게 시작하기 (15) | 2016.02.24 |
라즈베리파이 RPi Camera 카메라 설치 (18) | 2016.02.19 |
라즈베리파이2 무선 인터넷 연결 및 한글 설정하기 (16) | 2016.02.12 |
라즈베리파이2 개봉 및 설치 Raspberry Pi 2 (20) | 2016.01.18 |