身の回りセンサーの計画

2011/11月の現状(点線はパーツ準備済み)

 ↓
来年夏ごろまでに

 ↓
再来年にはこの形態へ

なんて、感じで考えています。もっと早くやりたいのだけども、いろいろ新しい知識を仕入れて、それを飲み込んで解釈するのに時間がかかるので。まだまだ若いものには負けない気はあるものの、上っ面だけじゃなく、完全に飲み込めるまでが遅くなってきているのは事実だなぁ。

なぞの回路

 シールドどうしよう?ってかブレッドボードで動くのか(笑)?
 →電源いれてみたけど、ノイズがw。じっくり対策しつつ別の回路も試していきます。
 →→そして、QSD Quadに手を出しました。初期設定に高周波ドライバー要るのか。昔々持ってたのに今は無い。割り箸で作るか。

SeeedStudioからお買い物品 到着

 香港のフィジカルコンピューティング系ショップSeeed Studioから購入した物が届きました。今回の目玉は「Wireless Sensor Node – Solar Kit」。

のってるXBeeは別売りですw

 何をするものかというとXbeeおよびその互換機を載せて、I2CかADCでつないだデバイスのデータを飛ばせるセンサーノードを作るベースキット。リチウムイオンバッテリーと太陽電池パネル、あとケースとかケーブルも付いて20$を切るお値段です。お買い得。そしてこのXbeeが載るベース基板部分はminiUSBでPCとつなぐといわゆるXBeeエクスプローラUSBの様にも使えます。いや買う時は多分そうじゃないかと思ってたんだけど、実際届いて試したらそうでした。もう、これだけでもお買い得ですね。今なら50$越えたら送料無料ですだ(国際郵便なら)。

End DeviceからCordinatorへが・・・。(Xbee APIモード)

 相変わらずXbeeと戯れていますが・・・。帰宅後、こないだとは逆のEndDeviceのArduinoからCordinatorのProcessingへの通信をテスト。Cordinator側へデータは届くのだけど、SUCCESSの戻りがArduinoへ行かない。届くデータも3回送って1回程度。ふと思い立ってArduino側のXbeeをEndDeviceではなくRouterに焼き直して再テスト。百発百中でデータも届くし、SUCCESSもArduinoへ帰る。どうも上手くいった時はRSSIのランプがバリバリ光ってるところを見るとEndDeviceのSleep関連か?RouterとCordinatorはSleepしないし。今のところACアダプタ駆動のデバイスにくっつける予定なので、Routerファームでいいや。ただ将来的に太陽電池&バッテリー駆動をベランダでやるので、そん時Sleepの事は考えようw。
 次は、Cordinatorからデータくれコマンドを送って、Arduinoからデータを返してもらう実験だ。

Xbee APIモード 受け側Arduinoコード 送り側Processingコード

 今日午後からずーっと試行錯誤をしていたのだが、通信受け側のArduinoのコードは要約すればこんな感じでOKになりました。xbee-arduinoやXBee APIのサイトは2011/10となってはちと古いサンプルが載ってるので要注意なのでした。やはり詰まったらちゃんと仕様書を読もうw。

[java]
#include <XBee.h>

XBee xbee = XBee();
XBeeResponse response = XBeeResponse();
ZBRxResponse ZBrx = ZBRxResponse();

uint8_t data0;
uint8_t data1;

void setup() {
xbee.begin(9600);
}

void loop() {
xbee.readPacket();
if (xbee.getResponse().isAvailable()) {
if (xbee.getResponse().getApiId() == ZB_RX_RESPONSE) {
xbee.getResponse().getZBRxResponse(ZBrx);
data0 = ZBrx.getData(0);
data1 = ZBrx.getData(1);
}
}
}
[/java]
(Arduinoのコードなので SyntaxHighlighter Evolved入れて、C++モードで表示させてみたらvoidしか反応しないので javaモードで表示したがあんま変わらんw)

Processing側は要約すると以下の感じで。log4jの外し方がまだわかってないのでつけたまま。
[java]
import processing.serial.*;
import java.util.concurrent.*;

XBee xbee;

void setup()
{
size(100,100);
try {
PropertyConfigurator.configure(dataPath("")+"log4j.properties");
xbee = new XBee();
xbee.open("COM21", 9600); // ポートはご自分の環境に合わせて変えてください

int[] payload = new int[] { ‘H’, ‘i’ };

XBeeAddress64 destination = new XBeeAddress64(0, 0x13, 0xa2, 0, 0xXX, 0xXX, 0xXX, 0xXX); // 通信相手のアドレスは適宜自分の環境にあわせて

ZNetTxRequest tx = new ZNetTxRequest(destination, payload);
ZNetTxStatusResponse status = (ZNetTxStatusResponse) xbee.sendSynchronous(tx);
if (status.isSuccess()) {
// the Arduino XBee received our packet
}
}

catch (Exception e) {
System.out.println("XBee failed to initialize");
e.printStackTrace();
System.exit(1);
}

}

void draw(){
}
[/java]

ケーブル掛け

 本日午前中、ビックカメラ→ダイソー→オリオン書房ノルテ店→Right-on→UNIQLOという経路で買い物をしたんですが、最大の目的のこのケーブル掛けを作ること。ダイソーにいったらこの網は見つかったのですけども、吊るすチェーンが見当たらず・・・。ぐるぐる、ぐるぐる、ぐるぐる探して、園芸コーナーの植木鉢吊りのチェーンを購入。ちと長かったがうまい具合にできました。
 網(ワイヤーネット 62x33cm) 105円
 つりチェーン 105円
 Sカン 105円

 吊るす金具として
 フック6個入り 105円
 平型フックショート 105円
 あとSカンが2つくらい。
まぁ、トータル1,000円行きませんです。満足。