Python で gpio
IoTPython
2019-6-13 2:00 JST

Python で GPIO を使う。

まず設定

shell で対応するのが簡単。番号と in/out はあらかじめわかっているものとする。

for i in 960 961
do
        echo $i > /sys/class/gpio/export
        echo out > /sys/class/gpio/gpio$i/direction
done

for i in 962 963 964 965
do
        echo $i > /sys/class/gpio/export
        echo in > /sys/class/gpio/gpio$i/direction
done

Python でコントロール

割り込みで動く Python のプログラム。python2 だとうまく動かなかったので注意。ほんとうは poll で返ってきた fileno を使わないといけない。

epoll.py
$ python3
Python 3.5.3 (default, Sep 27 2018, 17:25:39)
[GCC 6.3.0 20170516] on linux
Type "help""copyright""credits" or "license" for more information.
>>>
>>> import select
>>> f=open('/sys/class/gpio/gpio964/value''r')
>>> epoll=select.epoll()
>>> epoll.register(f.fileno(), select.EPOLLPRI)
>>> f.readline()
'1n'
>>> while True:
...     ev=epoll.poll()
...     f.seek(0)
...     print(f.readline().strip())
...
0
0
0
1

リンク集