초보자를 위한 라즈베리 파이3 파이선 LED ON OFF 코딩
__Up to here, advertization area___
라즈베리파이에서 LED 를 코딩에 의해 on OFF 해보자. 라즈베리 파이는 자체 운영체계가 없는 마이크로 콘트롤러 아두이노와는 달리 리눅스 운영체계를 가지고 있다. 아두이노에서는 아두이노 편집기에서 작성한 코드를 업로딩 시키면 바로 코드가 실행이 되지만 라즈베리에서는 전원과 함께 on 되면 바탕화면에서 필요한 작업을 클릭하여 실행시켜야 한다.
아두이노 코딩을 하던 관점에서 관심을 가지는 부분은 도대체 어떻게 어떤 언어로 코딩을 할 것인가 하는 문제이다. 두 가지 언어가 있는데, 파이선은 라즈베리 운영체계를 깔면 자동으로 설치되는 언어인 반면에 HTML 언어와 혼용으로 쓸 수 있는 php는 별도의 설치 작업 수행이 필요하다.
아울러 하드웨어 인터페이스를 염두에 둔 C 언어도 검토해 볼 필요가 있다.
여기서는 아두이노 코딩의 특징이 대단히 간단 헀다는 점에 착안한다면 파이선으로 시작하는 것도 좋을 듯하다.
일단 라즈베리 파이 컴퓨터에서 총 40개에 달하는 핀들을 통해 입력이나 출력을 위해서는 GPIO 라이브러리 지원이 필수적이다. 이미 NodeMCU 핀 배치 설명에서 GPIO 라는 용어 설명이 있었다. 라즈베리 파이에서 핀 배치는 GPIO, BCM 및 WiringPi 세 가지 방식이 있다.
파이선 코딩에서 흔히 사용되는 GPIO는 BOARD 번호로 설정된다. BCM 넘버링은 브로드컴 칩 BCM2835 칩 사용에서 유래된 듯하며 php 언어 사용 시에는 WiringPi 방식의 넘버링과 WiringPi 라이브러리 설치 및 지원이 필요하다.
라즈베리 바탕화면에서 탭의 첫 번째 아이콘을 누르면 메뉴에서 IDLE 이라는 편집기를 사용하는 파이선 3을 볼 수 있다. 최신 버전인 파이선 3을 클릭하면 다음과 같이 편집기 화면이 나타난다.
또 다른 방법은 탭의 터미날 아이콘을 눌러 실행 화면을 구성하고 여기서 IDLE을 입력 후 엔터 키를 눌러도 편집기 화면이 나타난다.
다음과 같이 LED를 on OFF 하도록 코딩을 해보자.
코딩 첫 부분은 Processing 과 유사하게 라이브러리를 불러 들이는 구조이다. RPI.GPIO는 라즈베리 GPIO를 지원하는 라이브러리이고 time은 일종의 타이머를 지원하는 라이브러리이다.
time은 아두이노의 delay() 명령과 거의 유사한 sleep() 명령을 지원한다.
GPIO.setmode(GPIO,BOARD)는 GPIO 번호를 BOARD 방식으로 지정하며 핀 배치도를 참조하기 바란다. 예제에서는 GPIO 11번을 지정하였다.
# GPIO.setwarnings(false)의 #는 아두이노의 // 즉 코드 실행과는 무관하게 내용을 설명하는 부분에 해당한다.
GPIO.setup()은 아두이노의 setup() 문 내에서 흔히 사용되는 pinMode() 명령에 해당되며, GPIO.OUT은 지정된 디지털 핀을 출력 모드로 설정한다.
라즈베리 파이선에서는 코딩 자체가 마이크로 콘트롤러인 아두이노의 코딩과는 달리 loop()문 처럼 무한 반복되는 것은 아니므로 일단 for loop 문을 사용하여 블링크 횟수를 지정해 주도록 한다.
아두이노 for loop 와 문법 상 다른 점은 괄호를 사용하지 않고 명령 코드들을 indent 시켜 즉 탭만큼 안으로 들어가도록 코드를 배치하여 for loop 문의 범위를 정해 준다.
Run 탭을 눌러 메뉴에서 Run Module을 클릭하면 코드가 실행된다. 작업 수행이 끝나면 GPIO 설정했던 부분을 원상회복 하도록 클린업 시킨다.
첨부된 동영상을 참조하기 바란다.
코드 자체는 대단히 짧으므로 직접 입력해 보기 바란다.
라즈베리 파이3에서 파이선 코딩에 의한 LED on OFF 나 아두이노와 그다지 큰 차이점은 없어 보인다.