ラズパイが動かせる状態になったら、とりあえず何でも良いから操作してみたいですよね。そんなときは「GPIO」というピンを動かしてみることをオススメします。
ここでは「GPIO」の簡単な操作方法を紹介するので、ぜひ一度動かしてみてください。動くところをみると俄然やる気が出てきますよ。
なお、ラズパイの導入手順は済んでいるものとして手順を進めます。済んでいない方は下記の記事を参考にして初期設定を済ませておいてくださいね。
準備するもの
基本的には初期設定を済ませたラズパイとパソコンがあればGPIOは操作できます。しかし、ラズパイに何も繋げていないので、GPIOを操作しても目に見える形では現れません。これではつまらないですよね。
そこで、ここでは簡単なLED駆動回路を作り、GPIOでLEDの点灯/消灯を操作してみましょう。
というわけで、準備する物は下記通り。
- 初期設定済みのラズパイ
- パソコン
- LED(発光ダイオード)
- 抵抗器
- ブレッドボード
- ジャンパ線
LED駆動回路作成
まずはGPIOで操作するLED駆動回路を作りましょう。
回路図で見るとこんな感じの回路を組みます。
とてもシンプルな回路です。
LEDには「順方向電圧」と「順方向電流」という値がありまして、この値によって抵抗器Rの抵抗値を変える必要があります。抵抗値の求め方は下記の式で導き出せます。
$$R=\frac{V_{cc}-V_F}{I_F}$$- R:抵抗値
- Vcc:電源電圧
- VF:LEDの順方向電圧
- IF:LEDの順方向電流
今回私が使うLEDはVF:2[V]、IF:20[mA]で、VccはラズパイのGPIO電圧3.3[V]なので、計算するとRは65[Ω]となります。
ただし、ラズパイのGPIOは16[mA]までしか流せないので、実際はもう少し大きい抵抗の100[Ω]辺りが良いでしょう。不安な方はもっと大きな抵抗を噛ましても良いです。別に最大輝度で光らせる必要はないので、大きめの抵抗にして流れる電流を抑えておいた方が良いでしょう。
というわけで実際にブレッドボード上に設置するとこんな感じ。
ちなみに、LEDの端子には極性(アノード・カソード)があります。長い方がアノード(+)で、短い方がカソード(−)です。したがって、アノード側に電源の+を、カソードに電源の−を接続します。
回路の作成が終わったら、次は回路がちゃんと動作するか確認します。
ラズパイの端子は下記のようになっています。
1ピンの「3V3 power」に作った回路の+側を接続し、9ピンの「Ground」に作った回路の−側を接続します。すると、このようにLEDが光ると思います。
これでGPIOで操作するLED駆動回路の作成は完了です!いよいよGPIOで点灯/消灯を操作してみましょう。
GPIOの動かし方
いよいよ本題のGPIOの操作です。プログラミングで動かすこともできますが、今回はとりあえずコマンドでGPIOを操作してみましょう。
使用するコマンドは「gpio」というそのまんまの名前で、非常に簡単にGPIOを操作することができます。
GPIOの状態を見てみる
まずはgpioコマンドを使って、現在のGPIOの状態を見てみましょう。
ラズパイのターミナル上で下記コマンドを実行してみてください。
gpio readall
すると下記のように現在のGPIOの状態を見ることができます。
GPIOのモード確認と変更
今回は回路の動作確認時に接続した9ピンの隣にある、11ピンの「GPIO17」を使ってLEDの操作をしてみましょう。
まず、現在のGPIO17のモードを見てみます。
GPIO17のモードが「IN」になっています。入力状態なので電圧のHI/LOを監視している状態にあります。しかし、今回はHI/LOを出力してLEDを操作したいため、「OUT」に変更する必要があります。
というわけで、まずはGPIO17のモードを「OUT」に変更します。変更は下記コマンドで行います。
gpio -g mode 17 out
コマンドは見たとおりで、「mode」変更、GPIO「17」を「out」へという感じになっています。ちなみに「-g」は「BCM番号で指定する」というオプションになります。
さて、モード変更のコマンドを実行した結果、下記のようにモードがちゃんと変わりました。
ラズパイのピン番号の指定には下記3つの指定方法があります。
- Physical:物理ピン番号
- wPi:Wiring Pi番号
- BCM:GPIO番号
今回はよく使われるGPIO番号で指定しましたが、他の番号で指定することもできます。
また、使用するライブラリによって指定する番号が決まっていたりもするので、どの番号のことを言っているのか確認して使いましょう。
GPIOの操作
準備完了なので先ほど作ったLED駆動回路の+側をピン11(GPIO17)に接続してみましょう。まだ光らないはずなので安心してください。
では、いよいよ点灯させるコマンドを打ちます。下記コマンドを実行してみてください。
gpio -g write 17 1
どうでしょうか?このようにLEDが点灯したはずです。
ちなみに消灯する場合は下記コマンドを実行してください。
gpio -g write 17 0
これもコマンドは見たとおりで、「write」する、GPIO「17」に1(ON)/0(OFF)をといった感じです。
まとめ
ラズパイのGPIOを操作してみましたが、とても簡単にできることが分かったと思います。ここまで出来ればプログラミングで操作することにもチャレンジできるので、ぜひ試してみてください。
コメント