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配置は以下参照

http://3.bp.blogspot.com/-Ku5ebiKuzUY/VQDt2QcUllI/AAAAAAAAASA/wh6XOwIBQDw/s1600/raspberrypi_gpio_pinassign.png

コマンドで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