== ArduinoFioをつかってみる。 == [[Image(0.PNG, 300px)]][[BR]] 小林 茂さんの著書「Prototyping Lab ―「作りながら考える」ためのArduino実践レシピ」[[BR]] '''「8章 高度なレシピ レシピ32 無線で接続したい (P.369) 」'''に,沿って実験してみました。 '''「ArduinoFioにつながったセンサーの値をXBeeで送信して、PC側のXBeeで受信してProcessingをつかい描画します。」''' '''まず、ハードウェアを準備します'''。[[BR]] [[Image(1.PNG, 300px)]][[BR]] 今回用意したモノは[[BR]] ・[http://www.switch-science.com/products/detail.php?product_id=615 ArduinoFio] 1個[[BR]] ・[http://www.switch-science.com/products/detail.php?product_id=96 XBee シリーズ1 / チップアンテナ(XB24-ACI-001)] 2個[[BR]] ・[http://www.switch-science.com/products/detail.php?product_id=30 XbeeエクスプローラUSB] 1個[[BR]] ・センサー(CdSセルと10kΩ抵抗器) 1セット[[BR]] ・その他(ピンヘッダ、ピンソケット、ブレッドボードなど)[[BR]] [[Image(2.PNG, 300px)]][[BR]] ArduinoFioは購入したままでは使えません。ピンヘッダやピンソケットを付けてあげる必要があります。[[BR]] [[Image(3.PNG, 300px)]][[BR]] 扱いやすいのはこんなソケット。[[BR]] ArduinoFioは使い方によって、ピンヘッダを付けるか、ピンソケットをつけるか考えます。[[BR]] ハンダ付けしちゃう前に、使い方を良く考えましょう。やり直しできなくはないですが、少し難易度が高いです。[[BR]] [[Image(4.PNG, 300px)]][[BR]] ピンソケットをはんだづけするとこんな感じ。[[BR]] [[Image(5.PNG, 300px)]][[BR]] ブレッドボードに指すときはピンヘッダをつかって中継する。[[BR]] [[Image(6.PNG, 300px)]][[BR]] USB-シリアル変換を使って、Arduinoに命令を書き込むときはL型ピンヘッダを使うと良い感じ。[[BR]] [[Image(7.PNG, 300px)]][[BR]] というか、L型のピンヘッダじゃなくてもokです。好みですね。[[BR]] '''XBeeの設定をします。'''[[BR]] [[Image(8.PNG, 300px)]][[BR]] PCへの接続は、XbeeエクスプローラUSBが便利です。[[BR]] XBee本体をXBeeエクスプローラに差して、USB(miniB)を使ってPCに接続する。[[BR]] 外すときは逆の手順です。[[BR]] Windows環境があれば、X-CTUを使ってファームウェアアップデートや設定の変更ができます。[[BR]] [http://www.digi.com/support/productdetl.jsp?pid=3352&osvid=57&s=316&tp=5&tp2=0 X-CTUのダウンロード][[BR]] 「XBeeConfigTool」でも設定変更が可能です。[[BR]] XBeeConfigTool[[BR]] [[Image(xbeeconfigtool_win.png, 300px)]][[BR]] 一緒に使うXBee本体のPAN IDは同じモノ(ex.「1234」)をつかって、それぞれ異なるMY ID(ex.「0000」と「0001」など)を割り当てます。[[BR]] IDの数字は任意ですが、同じ場所でXBeeを利用する人がいる場合は予め確認をとる必要があります。[[BR]] 「XBeeConfigTool」はfunnel.ccの[http://code.google.com/p/funnel/downloads/list ダウンロード]にある「funnel-1.0-r×××.zip」の中に入っています。(2011年6月28日現在)[[BR]] XBeeの設定が済みましたら、ArduinoFioへの無線アップロードも可能です。[[BR]] '''Arduino Fioの設定をします。'''[[BR]] [http://arduino.cc/en/Main/Software ArduinoIDE]を使って、ファームウェアを書き込みます。[[BR]] 「!StandardFirmataForFio」というファームウェア(Arduinoコード)を書き込みます。[[BR]] ※「!StandardFirmataForFio」は、「XBeeConfigTool」と同じzipファイルの中、「funnel-1.0-r×××/hardware/fio/firmware/StandardFirmataForFio.pde」にあります。 [[Image(StandardFirmataForFio.png, 300px)]][[BR]][[BR]] '''ブレッドボードで回路を組みます。'''[[BR]] [[Image(9.PNG, 300px)]][[BR]] !ArduinoFioにXBeeを搭載するとこんな感じ。逆向きに指したり、ピンをずらして差してしまったりしないように注意してください。[[BR]] [[Image(13.png, 300px)]][[BR]] A0に光センサーをつなぐ回路を組む。'''書籍上の回路(P.378)'''と異なり、!ArduinoFio本体を逆さに差しています。[[BR]] [[Image(12.PNG, 300px)]][[BR]] 電源はリチウムイオンポリマー電池か、もしくはUSB(miniB)から給電します。[[BR]] '''[http://processing.org/ Processing]の実行環境を用意します。'''[[BR]] 拡張子はArduinoとProcessingは同じ(.pde)ですのでご注意ください。(2011年6月28日現在)[[BR]] ※ProcessingやFunnelのインストール方法については、'''「2章 開発環境を整える (P.61) 」'''を参照ください。[[BR]] Processing用のプログラムは'''(P.379-380)のProcessing用サンプル'''を利用しますが、1点だけ追記変更をします。[[BR]] > fio = new Fio(this, moduleIDs, Fio.FIRMATA );[[BR]] → fio = new Fio(this, moduleIDs, Fio.FIRMATA, "COMポート番号");[[BR]] ※※COMポート番号はご利用いただく環境によって異なります。[[BR]] こうしてあげれば、FunnelServerを起動する必要がなくなります。(Flashから利用するときは必要)[[BR]] [[Image(processing2.png, 300px)]][[BR]] ※※選択反転している箇所を追記変更を加えています。[[BR]] Processingにてプログラムを実行すると。以下のような実行画面でセンサーの値に応じてグラフが描画されます。[[BR]] [[Image(cdstest.png, 300px)]][[BR]] 実行画面[[BR]] 以上。 本実験はFunnelライブラリ等は、「funnel-1.0-r787」のバージョンで行いました。[[BR]]