ブレッドボードを使いLEDを点灯する準備が整いました。ブレッドボードの使い方はこちらを参照してください。前回はただ点灯しただけで制御はできていませんでした。今回は制御を行いますよ😊
まずはWiring Piを導入しましょう。
Wiring Piって何?
WiringPiはGordon Hendersonさんが開発したRaspberry PiのGPIOを簡単に制御できるライブラリです。C言語やPython/PHP等でも動かすことができます。皆さんはラズベリーパイのOSをラズビアンにしたと思いますが、その場合は”ターミナル”から簡単に制御することができます。
Wiring Piのインストール方法
Wiring Piをインストール方法をご紹介します。お手持ちのラズベリーパイがインターネットにつながっている必要があります。
インストール手順です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
//今は使用しませんが、I2Cのライブラリのinstallをしましょう。 $sudo apt-get install libi2c-dev //GITにsource codeがあります。GITにアクセスできるように準備しましょう。 $sudo apt-get install git-core //GITからWiringPiのファイルをダウンロードします。 $git clone git://git.drogon.net/wiringPi //wiringPiのフォルダができているはずです。そのフォルダに移動してコンパイルしましょう。 $cd wiringPi $./build //installが完了したかを確認します。version情報がでれば十分です。 $gpio -v |
まずはインストールお疲れ様です🙇
LED点灯を制御しよう。
Wiring Piのインストールが終わったのでWiring Piを使って制御を行います。こちらで紹介したGPIOポートを使います。GPIOを出力の設定にしてON/OFFを切り替えることでLEDの点灯を制御します。
ブレッドボードを使って回路を作りましょう。
LED回路では制限抵抗を使用します。制限抵抗ってなんでしょうか?
制限抵抗とは?
LEDは大きな電流が流れると壊れてしまいます。もしLEDを電源に直接つないでしまうとLEDが壊れてしまう可能性があります。最悪のケースでは接続しているラズベリーパイも壊れてしまいます。
制限抵抗はLEDを流れる電流を制限するものです。制限抵抗により流れる電流を決めることができます。制限抵抗を用いた回路はラズベリーパイのGPIOとGND(グランド)の間にLEDと制限抵抗をつなげたものになります。
例えばGPIO2は3.3Vの出力が出ます。この電圧がLEDと電流制限抵抗により電圧降下し、最終的に0VのGNDに接続されます。LEDの電圧降下はVfと言います。vfはスペックシートに記載されているので確認しましょう。
値が決まっていないのが制限抵抗の値です。制限抵抗にはGPIOの電圧3.3VからLEDの電圧降下Vfを引いた電圧が加わります。例えばVfが2.5Vだとすると、3.3 – 2.5 = 0.8Vの電圧がかかることになります。電流は制限抵抗の値に決まります。例えば100Ωの抵抗だと0.8 * 1000mV / 100ohm = 8mAの電流が流れるようになります。
このように抵抗の値によって回路全体を流れる電流が決まるので制限抵抗と呼んでいます。
ブレッドボードを使って配線してみよう。
それではブレッドボードで簡単な回路を作ってみましょう。抵抗は先ほどご紹介した要領で求めてください。
GPIO2から抵抗に端子をジャンパーでつなぎ、抵抗からLED、LEDのマイナス極からラズペリーパイのGNDに戻しています。これだけで済むのでブレッドボードは本当に便利です💡
私は470ohmで動かしてみましたが(さすがに電流低すぎ?)、ちゃんと点灯してくれているようです😊
コマンドターミナルで制御してみる
それでは先ほどインストールしたWiring Piで稼働してみます。Wring Piのインストールの時に実はgpio ユーティリティーというものも一緒にインストールされています。それを使ってコントロールしてみましょう。コマンドターミナルを使います。sshでログインしましょう。
sshでのログインの仕方はこちらでご紹介しました。
output設定を行う。
GPIOはgeneral purposeなので、inputにもoutputにもなります。今回は電流を流すための設定をするのでoutputですね。outputで使うのでoutputの設定をしましょう。
ターミナルコマンドを開き、
1 2 |
//GPIO2をmodeでoutとしています。このコマンドラインでGPIO2をoutputとすることができます。 $gpio -g mode 2 out |
-g を指定することでGPIOのポート番号で制御することを意味します。modeはoutput/inputの設定をする時の引数で、今回はGPIO2が対象なので、2をmodeの後に指定しているんですね。outはoutputで入力の時はinを指定します。
信号を出力しよう。
それでは準備が整ったので出力設定をします。コマンドラインから下記を入力してみてください。
1 2 |
//GPIO2をwrite引数で制御しています。 $gpio -g write 2 1 |
write引数で実際に設定を変えます。2は制御しているGPIOの番号ですね。1が設定をonにしています。つまりGPIOのonである1は、3.3Vですので、このコマンドにより3.3VがGPIOから出力されていることになります。
1 2 |
//GPIO2をwrite引数で制御しています。0をwriteすることでLEDが消えます。 $gpio -g write 2 0 |
次にwriteで0を設定してみましょう。LEDが消えるのを確認できたと思います。
まとめ
ラズペリーパイをつかってLEDのON/OFFを制御してみました。以外と簡単にできたのではと思います。次は簡単なプログラムをご紹介しますね。
記事を読んでいただいてありがとうございます。この記事がいいなと思ったら下記のSNSボタンのクリックをお願いします。励みになります😁
$sudo apt-get install git-code
とすると、
E: パッケージ git-code が見つかりません
と出てしまうのですが?
apt-get install git
で試してもらえますでしょうか??
こちらのサイトも参考になると思います!
https://gist.github.com/derhuerst/1b15ff4652a867391f03
Raspbian には git が最初から入ってますよね。
ということは、この操作は不要ということでしょうか?
入って入れば不要です。
また、git-coreがインストールしてほしいものでした。
sudo apt-get install git-core
でお願いします。