FunnelつかえばGainerをrubyから扱えるそうなので試してみた。
今回はActionScriptでなくrubyからやってみる。
ちなみにFunnelについては
http://funnel.cc/
今回は、加速度センサーの値をrubyから取得してみる。
上の写真に写ってるやつが加速度センサー
まずは
http://code.google.com/p/funnel/downloads/list
からFunnelをダウンロード。
今回は build 006 でやりました。
リストの中に「wcan_mini_vol5_workshop.zip」というのがあるけど、これは前回のWCAN mini でつかったサンプルが入ってます。
次にFunnelをrubyで扱うにはOCSのライブラリが必要なので、そちらをインストール。
ちなみに、OCSとは「Open Sound Control」の略で、ソフトウェアとハードウェアの通信規格だそうです。Soundとなってますが、音以外のデータでもおkみたいです。
RAA - osc
http://raa.ruby-lang.org/project/osc/
上記サイトからtar.gzをダウンロードしてきて解凍後
$ ruby install.rb config $ ruby install.rb setup $ ruby install.rb install
でインストールできます。
次にGainerに加速度センサーを取り付けます。
配線は
YAPAN.org: WCAN mini ActionScript Vol.5
http://www.yapan.org/main/2008/03/wcan-mini-actio.html
のスライド107ページ目を参考にしてます。
配線ができたら、USBケーブルをさして、Funnelサーバーを起動します。
rubyのスクリプトはダウンロードしてきたfunnel_006のlibrariesのrubyのexamplesにある「gainer.rb」を参考に以下のようにしてみました。
require 'funnel'
module Funnel
gio = Gainer.new(Gainer::MODE1)
gio.ain(0).on PortEvent::CHANGE do |event|
puts "ain 0: #{event.target.last_value} > #{event.target.value}"
end
gio.ain(1).on PortEvent::CHANGE do |event|
puts "ain 1: #{event.target.last_value} > #{event.target.value}"
end
gio.ain(2).on PortEvent::CHANGE do |event|
puts "ain 2: #{event.target.last_value} > #{event.target.value}"
end
sleep()
end
アナログインプットの値をそれぞれ取得してます。値が変化したらイベントが発生するって解釈でいいのかな?
sleepでとめてるんだけど、こんなやり方でええんだろうか?
これをFunnelサーバー起動した状態で実行すると。
ruby mortion01.rb
こんな感じの出力になります。
ain 0: 0.521568655967712 > 0.494117647409439 ain 1: 0.494117647409439 > 0.486274510622025 ain 2: 0.678431391716003 > 0.764705896377563 続く・・・・なんかたまに
command port: localhost, 64178 notification port: localhost, 64179 notification port: EOF errorというのが表示されるけどなんだろ。
とりあえずrubyからfunnelでGainerにつけた加速度センサーの値をゲットできました。 なんかつくってみよー
![Flash Math & Physics Design:ActionScript 3.0による数学・物理学表現[入門編]](http://ecx.images-amazon.com/images/I/617sNhK9P9L._SL160_.jpg)




コメント (4)
こんにちは。Ruby用ライブラリを活用していただけて嬉しいです。
EOFエラーの件ですが、notification portは一方的に通知するスタイルのため、何らかの事情で受信側のバッファがいっぱいになってしまった時などに起きるようです。環境によって再現頻度には違いがあるようなのですが、調査してみたいと思います。
投稿者: 寿小五郎 | 2008年03月30日 20:44
日時: 2008年03月30日 20:44
>寿小五郎さん
コメントありがとうございます!
ActionScriptのライブラリとは違う活用方法がありそうな感じがするので、Rubyのライブラリもっと使ってみます。
投稿者: ll_koba_ll | 2008年03月31日 01:41
日時: 2008年03月31日 01:41
加速度センサーを使って このような物 製作したいのですが
RC 送信機の外部端子はPPMパルスでないと受け付けない様です RC用ジャイロは サーボを制御するため PWMパルスを
出しています。 どうすれば ジャイロ信号を送信機から 送れるのでしょう
このような物です
http://www.youtube.com/watch?v=GCd5sVdRa6k&feature=related
http://www.youtube.com/watch?v=KDPS4Hgndmc&feature=related
投稿者: JA2YYN | 2008年05月20日 22:17
日時: 2008年05月20日 22:17
JA2YYNさま
コメントありがとうございます。
youtubeの動画いいですねー
申し訳ないのですが、私自身電子工作などそれほど詳しい訳ではないので、ご質問にお答えできません。ごめんなさい
でもせっかくなのでみんなに聞いてみましょう
電子工作系で質問があったけどわからないから誰か答えてくだせぇ (Unknown Quality)
http://un-q.net/2008/05/gainer_funnel.html
投稿者: ll_koba_ll | 2008年05月22日 17:53
日時: 2008年05月22日 17:53