Gainer+Ruby+Twitterで「お知らせTwitter」
7月 10th, 2008 admin Posted in Gainer |

Gainerを買ったはいいのですが、残念なことにFlashを持ってなければASも書けないので、Rubyから使えるようにしてみようと思います。
作るもの
Twitterで@メッセージをもらったはいいが返信が遅れて気まずいというような状態を避けるために、@メッセージをもらったらブザーが鳴り、LEDがチカチカするようなものを作ってみたいと思います。
なんだかパッとしませんがGainerで初めて作るものなのでこんなもんです。
今回も参考サイト様様でしたので。先に参考サイトを紹介させていただきます。
参考サイト
RubyからFunnelで加速度センサー(Gainer)の値を取得してみた (Unknown Quality)
Gainer を Ruby から使う
Greenbear Laboratory - Ruby Twitter Gem簡易リファレンス
hwhack: Gainerとrubyとtwitter (あるいはタンジブルなtwitter)
まずはセットアップ
WindowsXP用ドライバをダウンロード
http://gainer.cc/Download
Funnelをダウンロード
http://code.google.com/p/funnel/downloads/list
C:\gainer\funnel以下に配置
RubyからFunnelを扱うためにOpen Sound Controlをインストール
RAA - osc
http://raa.ruby-lang.org/project/osc/
OSCのインストールは以下のようにコマンドを打つだけ
> ruby install.rb config
> ruby install.rb setup
> ruby install.rb install
GainerモジュールをUSBに差し込むとドライバの場所を聞かれるので、先ほどダンロードしたものを指定。
2回聞かれますので2回同じ事をします。
funnelを起動します。
C:\gainer\funnel\server>java -jar funnel_server.jar
するとjavaのウインドウが開いて
Funnel 007 (2008-04-21)
シリアルポートが指定されていないため自動的に取得されたポートを使用します
I/Oモジュールと接続中です…
tried: COM1
I/Oモジュールと接続が完了しました:COM3
I/Oモジュールを再起動中です…
I/Oモジュールは正常に再起動しました
ファームウェアのバージョン:1.0.0.15
コマンドポート:サーバの起動中…
通知ポート:サーバの起動中…
通知ポート:サーバが起動しました:9001
コマンドポート:サーバが起動しました:9000
こんな感じのメッセージが表示されればOK
コードを書く
-
$: <<'..'
-
-
require 'rubygems'
-
require 'twitter'
-
-
require 'funnel'
-
-
module Funnel
-
-
agent = Twitter::Base.new(USER_NAME,PASSWORD)
-
agent.timeline(:friends).each do |s|
-
if /^@USER_NAME/ =~ s.text
-
p s.text
-
gio = Gainer.new(Gainer::MODE1)
-
-
#アナログ出力0についているブザーを鳴らす
-
gio.aout(0).value = 0.5
-
-
#Gainerの基板についているLEDの点滅
-
Osc.service_interval = 33
-
blinker = Osc.new(Osc::SQUARE, 2.0, 0)
-
gio.led.filters = [blinker]
-
blinker.reset
-
blinker.start
-
-
sleep(2)
-
end
-
end
-
-
end
取得したタイムラインに@toyoshiがあると「ピー」「チカチカチカ」となるようになった。かなりシュールです。
gio.aout(0).value = 0.5
この書き方とかが正しいのか不安なのと、Rubyのモジュールがよくわかっていないので、そのあたりを調べながら次回からは書籍に沿って勉強してみようかなと思います。
Leave a Reply