読者です 読者をやめる 読者になる 読者になる

Pieces for electronic kits

For Ubiquitous Computing

Rasberry PiでLチカタイムアタック

Rasberry Piとその周辺機器を買ってきてからLチカをするまでにかかる時間を調べる。

用意するもの

  • Rasberry Pi
  • microSDカード
  • microSDカードアダプタ
  • LED
  • 抵抗(220Ω)
  • 5V1A電源
  • USBキーボード
  • HDMIケーブル
  • ディスプレイ
  • OSのダウンロード、書き込み用パソコン

0min

Raspbian(Rasberry Pi向けのOSで最も有名、Debianがベース)
2014-01-07-wheezy-raspbian.zip
http://www.raspberrypi.org/downloads/

SDにRaspbianをインストールするアプリ(mac用)
RPi-sd card builder v1.2.zip
http://alltheware.wordpress.com/2012/12/11/easiest-way-sd-card-setup/

をダウンロード、microSDカードをMacに接続し、RPi-sd card builderを実行、先にダウンロードした2014-01-07-wheezy-raspbian.imgを指定。microSDカードにRaspbianがインストールされるのを待つ。

9min

OSのインストール完了。microSDをRasberry Piに挿し、外部機器を接続する。
今回インターネットアクセスは不要であるため、
HDMIケーブル(モニタと接続)
・USBキーボード
電源ケーブル(5V 1A以上 microUSB端子、携帯の充電ケーブルで良い)
を接続する。電源ケーブルを挿すとRaspbianが自動的に起動するため、HDMIケーブル、USBキーボードを先に接続しておく。

11min

Raspbian起動。初回起動時はコンフィグを行う必要がある。

  • Expand File System(SDカードの容量をすべて用いる)
  • Change User Passwords (ログインパスワードを設定)
  • Internationalisation Options

 Change Keyboard Layout(JISキーボードを指定)
 [Generic 105-key (Intl) PC]->[other]->[Japanese]->[Japanese(OADG109A)]->[yes/no]->[yes/no]

19min

コンフィグを終了すると自動的にRebootされる。
以降は
User: pi(デフォルトのユーザ名はpiとなる)
password: [先に設定したパスワード]
でログインすることができる。

Lチカ用のシェルスクリプトを書く。デフォルトのエディタとしてviとnanoが用意されている。
ファイルを作成し、viで編集する。

vi led_touch.sh

led_touch.sh

#!/bin/bash
 
echo "4" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio4/direction

#1秒おきに10回点滅する 
for ((i=0; i<10; i++))
do
  echo "1" > /sys/class/gpio/gpio4/value
  sleep 1
  echo "0" > /sys/class/gpio/gpio4/value
  sleep 1
done

echo "4" > /sys/class/gpio/unexport

ファイルに実行権限を与える。

chmod +xr led_touch.sh

24min

LEDを用意する。Rasberry PiのGPIOピンの定格は3.3V16mAであるため、220Ωの抵抗を用いた。
Rasberry PiのGPIOピンの配置は次の通りになっている。

つまり、電流制限抵抗をかました上で、端から数えて内側の4番目のピンにアノードを、グラウンドである外側の3番目のピンにカソードを挿せばよい。

30min

sudo ./led_blink.shを実行すると
f:id:nekosystem:20140530021026g:plain
完成。

ちなみにRaspbianの終了は次の通り。

sudo shutdown -h now

まとめ

Rasberry Piの包みを解いたところから、おおよそ30分でLEDの点滅をすることができた。
GPIOピンがあるため、通常のパソコンより容易に電子工作に用いることができ、OSが入っているため、通常のマイコンより高レイヤな開発ができ、遺産の流用がしやすい。
今回はシェルスクリプトを用いたが、RaspbianではC、C++JavaPython、Pypy、Lua、LuaJIT、PerlAwkRubyアセンブラ(GNU as)といった一般的なプログラミング言語がデフォルトで使えるため、GPIOピンを扱うライブラリと組み合わせ、電子工作に用いることができる。