Goal
- 初心者であり、ハードを触り始め、色々知らないので、調べてまとめてみたい!
- Raspberry Pi 2 からGPIO信号を操作できるようになるといいです!
- できれば、NodeJSでやりたい。
まずは、GPIOとは?
- Wikipedia により、GPIOはGeneral Purpose Input/Output(汎用入出力)の略語である。入力として動作した場合は電気回路のほかの部分からのデジタル信号を読み取り、出力として動作した場合は他デバイスの制御や信号の通知を行う。
- できること
- GPIO pins can be configured to be input or output
- GPIO pins can be enabled/disabled
- Input values are readable (typically high=1, low=0)
- Output values are writable/readable
- Input values can often be used as IRQs (typically for wakeup events)
- デジタル出力のセンサの値やスイッチのON/OFFをマイコンに伝える入力や、マイコンの演算結果をLEDで表示したり、モータを動かす信号を出力したりする時などに利用します。
- GPIOの内部では、CPUと外部装置でデータの受け渡しをするために、プログラムで扱うデジタル値(0または1)と信号(電圧のLOWレベルまたはHIGHレベル)の変換を相互に行います。
(src: http://japan.renesas.com/edge_ol/engineer/16/index.jsp )
Raspberry Pi 2のGPIOは?
- 正式サイト
からのドキュメントにより、以下となります。
分かりやすい図:
もっと見やすい図:
out機能を試す
簡単なLEDをON OFFやってみる
- 回路を準備
POINT:
- 抵抗を利用し、信号と電流を調整する
- LEDは(+)は3.3V側
- 回路をテスト
電源を付けて、LEDが光ることを確認 - GPIO回路を準備
ブレッドボードの配線はそのままで、Raspberry PiのGPIOポートのプラス側を、
1番の3.3V電源からとなりの3番「GPIO2」に差し替えます。 - ON OFF コマンドからやってみる
// GPIO24 を使うためのコマンド
$ echo 2 > /sys/class/gpio/export
// IN/OUTの設定 出力する場合はout
$ echo out > /sys/class/gpio/gpio2/direction
// 信号のON/OFFの切り替え ONは1 OFFは0
$ echo 1 > /sys/class/gpio/gpio2/value
// OFFにする
$ echo 0 > /sys/class/gpio/gpio2/value
// unexport
$ echo 2 > /sys/class/gpio/unexport
NodeJSでやる場合
こちらのnodeモジュールを利用します
var gpio = require('rpi-gpio');
gpio.setup(2, gpio.DIR_OUT, write);
function write() {
gpio.write(2, true, function(err) {
if (err) throw err;
console.log('Written to pin');
});
}
NODE-REDだと持って楽です、次はこちらで試したことを書く予定!