OrangePi-PCを使ってみる

Python GPIOライブラリ(orangepi_PC_gpio_pyH3)


OrangePi-PC のPython GPIOライブラリのorangepi_PC_gpio_pyH3を紹介します。
このライブラリはA20-OLinuXino-MICROボード用のpyA20ライブラリをH3向けに移植したものです。
pyA20ライブラリのマニュアルがこちらに公 開されていますが、GPIOだけでなくSPIやi2cもサポートしているようです。

インストールは以下の手順で行います。
$ sudo apt install python-dev git make gcc
$ git clone https://github.com/duxingkei33/orangepi_PC_gpio_pyH3.git
$ cd orangepi_PC_gpio_pyH3
$ sudo python setup.py install

このライブラリのAPIはRaspberryPiのpython-rpi-gpioライブラリとよく似ています。
RaspberryPiのpython-rpi-gpioライブラリで GPIO4 のLチカを行う場合のコードは以下の様になります。
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
import time

COUNT = 3
PIN = 4
#GPIO.setmode(GPIO.BOARD)
GPIO.setmode(GPIO.BCM)
GPIO.setup(PIN,GPIO.OUT)

for _ in xrange(COUNT):
    GPIO.output(PIN,True)
    time.sleep(1.0)
    GPIO.output(PIN,False)
    time.sleep(1.0)

GPIO.cleanup()

orangepi_PC_gpio_pyH3ライブラリで GPIO4 のLチカを行う場合のコードは以下の様になります。
# -*- coding: utf-8 -*-
from pyA20.gpio import gpio
from pyA20.gpio import port
import time

COUNT = 3
PIN = port.PA6
gpio.init()
gpio.setcfg(PIN, gpio.OUTPUT)

for _ in xrange(COUNT):
    gpio.output(PIN,True)
    time.sleep(1.0)
    gpio.output(PIN,False)
    time.sleep(1.0)

#gpio.cleanup()

python-rpi-gpioライブラリと、orangepi_PC_gpio_pyH3ライブラリのピン番号の対応は以下の通りです。
python-rpi-gpio orangepi_PC_gpio_pyH3 physical Pin# orangepi_PC_gpio_pyH3 python-rpi-gpio


1 2

2 port.PA12 3 4

3 port.PA11 5 6

4 port.PA6 7 8 port.PA13 14


9 10 port.PA14 15
17 port.PA1 11 12 port.PD14 18
27 port.PA0 13 14

22 port.PA3 15 16 port.PC4 23


17 18 port.PC7 24
10 port.PC0 19 20

9 port.PC1 21 22 port.PA2 25
11 port.PC2 23 24 port.PC3 8


25 26 port.PA21 7
0 port.PA19 27 28 port.PA18 1
5 port.PA7 29 30

6 port.PA8 31 32 port.PG8 12
13 port.PA9 33 34

19 port.PA10 35 36 port.PG9 16
26 port.PA20 37 38 port.PG6 20


39 40 port.PG7 21

以下のコードでオンボードの赤のLEDがLチカします。
# -*- coding: utf-8 -*-
from pyA20.gpio import gpio
from pyA20.gpio import port
import time
import sys

PIN = 15
gpio.init()
gpio.setcfg(PIN, gpio.OUTPUT)

for _ in xrange(5):
    gpio.output(PIN,True)
    time.sleep(1.0)
    gpio.output(PIN,False)
    time.sleep(1.0)

オンボードの緑のLEDは、メモリ上のアドレスがちょっと特殊なのでプログラムからは制御できません。

次回はorangepi_PC_gpio_pyH3ライブラリを使った 1602LCDの使い方を紹介します。