エンドデバイスとする予定です。
アンテナがないこと以外は、
と同じです。
■設定
XBeeはデジタル通信なので、アドレスやネットワークトポロジーを設定する必要があります。
本によると、裏ワザとしてArduinoから設定することが可能だそうですが、不慣れなので専用品を使わせていただきます。
■配線
1個だけ離れてしまいますが、DIO0~4を使うことにします。
ボタン ポート ピン
------- -------- -------
上 DIO0 20pin
下 DIO1 19pin
左 DIO2 18pin
右 DIO3 17pin
中 DIO4 11pin
■設定
エンドポイントにするつもりでしたが、現在ルーターで試しています。
まずは本アイテムをX-CTUに接続してDIO0~4をデジタル入力に設定します。
ICで入力値変化で送信するよう設定します。0~4なので設定する値は0x001Fです。
■X-CTUでテスト
CoodinatorをPCに接続して、本アイテムと接続します。
上下左右中それぞれのボタンを押したり話したりするとデータが送られてくることが確認できました。
上の図の10個のデータはこの世になっています。(64ビットの下位は32ビットは伏せています)
7E 0012 92 0013A200 ________ 4D01 01 01 001F 00 001E 88
7E 0012 92 0013A200 ________ 4D01 01 01 001F 00 001F 87
7E 0012 92 0013A200 ________ 4D01 01 01 001F 00 001D 89
7E 0012 92 0013A200 ________ 4D01 01 01 001F 00 001F 87
7E 0012 92 0013A200 ________ 4D01 01 01 001F 00 001B 8B
7E 0012 92 0013A200 ________ 4D01 01 01 001F 00 001F 87
7E 0012 92 0013A200 ________ 4D01 01 01 001F 00 0017 8F
7E 0012 92 0013A200 ________ 4D01 01 01 001F 00 001F 87
7E 0012 92 0013A200 ________ 4D01 01 01 001F 00 000F 97
7E 0012 92 0013A200 ________ 4D01 01 01 001F 00 001F 87
OFFでは同じデータになるので受信データは6種類です。
1回の受信の中のフレームの意味は、
値 意味
----------- -------
7E 開始デミリタ
0012 フレーム長
92 フレームタイプ
0013A200 送信者の64ビットアドレス上位
________ 送信者の64ビットアドレス下位
4D01 送信者の16ビットアドレス
01 受信オプション 確認応答した
01 ペイロードのサンプル数(常に1)
001F デジタルチャネルマスク
00 アナログチャネルマスク
001E デジタルサンプル
88 チェックサム
ですので、各受信のデータ中のポート情報は
操作 HEX 4 3210
-------------------
D0 on 0x1E 1 1110
D0 off 0x1F 1 1111
D1 on 0x1D 1 1101
D1 off 0x1F 1 1111
D2 on 0x1B 1 1011
D2 off 0x1F 1 1111
D3 on 0x17 1 0111
D3 off 0x1F 1 1111
D4 on 0x0F 0 1111
D4 off 0x1F 1 1111
となります。
デジタルサンプルの0になっているところが押されたボタンに相当します。
これをもとに、キーコードを生成して他のプログラムに渡して処理することになります。
ビットパターンを読み取るとこのようになります。
-
購入金額
0円
-
購入日
2014年03月23日
-
購入場所
ZIGSOWにログインするとコメントやこのアイテムを持っているユーザー全員に質問できます。