Raspberry PI3のGPIOを制御するにはwiringpi2を使ったほうがよいらしいので、試してみました。
1.wiringpi2のインストール
$ sudo apt-get update
$ sudo apt-get install python3-dev python3-pip
$ sudo pip3 install wiringpi2
2.wiringPi2-Pythonのインストール
$ git clone https://github.com/Gadgetoid/WiringPi2-Python.git
cd WiringPi2-Python
$ sudo python3 setup.py install
3.動作確認
$ sudo python3
>> import wiringpi2
以下のエラーがでた。
Traceback (most recent call last):
File "/home/rpi3/Work/WiringPi2-Python/wiringpi2.py", line 18, in swig_import_helper
fp, pathname, description = imp.find_module('_wiringpi2', [dirname(__file__)])
File "/usr/lib/python3.5/imp.py", line 296, in find_module
raise ImportError(_ERR_MSG.format(name), name=name)
ImportError: No module named '_wiringpi2'
解決方法
wiringpi_wrap.cを修正する必要があるらしい。
$ vi wiringpi_wrap.c
PyString_FromStringAndSize(x, len) PyUnicode_FromStringAndSize(x, len)を追加
追加する場所は以下の「+」のところです。
#define PyString_FromString(x) PyUnicode_FromString(x)
+#define PyString_FromStringAndSize(x, len) PyUnicode_FromStringAndSize(x, len)
#define PyString_Format(fmt, args) PyUnicode_Format(fmt, args)
再度、インストールし、実行することでうまくいきました。
結構、調べてるとpython2.xとpython3.xでだいぶ違う。。。
$ sudo python3 setup.py install
$ sudo python3
>> import wiringpi2
エラーがでなくなった!
>> wiringpi2.piBoardRev()
これでpythonからGPIOが制御できるようになったので少し遊んでみようかと思います。
0 件のコメント :
コメントを投稿