ホーム >  マイコン > RaspberryPi >  PythonからWiringPi2を呼ぶには?

投稿日:   |  最終更新日:

PythonからWiringPi2を呼ぶには?

RaspberryPi

RaspberryPi3でGPIOを制御するためにwiringpi2を呼び出します。

前回の作業

前回は、RaspberryPi3にGPIOを扱うためのライブラリのWiringPiをインストールしました。

WiringPiのインストール

今回の作業

RaspberryPi3にはWiringPi2を使うほうがよいとの噂ですので、PythonからImportできるようにインストールします。

ラズパイ環境

RaspberyyPi Raspberry Pi 3 Model B (Element14)
OS Raspbian 8.0
WiringPi 2.36

wiringpi2のインストール

①WiringPi2をインストールします。

sudo apt-get update
sudo apt-get install python3-dev python3-pip
sudo pip3 install wiringpi2

②wiringPi2-Pythonをgitからダウンロードします。

git clone https://github.com/Gadgetoid/WiringPi2-Python.git

③WiringPi2-Pythonディレクトリへ移動します。

cd /home/pi/WiringPi2-Python

④WiringPi2-Pythonをインストールします。

sudo python3 setup.py install

⑤Pythonで動作確認します。

sudo python3

WiringPi2をインポートしてみます。

>> 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」ファイルに原因があります。このファイルを修正します。

①WiringPi2-Pythonディレクトリへ移動します。

cd /home/pi/WiringPi2-Python

②viで「wiringpi_wrap.c」ファイルを編集します。

vi wiringpi_wrap.c

③以下の行に「#define PyString_FromStringAndSize(x, len) PyUnicode_FromStringAndSize(x, len)」を追加します。

「i」をタイプすると、編集モードに移ります。

「o (小文字)」で、カーソル行の下に一行挿入します。

「ESC」でコマンドモードに戻り、「:wq」で書き込み終了します。

#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)

④再度WiringPi2-Pythonをインストールします。

sudo python3 setup.py install

⑤Pythonで動作確認します。

sudo python3

WiringPi2をインポートしてみます。

>> import wiringpi2

エラーが表示されなくなりました。

トラックバック用のURL
プロフィール

名前:イワサキ ユウタ 職業:システムエンジニア、ウェブマスター、フロントエンドエンジニア 誕生:1986年生まれ 出身:静岡県 特技:ウッドベース 略歴 20

最近の投稿
人気記事
カテゴリー
広告