ラベル 電子工作 の投稿を表示しています。 すべての投稿を表示
ラベル 電子工作 の投稿を表示しています。 すべての投稿を表示

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が利用できます。
また別のマシンからもたたくことができるのも便利そうな気がします。

2013-07-30

ブレッドボードの配線図を描くにはFritzingが便利でした

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
ブレッドボードの配線図を楽にいい感じに描きたいなぁと思っていたら、
Fritzing
というのがあるということを知りました。

なかなかよい感じです。

Raspberry Piの図も以下のサイトからダウンロードして追加してあげればパーツとして利用可能です。
https://github.com/adafruit/Fritzing-Library/blob/master/parts/Raspberry%20Pi%20Model%20B.fzpz

以下のサイトが参考になりました。
http://www.e-ark.jp/2013/02/12/%E9%9B%BB%E5%AD%90%E5%9B%9E%E8%B7%AF%E8%A8%AD%E8%A8%88%E3%83%84%E3%83%BC%E3%83%AB-fritzing-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F/

2013-07-29

Raspberry PiとRubyでLEDをチカチカさせる

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
Raspberry Piは、GPIOという仕組みで電子工作を簡単に楽しめるわけです。
そんな電子工作をやってみたいとおもったのがRaspberry Piを買った理由のひとつでもあります。

Raspberry Piで電子工作をするには、ブレッドボードがあるとお手軽にはじめられます。
ブレッドボードとRasberry Piをつなぐには、ジャンパワイヤー(オスーメス)が必要です。


LEDとかブレッドボードを持っていないならば以下があるとよさげです。



まずは、GPIOのシンプルな使い方でLEDを光らせてみます。

Raspberry PiとLEDは以下のように接続します。

今回は27番PINを利用しています。
Raspberry PiのPINに関する情報は、以下が参考になります。
http://blog.livedoor.jp/victory7com/archives/25716142.html

以下のようにすれば、ルート権限のシェルでLEDを光らせることができます。

sudo su
echo 27 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio27/direction
echo 1 > /sys/class/gpio/gpio27/value
echo 0 > /sys/class/gpio/gpio27/value
echo 27 > /sys/class/gpio/unexport

上から順にざっくり説明すると
27番PINを利用することを宣言して、
27番PINを出力でりようすることを宣言して
27番PINの出力をHIGHにして
27番PINの出力をLOWにして
27番PINの利用を終了する
という感じです。

以下が参考になります。


とりあえず、上記でやっていたことをRubyでやってみます。

exp = open("/sys/class/gpio/export", "w")
exp.write(27)
exp.close

dir = open("/sys/class/gpio/gpio27/direction", "w")
dir.write("out")
dir.close

out = 1
20.times do
  val = open("/sys/class/gpio/gpio27/value", "w")
  val.write(out)
  val.close
  out = out == 1 ? 0 : 1
  sleep 0.5
end

uexp = open("/sys/class/gpio/unexport", "w")
uexp.write(27)
uexp.close

これをled.rbとでもして保存してrootで実行するとLEDがチカチカします。

きっと便利なgemがあると思って探してみたところ
pi_piper
というものがありました。

gem install pi_piper

でインストールできます。

でpi_piperを利用すると以下のような感じです。

require 'pi_piper'

pin = PiPiper::Pin.new(:pin => 27, :direction => :out)

10.times do
  pin.on
  sleep 0.5
  pin.off
  sleep 0.5
end

uexp = open("/sys/class/gpio/unexport", "w")
uexp.write(27)
uexp.close

これをled2.rbとでもして保存してrootで実行するとLEDがチカチカします。
すっきりしたような気がします。

最後の27番PINの利用をやめる部分はpi_piperでは対応してなかったので、led.rbのときと同じです。


Lチカだけで終わらないようにしたいなぁと思います。


2013-03-09

ハニワLED弐号機

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
ハニワLED初号機に続き弐号機を作ってみました。
LEDにおゆまる(お湯で温めるとやわらかくなる透明感のある粘土)をそれっぽい形にしてつけただけです。
なんかザンネンな感じがします。




おゆまるは、こんな感じのものです。
たまに100円ショップで小分けのものが売っていたりします。
 

2012-11-29

ハニワLED

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
LEDをリューターで削って黒マジックで塗ってみた。


2011-08-22

自動水やり器を試す

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
ちょっとしばらく家をあけたのですが、その際に鉢植えに水を自動でやる方法はないかと探してみました。
すると
http://www.geocities.jp/babulunooya/sub1.htm#mizu
を見つけて試してみました。

しかし、うちでは日当たりがいまいちなせいか、あまり水が出ていない気配です。 

なのでポンプを使って自動水やり器を作ってみようと思ったわけです。
電池で動くポンプが欲しかったのですが、安いものが見つからず。
そして見つけたのが以下の灯油ポンプです。

   

こちらは自動で止まる機能も付いています。
これを買って試してみたところ水でも動きました。
おまけに水を出す方の先端が水にぬれると自動で止まる機能もついています。

これでいいのでは? と思ったのですが、
一度水にぬれて自動で止まってしまうと、スイッチを入れなおさないと再度スイッチを入れなおさないと動きませんでした。

それでは改造だ!と思ったわけです。
しかし電子工作の知識が全然なのです。
そもそもモーターを動かすこともろくに出来ずに出かける時間になってしまいました。

結局、キャップをしめた2リットルペットボトルの底に穴を開けて植木鉢の上におきっぱなしにするだけで出かけてしまいました。
結果は、何個かはすっからかんになって草も枯れかけていたのですが、いくつかは水が残っていたりしました。

穴の数とかをうまく調整すれば
数日ぐらいならば、これでよかったのかも・・・
という感じです。

だけど今度は買ってしまった灯油ポンプを改造してみようと思ったりしたのでした。

2011-07-09

Google Developer Dayに参加のための挑戦するかどうか悩み中

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
11/1にGoogleの開発者のためのイベントである。
Google Developer Dayが開催されるようです。

参加のためにはDevQuizというクイズを解く必要があるのです。

去年のGoogle Developer Dayでも同じようにDevQuizを解くことが参加条件でした。
そして解いて無事に参加させていただくことができました。

去年の傾向を見る限り、全部とかなくても参加は出来そうでした。
一番むずかしそうな問題の一番簡単なレベルまで解いておけば去年の場合は
参加できるような感じでした。

クイズの内容は、結構手ごわいので後で時間があるときにクイズをやろうと思うと
結構時間的に厳しいと思うので問題が発表されたら、とりあえず取り掛かった方がよいです。

で今年のGoogle Developer Dayに参加するかどうかですが、私は悩み中です。
クイズ解くこと自体は面白いしためになるのでよいのですが、やっぱりそれなりに時間が取られます。

今年はそれだけの時間を取れるかなぁという感じったので
正直、今年はいかないつもりでいました。

でも今年5月のGoogle IOで発表された
Android Open Accessory
というものが気になっており、これに関する話とかがあるのならば行ってみようかなぁと悩み始めてみました。

さてどうしよう。

2011-06-25

子育てするようになってから、草花を育てるのも楽しくなったかも

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
最近、草花を育てるのがちょっと楽しいです。

昔は草花を育てるのは、まどろっこしくあんまり好きでなかったのです。
水をあげたら、すぐ育つぐらいのレスポンスを求めていたのかもしれないです。

最近は子育てしているせいか、レスポンスがなくても全然平気です。

昨日との違いはなくても、長い目で見れば着実に育っている感じが
子育てと通じるものがあるので、ちょっと草花を育てるのも楽しいのかもしれません。

そんな草花を育てるのをより楽しむために、以下の本を買ってみたりしてみました。

2011-06-21

オシロスコープがちょっと欲しい

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
最近、オシロスコープがちょっと欲しくなっています。

あったところで使いこなせるわけではないような気がするし、結構お高いし、
実際は買うことないかなぁと思っていたのですが、
DSO Nano v2
という安い素人が最初に使うにはよさそうな気がするものがあることを知り、
現在ちょっと悩み中です。

う~~ん、どうしよう。

2011-06-01

電子工作お勉強中

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
最近、プログラムだけでなくなんか作りたいなぁとか思って、いろいろと本は読んだりしていたのですが、やっぱり読んだだけではわからんなぁと当たり前のことになってしまいました。
そこで実際に本に書いてあるものを作ってみるのがいいのでしょうが、部品を集めるのがちょっと面倒だったりしたのです。

そんな時、以下の本を見つけました。



部品も入っていて実際に手を動かしながらやってみようというものなのです。
やっぱり実際に手を動かした方が理解できることが多いです。
本を読んだだけでは、あんまりイメージできなかった、どんな感じでどれくらいの電流が流れているのかなぁとかがちょっとイメージできるようになったような気がします。

ちなみに理解を深めるためには、テスターはあった方がよいです。
この本で使う分には、電流と電圧が測れればOKです。


この本のシリーズがまだあるようなので、もうちょっと買ってみようと思います。
(もうちょっと安いとうれしいのですけどね)