Raspberry Piで 一緒に「Lチカ」しましょう (中編)

 前回に引き続きラズベリーパイの醍醐味と言える簡単な電子回路の制御を行います。ラズベリーパイと電子回路は、メイン基板上に用意されたGPIOポートに電子回路を接続するだけでよく、特別なインターフェイスは必要ありません。前編、中編、後編の三部に分けてもっとも基本的なLEDをチカチカ点滅させる制御、略して「Lチカ」する方法をご紹介します。一緒に「Lチカ」しませんか?

2016-08-31-002_001

これがいわゆる”Lチカ”の瞬間

 

今回やること

今回はいよいよ、LEDを点灯 させます。前回は物理ピン番号11(BCM17)をLEDのプラス側に接続したので、このGPIOピンに3.3[V]の電圧をかければLEDは点灯することになります。

ラズベリーパイにインストールしたLinuxであるRaspbianのシェルからコマンドを入力しLEDを点灯させてみましょう。

イメージとしてはGPIOのパラメータを示すファイルに値を書き込むことでGPIOの制御が可能です。この時、物理的なピン番号11ではなくBCMの番号つまり 17番を使います のでご注意ください。

テスト環境:

使用機材: Raspberry Pi2 Model B
OSバージョン: Raspbian GNU/Linux 8 (jessie)
※”cat /etc/os-release”コマンドで確認可能

 

いよいよ記念すべきLED点灯式!!

以下の手順でLEDが点灯/消灯します!! [確認]

(1) /sys/class/gpio の確認

gpioにアクセスするためには /sys/class/gpio のディレクトリのファイルにアクセスすることになります。
まずはディレクトリの中身を確認 してみます。以下の3個のファイルが確認できます。

  1. pi@raspberrypi:/sys/class/gpio $ ls -l /sys/class/gpio
  2. 合計 0
  3. -rwxrwx— 1 root gpio 4096 821 11:09 export
  4. lrwxrwxrwx 1 root gpio 0 821 01:03 gpiochip0 -> ../../devices/platform/soc/3f200000.gpio/gpio/gpiochip0
  5. -rwxrwx— 1 root gpio 4096 821 11:09 unexport

(2)[設定] gpio17の有効化

gpioの17番を有効化 します。
既存のexportというファイルにBCM番号”17″を書き込みます。(この例では”/sys/class/gpio”ディレクトリに”cd”コマンドで移動済みです。)

  1. pi@raspberrypi:/sys/class/gpio $ echo “17” > export

(3) [確認]  “gpio17″が追加されたことを確認

“gpio17″というシンボリックリンク(エイリアスのようなもの)が作成され gpio17に対してアクセス可能に なりました。

  1. pi@raspberrypi:/sys/class/gpio $ ls -l
  2. 合計 0
  3. -rwxrwx— 1 root gpio 4096 821 11:15 export
  4. lrwxrwxrwx 1 root gpio 0 821 11:15 gpio17 -> ../../devices/platform/soc/3f200000.gpio/gpio/gpio17
  5. lrwxrwxrwx 1 root gpio 0 821 01:03 gpiochip0 -> ../../devices/platform/soc/3f200000.gpio/gpio/gpiochip0
  6. -rwxrwx— 1 root gpio 4096 821 11:09 unexport

(4)[確認]  “gpio17″の内容を確認

出現したgpio17の示すディレクトリ内を確認すると 様々なファイルが存在 しています。
※シンボリック先を確認するためには”-L”オプションが必要です。

  1. pi@raspberrypi:/sys/class/gpio $ ls -lL gpio17
  2. 合計 0
  3. -rwxrwx— 1 root gpio 4096 821 11:15 active_low
  4. drwxr-xr-x 4 root root 0 821 11:28 device
  5. -rwxrwx— 1 root gpio 4096 821 11:15 direction
  6. -rwxrwx— 1 root gpio 4096 821 11:15 edge
  7. drwxrwx— 2 root gpio 0 821 11:15 power
  8. drwxrwx— 2 root gpio 0 821 11:15 subsystem
  9. -rwxrwx— 1 root gpio 4096 821 11:15 uevent
  10. -rwxrwx— 1 root gpio 4096 821 11:15 value

(5)[確認] 設定値の確認

これらのファイルには gpio17に関連した設定値 が入っています。通常のファイルと同様に catコマンドで確認可能 です。

  1. pi@raspberrypi:/sys/class/gpio $ cat gpio17/direction
  2. in
  3. pi@raspberrypi:/sys/class/gpio $ cat gpio17/value
  4. 0

(6)[設定] gpio の用途の設定

gpio17の用途を設定 します。gpio17/directionで設定します。上記[5]の様にデフォルトでは “in”、つまり入力の設定となります。
これを”out”に書き換えて出力用に変更します。

  1. pi@raspberrypi:/sys/class/gpio $ echo “out” > gpio17/direction
  2. pi@raspberrypi:/sys/class/gpio $ cat gpio17/direction
  3. out

(7)[設定] LEDの点灯

いよいよ LEDを点灯 させます。手順[5]で確認した通りgpio/valueの値は”0″となっており無効状態です。
“1”をセットする ことで電流が流れLEDが点灯します。

  1. pi@raspberrypi:/sys/class/gpio $ echo “1” > gpio17/value
  2. pi@raspberrypi:/sys/class/gpio $ cat gpio17/value
  3. 1

(8)[設定] LEDの消灯

消灯するには元通りに”0″をセット してあげましょう。
※手順の7、8の echo コマンドを繰り返すことで、LEDをチカチカさせることができます。

  1. pi@raspberrypi:/sys/class/gpio $ echo “0” > gpio17/value
  2. pi@raspberrypi:/sys/class/gpio $ cat gpio17/value
  3. 0

(9)[設定] gpio の無効化

gpio17を無効化し、gpio17のシンボリックリンクが消えていることを確認

  1. pi@raspberrypi:/sys/class/gpio $ echo 17 > unexport
  2. pi@raspberrypi:/sys/class/gpio $ ls -l
  3. 合計 0
  4. -rwxrwx— 1 root gpio 4096 821 12:05 export
  5. lrwxrwxrwx 1 root gpio 0 821 01:03 gpiochip0 ->
  6. ../../devices/platform/soc/3f200000.gpio/gpio/gpi
  7. ochip0
  8. -rwxrwx— 1 root gpio 4096 821 12:14 unexport

 

Pythonを使って、Lチカで時刻を報せてみましょう!

続きはこちらから・・・

 

本記事は、日本サード・パーティ株式会社(JTP)にて、執筆しています。

JTPは約30年に渡り、様々なベンダーのサポートを行う企業です。 設計、構築、開発、運用、ヘルプデスク、トレーニングなど、ITのライフサイクルを通して技術サービスを提供しています。

中でも、JTP の IT教育サービスでは、クラウド、Hadoop関連技術など、OSS の最新技術 トレーニングを数多く実施しています。

JTPでは、経験豊富なエンジニア、講師陣により、多くの技術記事を公開しております。

▼JTPの情報メディア「JTP Technology Port」はこちらから!

https://www.jtp.co.jp/techport/

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です