【 第28回 】WiringPi2よりWiringPiの方が新しかった!

0
1474

【 第26回 】【 第27回 】でインポートした”WiringPi2″ですが、ネットで検索していたところ、こんなページに出くわしました。翻訳すると、

「このパッケージは、・・・廃止されました。」とあり、最後にリリースされた日付が”2016.3.11″になっていました。

“WiringPi2″をインポートしたときに、他に”WiringPi”というGPIO制御ライブラリがあることは承知していましたが、”WiringPi2″の方が新しいバージョンだろうと思っていました。上記のサイトで”WiringPi”を見てみると、

こちらのバージョン”2.46.0″のリリースは、”2018.7.2″になっていて開発も継続されているようです。

メニューアイコンから「設定」→「Add  /  Remove  Software」を起動し、画面左上の検索枠に”wiringpi”と入力して「Enter」キーを押すと、”wiringpi-2.46″が既にプリインストールされていることが分かります。

LXTerminalを起動し、Python3を起動します。

sudo python3

”wiringpi″をインポートすると、

import wiringpi

「No module named ‘wiringpi’」と返されてインポートできません。

”wiringpi2″をインポートすると、

import wiringpi2

今度は、ちゃんとプロンプトが返ってきてインポートできました。【 第26回 】で元々、C言語で書かれた”WiringPi”をPythonでも使えるようにするパッケージ”WiringPi2-Python”をインストールしておいたおかげです。

“exit()”でPython3を終了し、一旦、ホームディレクトリに戻ります。

exit()

"WiringPi-Python”のインストール

ターミナル画面でも”wiringpi*”のバージョンを確認します。

gpio -v

こちらでも、インストールされているバージョンは”2.46″になっていました。

元々、C言語で書かれた”WiringPi”は、Raspbianにプリインストールされた状態のままでは、Python3から実行することはできないので、”WiringPi2”をPythonでも使えるようにするパッケージ”WiringPi2-Python”のように”WiringPi”をPythonでも使えるようにするパッケージ(wrapperというそうです)”WiringPi-Python”をインストールする必要がありそうです。

検索すると、GitHubにインストール方法があったので実行します。但し、スーパーユーザー権限でPython3にインストールするので、コマンドは”sudo pip3″です。

sudo pip3 install wiringpi

もう一度、Python3を起動します。

sudo python3

もう一度、”wiringpi”をインポートします。

import wiringpi

今度は、ちゃんとプロンプトが返ってきてインポートできるようになりました。

“exit()”でPython3を終了し、ホームディレクトリに戻ります。

exit()

基板上のLED(緑)をLチカするプログラムを"WiringPi"に書き換えて実行する

【 インストール編 】でインストールしたVisual Studio Codeを起動し、【 第27回 】で作ったプログラム”blink.py”を開きます。

メニューバーから「ファイル」→「名前を付けて保存」をクリックします。

【 ワークスペースの設定 】で設定したワークスペース”/home/pi/Python”が開くので、「名前」の入力欄に新しいプログラム名を入力して「保存」ボタンをクリックします。

【 第27回 】で作ったプログラム”blink.py”にある”wiringpi2″の”2″を、7箇所共全て削除します。

import wiringpi
import time

wiringpi.wiringPiSetupGpio()
wiringpi.pinMode(25, wiringpi.GPIO.OUTPUT)

counter = 0
while (counter < 10):
    wiringpi.digitalWrite(25, 1)
    time.sleep(1)
    wiringpi.digitalWrite(25, 0)
    time.sleep(1)
    counter = counter + 1

wiringpi.wiringPiSetupGpio()

7箇所共全て削除したら、画面左端のアクティビティーバーの「デバッグ」アイコンをクリックします。

サイドバーに現れたデバッグ右の「▶」ボタンをクリックします。

1行目でデバッグが中断するので、画面上部デバッグ用ツールバーの「↓」ボタンをクリックして続行します。

2行目でもデバッグが中断するので、画面上部デバッグ用ツールバーの「↓」ボタンをクリックして続行します。

3行目で再びデバッグが中断するので、画面上部デバッグ用ツールバーの「↓」ボタンをクリックして続行します。

画面右下、統合ターミナルのタブ「問題」をクリックします。

「問題」はなさそうなので、タブ「ターミナル」をクリックします。

スーパーユーザー権限に切り替えます。

sudo su

ACT(緑)の設定を”mmc0(ディスクアクセス)”から”gpio”に切り替えます。

「↑」キーを押すと、以前のコマンドが入力されるので、同じものが入力されたところで「Enter」キーを押します。

echo gpio > /sys/class/leds/led0/trigger

ACT(緑)の入力をGPIO25に設定します。

「↑」キーを押すと、以前のコマンドが入力されるので、同じものが入力されたところで「Enter」キーを押します。

echo 25 > /sys/class/leds/led0/gpio

エディター画面の何もないところで右クリック→「Run Python File in Terminal」をクリックします。

何故か今回は「”sudo”を忘れたんかいっ!」とも怒られずに、無事、基板上のLED(緑)が点滅を10回繰り返しました。

メニューバーから「ファイル」→「保存」をクリックしておきます。

ACT(led0)の設定を既定の"mmc0(ディスクアクセス)"に戻しておく

このまま、ACT(緑)がディスクアクセスで点灯しないとRaspberry Piの電源を落とすタイミングが分からなくて困るので、ACT(led0)の設定を元に戻しておきます。

LXTerminal画面に戻り、再びスーパーユーザー権限に切り替えます。

sudo su

ACT(led0)の設定を”gpio”からmmc0(ディスクアクセス)”に戻します。

「↑」キーを押すと、以前のコマンドが入力されるので、同じものが入力されたところで「Enter」キーを押します。

echo mmc0 > /sys/class/leds/led0/trigger

基板上のLED(緑)が、再びディスクアクセスで点灯するようになりました。

“exit”でスーパーユーザー権限から外れます。

exit