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-04
2013-08-03
Raspberry PiのGPIOをブラウザからいじれるWebIOPiを試してみた
以前、GPIOでLEDをチカチカさせてみました。
Raspberry PiとRubyでLEDをチカチカさせる
その後、Raspberry PiでGPIOをブラウザからいじれるWebIOPiというものがあると知り試してみました。
WibIOPiに関しては、以下をご覧ください。
https://code.google.com/p/webiopi/
インストールは、以下のような感じです。
なんかいろいろインストールするのでちょっと時間がかかります。
RaspberryPiを起動したときにWebIOPiも自動起動させるならば、以下も実行します。
WebIOPiの起動は以下のとおりです。
WebIOPiの停止は以下のとおりです。
デフォルトでは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でいじってみた例です。
RubyでGPIOを直接いじる場合はroot権限がないとダメでしたが、この場合はrootでなくてもGPIOが利用できます。
また別のマシンからもたたくことができるのも便利そうな気がします。
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が利用できます。
また別のマシンからもたたくことができるのも便利そうな気がします。







