Raspberry PiでLEDを制御する(Lチカ)
参考
http://qiita.com/toshihirock/items/880a43ff4a5506b629c5
前提
Raspberry Pi 2 +
(3でもいけるはず)
Raspberry PiにLEDを接続する
※Raspberry Piの電源が落ちている状態で実施すること。
ブレッドボードにLEDをさす。
(長い方の足が+になるのでどちらの足が長い方か覚えておく。)
※ブレッドボードの使い方は以下参照
http://bbradio.sakura.ne.jp/guide1/guide1.html
ジャンパーピンでRaspberry Piとつなぐ。
- 足が長い方とGPIO18
- 足が短い方とGround
※PIN配置は以下参照
コマンドでLEDを光らせる
Raspberry Piの電源を入れる。
GPIO18を使いますよ、と教えてあげる。
↓
出力
↓
使い終わったら解放。
まずは最初の状態を確認 $ ls -la /sys/class/gpio/ gpio18は表示されてないので準備できていない。 準備 $ echo 18 > /sys/class/gpio/export もっかい確認 $ ls -la /sys/class/gpio/ gpio18が出力されることを確認。 GPIO18を出力信号として利用することを書き込む $ echo out > /sys/class/gpio/gpio18/direction これで準備OK。 ON $ echo 1 > /sys/class/gpio/gpio18/value 光る! OFF $ echo 0 > /sys/class/gpio/gpio18/value 使い終わったらこのコマンド $ echo 18 > /sys/class/gpio/unexport 解放されたことを確認 $ ls -la /sys/class/gpio/ GPIO18がないことを確認
node.jsで制御する
node.jsのセットアップ方法は別エントリー参照。
sleepを使えるようにする。
$ npm install sleep
nodejsのコードを書く。
$ vi led.js
var fs = require('fs'); var sleep = require('sleep'); var pin = 18; fs.writeFileSync('/sys/class/gpio/export', pin); fs.writeFileSync('/sys/class/gpio/gpio' + pin + '/direction', 'out'); console.log("ON"); fs.writeFileSync('/sys/class/gpio/gpio' + pin + '/value', 1); sleep.sleep(5); console.log("OFF"); fs.writeFileSync('/sys/class/gpio/gpio' + pin + '/value', 0); fs.writeFileSync('/sys/class/gpio/unexport', pin);
実行
$ sudo node led.js
Raspberry PiにNode.js実行環境を構築
nodeのバージョン管理するためのnodebrewをインストール
$ curl -L git.io/nodebrew | perl - setup 出力された"export PATH~"の行をコピーする。 ログインしたときにパスに追加されるようにする。 $ vi ~/.bashrc 先ほどコピーした行を最終行に張り付ける。 設定を反映 $ source ~/.bashrc 確認 $ nodebrew help
Node.jsとnpmをインストール
Node.jsのstableをインストール $ nodebrew install-binary stable デフォルトを設定 $ nodebrew alias default v6.6.0 ここで指定するバージョンは前の手順でインストールされたstableのバージョン。 デフォルトを使用する宣言 $ nodebrew use default 確認 $ node -v v6.6.0 $ npm -v 3.10.3
sudoでつかえるようにする。
$ sudo node -v
を実行したらcommand not found
になったので、rootユーザのPATH(ここでは/usr/bin)にリンクを張ってあげる。
(ならなかったらやらなくてもいいんじゃないかな。)
$ which node /home/pi/.nodebrew/current/bin/node $ sudo ln -s /home/pi/.nodebrew/current/bin/node /usr/bin $ sudo ln -s /home/pi/.nodebrew/current/bin/npm /usr/bin $ sudo node -v $ sudo npm -v 使えることを確認する。