RaspbrryPi・GPIO制御コマンド

【参考HP】

 1.RaspbrryPiのGPIO制御の基本
 2.RaspbrryPiのGPIO制御ライブラリ
 3.RaspbrryPiのGPIO基本制御からPWM制御まで

【 取組紹介 】
上記HPを参考にしながら手持ちのRaspbrryPiを使いながら基本GPIO操作を行っていき最終PWM制御を使って
サーボモーターを2個動かしてみます。

先ずは、GPIOライブラリを使わない方法から操作していきます。(echoコマンド、gpioコマンド 操作は、
PC上から遠隔操作とします。

< echo コマンド使用準備 >
Raspbian では echo コマンドを使用して GPIO の ON / OFF 制御ができますが、事前準備が必要です。

まず、/sys/class/gpio/ ディレクトリの中身を見てみます。


これから /sys/class/gpio/gpio2/にある value を操作したいのにファイルがありません。
それは、gpio2 ピンの機能設定をしていないためです。
それを行うための手順が以下の通りです。


上記最後に書かれている「使い終わったよ」宣言をしないで電源をOFFすると初期状態にリセットされます。

まず現在 RaspbrryPi の GPIO がどの様になっているかモニターしてみましょう。

 gpio readall


GPIO2~GPIO27 すべてのピンがディジタル・入力モードになっています。(アナログ入出力はない)

① GPIOピンを使う宣言をする。
  echo 2 > /sys/class/gpio/export
 これだけでは何の反応もないので確認してみます。
  ls /sys/class/gpio/


gpio2 が出来ています。( GPIO2 ピンを使う宣言が出来ています。)

ついでに gpio2 デレクトリの中身も確認しておきます。


② 入力 か 出力 かを指定します。
 gpio2/direction ファイルに入力か出力かを書込みます。
 出力ピンとして設定の場合
  echo out > /sys/class/gpio/gpio2/direction
 入力ピンとして設定の場合
  echo in > /sys/class/gpio/gpio2/direction

③ GPIOを制御する。
 /sys/class/gpio/gpio2/value ファイルに「1」か「0」を書込めば出力制御ができます。
 出力ピンを HIGH にする場合
  echo 1 > /sys/class/gpio/gpio2/value
 出力ピンを LOW にする場合
  echo 0 > /sys/class/gpio/gpio2/value

④ 使い終わった場合、終了宣言をします。
  echo 2 > /sys/class/gpio/unexport

という手順になります。


< gpio コマンドによる入出力ピンの制御方法>
先ほどの echo コマンドによる制御はファイルシステムを通じてGPIOを制御していましたが、コマンド制御できる
「WiringPi」というライブラリがあります。
今回のようなリモート接続タイプの場合のみ、以下の手順で「WiringPi」をインストールします。

 cd temp に移動してインストールするが下記の様にインストールできない。
「l:Lの小文字」、「I:iの大文字」でも同じ
Webブラウザから正常にダウンロードできるのでURLは正しい。


正常にダウンロードできているファイルをデスクトップに置き例の「FileZilla」の出番です。
PCのデスクトップに置いたファイルをRaspbrryPi の temp デレクトリへコピー(アップデート)させる。


 ダウンロードした「WiringPi」
 ダウンロードフォルダーからデスクトップに移動(特に移動の必要なし)



「FileZilla」により PC から RaspbrryPi の temp フォルダーへアップロード


正常に移動が成功しているか確認
間違いなく、「temp」フォルダーに「WiringPi」ファイルがコピーされている。


ダウンロードした「WiringPi」ファイルをインストールします。

  sudo dpkg -i wiringpi-2.50-1.deb


インストールが完了したら、自分のディレクトリに戻っておきます。

  cd ..

これでリモート接続タイプ機器構成の場合の準備ができました。

早速RaspbrryPi のGPIOを制御するのですが、GPIOの指定方法に3種類あります。
下記の通りです。


このページで使用した gpio readall で表示されたもので説明すると、中央に表示されている「Physical」は物理
ピン番号、「wPi」は WiringPi 番号、「BCM]は GPIO 番号になります。
我々は今後「BCM」番号を使っていきます。<gpio コマンドに、-g オプションを付けて使用>

gpio コマンドを使用してGPIO の出力制御するための gpio の使い方は以下の通りです。


実際に使ったコマンドです。GPIO 2 を出力モードにします。

次に GPIO 2番ピンをON(1)にします。<GPIO2のLEDが点灯しました。>


GPIO2以外のLEDも点灯させてみます。


ここまでは、事前準備でした。
実際の電子工作での操作&画像処理等の紹介ページは、RaspbrryPi電子工作です。