正規のオンライン小売業者:

AMAZON
AMAZON
amzuk

WiringPiとは

WiringPiはRaspberry PiのGPIOを制御するためのC言語ライブラリですが、他の言語、例えばPythonやPHPなどからもこのライブラリにアクセスできるようになっています(具体的にはラッパが用意されています)。またライブラリだけではなく、コマンドラインから実行できるツール(gpioコマンド)も用意されています。いずれもGPIO制御を意識してつくられていますので、プログラミングやコマンドがechoコマンドを使う場合よりわかりやすくなっています。

前回の「Raspberry Pi GPIO入門」 では、GPIOピンとは何か、GPIOの名称、Raspberry Piの位置図について学びました。今回は、GPIOピンをプログラムし、GPIOを通して外部機器を制御する方法について学びます。

wiringPiの技術的な詳細については、あまり話したくありません。wiringPiの情報をもっと知りたい方は、以下のリンクをご覧ください:

http://wiringpi.com/the-gpio-utility/

 

wiringPiがインストールされているかどうか

ターミナルで以下のコマンドを実行することで、wiringPiライブラリが既にインストールされているかどうかをテストできます:

gpio  -v

ターミナルにメッセージが表示された場合、wiringPiがPiにインストールされています。

以下のようにメッセージが表示された場合、まだwiringPiがインストールされていません。

gitを使用してwiringPiをインストールする

Step 1)Piパッケージリポジトリを更新します(これらの2つのコマンドは定期的に実行することが推奨されています)
sudo apt-get update
sudo apt-get upgrade

Step 2) 次のコマンドを実行してwiringpiライブラリをインストールします。

sudo apt-get install wiringpi

WiringPiのサンプルプロジェクト

wirngPiをインストールした後、raspberry Pi上のLEDプロジェクトをwiringPiを使ってテストできます。

1) 実験原理
LEDをraspberry Pi GPIOに接続し、プログラムがこのGPIOに高レベルまたは低レベルを出力してLED点滅を制御します。

上の図のB17とは、BCM GPIO#17または物理ピン#11またはwiringPi#0(ゼロ)を表します。

注:BはBCM(Broadcomピン番号)を意味します。BCMピン#、物理ピン#、wiringPi#がわからない場合は、当サイトの レッスン2:Raspberry Pi GPIOの紹介を確認してください。

2) 接続図

Fritzingファイルのダウンロードリンク:: http://osoyoo.com/driver/pi3_start_learning_kit_lesson_3/osoyoo-raspi-lesson3.fzz.zip

3)3種類のGPIO番号システムを理解する

コードの先頭に使用されるwiringPiとstdioファイルを追加します。LEDはwPi#0(物理ピン#11またはGPIO/BCM 17)に接続されています。物理、wiringPi、BCMの3つの命名方法があります。Raspberry Pi GPIOに関する詳細情報については、https://osoyoo.com/2017/06/26/raspberry-pi-basic-tutorial-introduction-of-raspberry-pi-gpio/を参照してください。以下のコマンドを入力するとGPIOレイアウトを表示できます。

gpio readall

上記のピンマップは、Raspberry Piが実際に3つのピン番号システムを持っていることを示しています。物理ピン番号、WPI(WiringPi)ピン番号、BCMピン番号があります。

どの数値体系がプログラムに適用されるかをどのように知ることができるでしょうか?以下に簡単なルールを示します:

pythonであれば:

物理ピン番号体系を使用する場合、以下の文を追加する必要があります。

GPIO.setmode(GPIO.BOARD)

BCMピン番号体系を使用する場合、以下の文を追加する必要があります。

GPIO.setmode(GPIO.BCM)

C言語またはC++であれば:

C/C++はGPIOピンにアクセスするためにwiringPiライブラリを使用し、WiringPiライブラリはWPI番号体系を使用します。

4)次のコマンドでCサンプルコードをウェブサイトからダウンロードします。

cd ~
wget http://osoyoo.com/driver/pi3_start_learning_kit_lesson_3/testwiringpi.c

5)次のコマンドでコードをコンパイルします。

gcc -Wall -o app testwiringpi.c -lwiringPi

説明:C言語は高水準言語です。プロジェクトを実行する前に、コードは実行可能ファイルとしてコンパイルする必要があります。
gcc:GNUコンパイラコレクションです。独自のCコードを書いて実行するためには、gccをマスターする必要があります。
-Wall: コードをコンパイルするときにより多くのエラーを取得するために使用します。
-o: コンパイルされたファイルの名前を指定します。ファイル名は任意のものにすることができます。ここでは「app」と名付けました。
testwiringpi.c: コンパイルされる元のファイルです。
-lwiringPi: ライブラリwiringPiを読み込むためのものです(lはライブラリの略称です)。

4)プロジェクトを実行するためには、以下のコマンドを入力して「enter」を押します。

sudo  ./app

5)コードを実行した後、ターミナルにはまずcodefというメッセージが表示され、その後LEDが点滅し、ターミナルにLEDの状態が表示されます。


6)同じ作業をPythonでも行うことができます。

i) 以下のコマンドでPythonコードをダウンロードします。

wget http://osoyoo.com/driver/pi3_start_learning_kit_lesson_3/testwiringpi.py

以下のコマンドでPythonコードを実行します。

python testwiringpi.py