[[FrontPage]] Funnel勉強中。まとめてみる。Fioを特別に貸してもらっているのでまだ公にできないかな?書いてから小林先生にみてもらう。問題なければ公開。 *Funnel [#i2989870] IAMASの[[小林茂:http://www.yapan.org/diary/]]先生が考案したフィジカル・コンピューティング・ツールキットが[[Gainer:http://gainer.cc/]]。その無線版。~ 詳しくは[[ここ:http://funnel.cc/]] ~ 開発状況は[[ここ:http://code.google.com/p/funnel/]] ~ 名前の由来は[[ここ:http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%83%B3%E3%83%8D%E3%83%AB_(%E6%A9%9F%E5%8B%95%E6%88%A6%E5%A3%AB%E3%82%AC%E3%83%B3%E3%83%80%E3%83%A0)#.E3.83.95.E3.82.A1.E3.83.B3.E3.83.8D.E3.83.AB]] ~ **動作モデル [#ub9d0d3b] XBee, Gainer, Ardinoなどいろいろなマイコンキットでできる。 基本的にどれもXBee経由。よって、 -XBee単体 -XBee+Fio の2つでやってみた。 **XBee単体 [#v392bc2a] PC<-USB->(評価ボード(XBee)) ------ (XBee)~ 利点)すぐに始められる。~ 欠点)ポート数が少ない。電源を制作しなければならない。ブレッドボードに刺さらない。~ いま変換ソケットとかインターフェースがきた!あとでちょっと書きかえる。~ **XBee+Fio [#a2c9ba84] PC<-USB->(評価ボード(XBee)) ------ ((XBee)Fio)~ 利点)ポートが多い。電源がある。ブレッドボードに刺さる。~ 欠点)まだ製品になっていない。~ -Fioとは Funnel I/Oのこと。GainerにGainerI/OがあるようにFunnelにFunnelI/Oがある。まだ評価段階であるが今回特別に貸与してもらっている。~ *可変抵抗でやってみた。 [#h07785d4] **XBee単体 [#md780815] ※)XBeeの抜き差しや敗戦の変更時は必ず電源を切って行うこと。 *** 1.回路を組む [#od4005fe] (ここに回路図と写真をいれる) エンドデバイス側の回路を組む際の注意点~ 電源電圧は必ず2.8〜3.4Vの範囲で使用~ ↑5Vを加えるとモジュールが破壊!~ Vref(14番ピン)はVCC(1番ピン)に接続~ ↑A/D変換のための基準電圧~ *** 2.X-CTUでXbeeの値を設定する [#f3966afc] 設定に関してほかのパラメータをいじったことがあればrestoreして初期設定に戻す。~ 1:1の通信を行う。~ コーディネータ(ホスト)側 ATID 1111 <-PAN(グループ)ID ATMY 0001 <-自分のID ATDH 0000 ATDL 0002 <-相手のID ATAP 2 <-APIモードの設定 エンドデバイス(クライアント)側 ATID 1111 <-PAN(グループ)ID ATMY 0002 <-自分のID ATDH 0000 ATDL 0001 <-相手のID ATD0 2 <-ピン20をアナログ入力AD0に設定 ATIR 64 <-サンプリング間隔(0x64 = 100) ATIT 5 <-ここで指定したサンプル数ごとに送信 *** 3.Funnel Serverを設定する [#ub6be0b3] Funnel007を使用する。~ (008b4では動作しなかった。接続はするが後述するサンプルでは値を得られない。謎)~ settings.yamlを次のようにする server: command port: 9000 notification port: 9001 io: type: XBee com: COM22 <-ここはコーディネータをつなげているCOMポート番号を指定 baudrate: 9600 *** 4.ここでXBeeのコーディネータ・エンドデバイスとも電源を入れる [#vf567fde] *** 5.Funnel Serverを起動する [#v7084a01] 以下のメッセージを確認~ Funnel 007 (2008-04-21) I/Oモジュールと接続中です… baudrate: 9600 I/Oモジュールと接続が完了しました:COM22 FIRMWARE VERSION: 10a5 SOURCE ADDRESS: 01 PAN ID: 1111 コマンドポート:サーバの起動中… 通知ポート:サーバの起動中… 通知ポート:サーバが起動しました:9001 コマンドポート:サーバが起動しました:9000 NODE: MY=2, SH=13a200, SL=400107f0, dB=59, NI=' ' -チェックポイント --FIRMWARE VERSIONなどの情報が表示されているか?→されていなければATAPの結果を確認 --エンド・デバイスが表示されているか?→リトライしても表示されなければATIDの結果を確認 *** 6.ProcessingにFunnelのライブラリをインストールする [#n2e57e4e] processingはビルド0098を使用。~ funnel_008b3/libraries/processing/library~ の~ funnel.jar~ javaosc.jar~ を~ processing-0098/libraries/funnel/library~ に入れる。(ディレクトリがなければ作成)~ *** 7.Processingを起動する [#ca085054] 以下のスケッチを作成。フォントはサンプルのものを流用する。~ /* analog in */ import processing.funnel.*; XBee xbee; PFont myFont; void setup() { size(400,130); myFont = loadFont("CourierNewPSMT-24.vlw"); textFont(myFont, 24); int[] moduleIDs = {2}; xbee = new XBee(this,moduleIDs); } void draw() { background(0); text("analogInput[0]: " + xbee.iomodule(2).port(0).value,10,80); } *** 8.動作確認 [#p35e6827] 可変抵抗のつまみを回すと、値が0.0から1.0で変わる。ヤフー:-D~ 値が震えていたりしたらエンド・デバイスの電源を切って、14番ピンに基準電圧(+3.3V)をとっているか確認すること。~ *ジャイロでやってみた。 [#xd9dbc94] これから書く。 -方位角の出し方。