2013-08-04

Raspberry Piを楽しむために必要そうなものをまとめてみた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
Raspberry Piを楽しむために必要そうなものをまとめてみました。

・本体
これがなくては始まりません



・SDカード
OSの記録先などに利用します。最低4Gのclass10があればよいようですが、8Gぐらいはみたいな記述もよくみます。



・電源系
お手持ちのスマホの充電ケーブルでもOKですが、以下のようなものもあります。ケーブルは100円ショップのものでもOKです。


Raspberry Piの小ささを生かすためにモバイルバッテリーを使うのもよいです。



・ネットワーク系
ネットワークに接続した方が楽しめます。


無線LANに対応させるのが、なおオススメです。


無線化の方法として、無線LANドングルを利用するのでなく、コンバータを利用するのもよいかもしれないです。



・画面出力系
インストール時にはあった方が便利です。その後sshで接続するだけならば必要ないかもしれないです。
インストール時だけであれば安めのコンポジットケーブルでもよいと思いますが、他に画面を使っていろいろやるならばHDMIで接続した方が画面のきれいさは圧倒的によいです。出力先がPCモニタするにはHDMI-DVI変換ケーブルなどが必要です。


以下のような小さいモニタを接続する例もあるようです。以下の場合はコンポジットケーブルと12V出力できるバッテリーが必要そうです。



・入力デバイス系
インストール時にはキーボード、マウスがあると便利です。


以下のようなBluetooth対応のコンパクトなものを利用するケースもあります。



・電子工作系
電子工作を楽しむために必要なものはケースバイケースなのですが、まずはお試しには以下があるよいと思います。


アナログ入力とかはRaspberry PiではできないようなのでそのうちArduinoもあると便利かもしれません。Raspberry PiとはUSBで接続します。ケーブルはA-Bタイプが必要です。



・セルフパワーUSBハブ
USBでいろいろつけると電源系が心配な気配なのでセルフパワーUSBハブがあってもよいかもです。



・参考図書
いろんな本が出ています。



・ケース
なくてもよいのかもしれないですが、きれいにまとめたいならばあった方がよいかもです。


購入するのではなくLEGOで作成する例もあります。
以下が参考になります。
http://www.slideshare.net/keikakomura/raspberrypi-meets-lego-case
http://www.raspberrypi.org/archives/1354



2013-08-03

Raspberry PiのGPIOをブラウザからいじれるWebIOPiを試してみた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
以前、GPIOでLEDをチカチカさせてみました。
Raspberry PiとRubyでLEDをチカチカさせる

その後、Raspberry PiでGPIOをブラウザからいじれるWebIOPiというものがあると知り試してみました。

WibIOPiに関しては、以下をご覧ください。
https://code.google.com/p/webiopi/


インストールは、以下のような感じです。

sudo su -
cd /usr/local/src
wget http://webiopi.googlecode.com/files/WebIOPi-0.6.0.tar.gz
tar xvzf WebIOPi-0.6.0.tar.gz
cd WebIOPi-0.6.0
./setup.sh

なんかいろいろインストールするのでちょっと時間がかかります。

RaspberryPiを起動したときにWebIOPiも自動起動させるならば、以下も実行します。
update-rc.d webiopi defaults

WebIOPiの起動は以下のとおりです。
sudo /etc/init.d/webiopi start

WebIOPiの停止は以下のとおりです。
sudo /etc/init.d/webiopi stop


デフォルトでは8000番ポートで起動するのでブラウザから接続します。
http://raspberrypi.local:8000/

ログインパスワードが聞かれますが、デフォルトでは
ユーザ名:webiopi
パスワード:raspberry
になります。


で、パスワード認証後の画面は以下のような感じになります。

GPIO Headerをクリックすると以下のような画面が出てきます。

このグレーのINとなっている部分をクリックするとOUTになります。
GPIO 27の横のINをクリックしてOUTにした例です。

そしてピン番号をクリックするとオレンジ色になりOUTの場合はHIGHになります。
13番のピンをクリックした例です。

このとき、以下のようなLEDを光らす回路を接続していたらLEDが光ります。再度クリックして黒に戻すと消えます。


ちょっと実験するには便利な感じです。


TOPページの他の部分をクリックすると以下のような画面が出ます。

GPIO Listは以下のような感じです。
GPIO Headerの表示方法を変更した感じです。


Serial Monitorは以下のような感じです。
こちらは試していないので、どんな動きをするのか不明です。


Device Monitorは以下のような感じです。

こちらも試していないので、どんな動きか不明です。


WebIOPiはAPIをいろいろ用意しています。
REST APIもあり、他のプログラムから利用することもできます。

APIの例です。
とりあえずGPIO27に対しての例で、リクエストURLは以下のような感じです。

現在状態取得
GET http://raspberrypi.local:8000/GPIO/27/value

利用状態をOUTに設定
POST http://raspberrypi.local:8000/GPIO/27/function/out

シグナルをHIGHにする
POST http://raspberrypi.local:8000/GPIO/27/value/1

シグナルをLOWにする
POST http://raspberrypi.local:8000/GPIO/27/value/0


というわけでRubyでいじってみた例です。

require "net/http"

def set_pin_out
  req = Net::HTTP::Post.new("/GPIO/27/function/out")
  set_req(req)
end

def pin_on
  req = Net::HTTP::Post.new("/GPIO/27/value/1")
  set_req(req)
end

def pin_off
  req = Net::HTTP::Post.new("/GPIO/27/value/0")
  set_req(req)
end

def set_req(req)
  req.basic_auth "webiopi","raspberry"
  Net::HTTP.start("raspberrypi.local", 8000) {|http|
    response = http.request(req, "")
    raise "NG" unless response.code == '200'
  }
end

set_pin_out
10.times do
  pin_on
  sleep 0.5
  pin_off
  sleep 0.5
end


RubyでGPIOを直接いじる場合はroot権限がないとダメでしたが、この場合はrootでなくてもGPIOが利用できます。
また別のマシンからもたたくことができるのも便利そうな気がします。