“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