오렌지파이(Orange Pi) GPIO 제어
라즈베리파이, 오렌지파이

오렌지파이(Orange Pi) GPIO 제어

반응형

오렌지 파이가 가지고 놀기 정말 좋은 보드이지만 어째서인지 공식적인 GPIO를 제어하는 라이브러리가 없다. 라즈베리파이보다 저렴하지만 인기가 인지도가 적은 데는 다 이유가 있다. (확실히 정보량이 적다.) 필자는 Orange Pi PC 버전을 구매해 사용하고 있다.

 

구글링을 해보니 해외 사용자가 제작해둔 GPIO 라이브러리가 있었다. 하지만 업데이트가 1년전이라 작동할지는 의문이었다.

 

https://github.com/Jeremie-C/OrangePi.GPIO

 

Jeremie-C/OrangePi.GPIO

RPi.GPIO drop-in replacement library for Orange Pi Boards - Jeremie-C/OrangePi.GPIO

github.com

pip으로는 라이브러리가 설치가 되지 않아 Manual로 설치해주었다. 아래와 같이 입력하면 된다.

sudo apt-get update
sudo apt-get install python-dev git
git clone https://github.com/Jeremie-C/OrangePi.GPIO
cd OrangePi.GPIO
sudo python setup.py install

 

example 폴더에 몇가지 간단한 코드들이 있다. 그중 먼저 blink_led.py를 실행시켜 보았다.

 

 

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import OPi.GPIO as GPIO
from time import sleep          # this lets us have a time delay

GPIO.setboard(GPIO.PCPCPLUS)    # Orange Pi PC board
GPIO.setmode(GPIO.BOARD)        # set up BOARD BCM numbering
GPIO.setup(7, GPIO.OUT)         # set BCM7 (pin 26) as an output (LED)

try:
    print ("Press CTRL+C to exit")
    while True:
        GPIO.output(7, 1)       # set port/pin value to 1/HIGH/True
        sleep(0.1)
        GPIO.output(7, 0)       # set port/pin value to 0/LOW/False
        sleep(0.1)

        GPIO.output(7, 1)       # set port/pin value to 1/HIGH/True
        sleep(0.1)
        GPIO.output(7, 0)       # set port/pin value to 0/LOW/False
        sleep(0.1)

        sleep(0.5)

except KeyboardInterrupt:
    GPIO.output(7, 0)           # set port/pin value to 0/LOW/False
    GPIO.cleanup()              # Clean GPIO
    print ("Bye.")

 

 

위의 GPIO핀 7번에 LED를 연결하면 된다. 테스트해보니 예상과 달리 잘 된다. 물론 단순 GPIO 제어에 기껏해야 PWM 수준이라 큰 기대를 하진 않는 것이 좋다. (만약 코드 실행에 error가 발생하면 sudo 권한으로 실행하면 된다.)

반응형
    # 테스트용