人々は家に多くの物を保管する。中には、たまにしか使わないもの、電子機器の保証書のような手に入れてから長い月日が経過してから使う物もある。 そこで、それらの物の場所を、センサーネットワークを使って管理することができないかと考えた。
センサーネットワークとは複数のセンサー付き無線端末を空間に散在させ、それらが協調して環境や物理的状況(温度、音、映像など)を採取することを可能とする無線ネットワークである。
本研究の目的は、電波強度というセンサー間の電波のつながりの強さで距離を測り、三辺側量法を用いて探し物の場所を特定していくことである。
Arduinoとは、スタンドアロン型のインタラクタデバイス開発だけでなく、ホストコンピュータ上のソフトウェアで制御することもできるワンボードマイコンの一種である。 その中のArduino FIOは、 ATmega328P、8つのアナログ入力、オンボード共振器、14ディジタルI/Oピンを有し、リチウムポリマーバッテリー、USB経由充電回路を含んでいるという種類のボードである。また、Zigbeeソケットはボードの下部にある。 FTDI basicを使い、Sparkfunのブレイクアウトボード(Arduino Fio)にスケッチをアップロードすることができる。
マイクロコントローラ | ATmega328P |
動作電圧 | 3.3V |
入力電圧 | 3.35V~12V |
充電用入力電圧 | 3.7~7V |
ディジタルI/O | 14個 |
アナログ入力ピン | 8個 |
1個のI/Oピンの最下DC電流 | 40mA |
フラッシュメモリー | 32KB(ブートローダで使用されるのは2KB) |
SPAM | 2KB |
EEPROM | 1KB |
クロック速度 | 8MHz |
幅 | 28mm |
長さ | 65mm |
重さ | 9g |
スケッチを書いてArduinoのボードにアップロードすることのできるソフトウェア。エディタ、コンパイラ、基盤へのファームウェア転送機能などを含む。その内部ではC言語のコンパイラgccやアップロードプログラムavrduleが使用されている。
ZigBeeとは、センサーネットワークを主目的として、Zigbee Allianceによって仕様が策定されている無線通信規格である。
これより、ZigBeeの使用者はアプリケーション層を設定するだけで よい。 データ転送速度は20Kbps~250Kbpsと低速で転送距離が短いが、安価で消費電力が少ないといった特徴を持つ。
ZigBeeのネットワークは以下の3種類のノードによって構成される。
これらの要素を含み、メッシュ型やツリー型のネットワークを構成しZigBee Rooterがデータを中継することで直接電波の届かない端末間でも通信が可能となる。
このインターフェイスにXBeeを取り付けることで、専用のUSBケーブルを用いてPCと接続することができる。
XCTUというソフトウェアを用いてXbeeの設定を行う。
ZigBee USB Explorer にZigBeeを指し、USBケーブルでPCに接続して、PCから「ZigBee」の設定を行うことができる。
以下、XBee S2C ZigBeeにおいての仕様である。
トランシーバーチップセット | Silicon Labs EM357 SoC |
データレート | RF 250Kbps、シリアル最大1Mbps |
屋内/アーバンレンジ | 60m |
屋外/RF見通しレンジ | 1200m |
送信出力 | 3.1mW(+5dBm)/6.3mW(+8dBm) |
受信感度(1%PER) | -100dBm/-102dBmブーストモード |
シリアルインターフェイス | UART、SPI |
コンフィグレーション方法 | API又はATコマンド、ローカル又は無線(OTA) |
周波数帯域 | ISM2.4GHz |
フォームファスタ | スルーホール、表面実装 |
対干渉性 | DSSS(直接拡散方式) |
ADC入力 | (4) 10ビットADC入力 |
ディジタルI/O | 15 |
アンテナオプション | スルーホール:PCBアンテナ、U.FLアンテナ、RPSMAコネクタ、内蔵ワイヤ、SMT:RFパッド、PCBアンテナ、U.FLコネクタ |
動作温度 | -40℃~+85℃ |
外形寸法と重量 | スルーホール:2.438×2.761cm、SMT:2.199×0.305cm |
メモリ | N/A |
CPU/クロックスピード | N/A |
プロトコル | ZigBee PRO 2007、HA-Ready(バインディング/マルチキャスティング対応) |
暗号化 | 128ビットAES |
高信頼パケット転送 | Retries/Acknowledgements |
IDとチャネル | PAN ID、クラスターID、エンドポイント(オプション) |
電源電圧 | 2.1~3.6V DC |
送信電圧 | 33mA @3.3V DC/45mAブーストモード |
受信電流 | 28mA @3.3V DC/31mAブーストモード |
パワーダウン電流 | <1μA @25℃ |
FCC、IC(アメリカ) | 〇 |
ETSI(ヨーロッパ) | 〇 |
RCM(オーストラリア、ニュージーランド) | 〇 |
余弦定理より
ここでa、b、cが求まった時、探し物の座標を求める。 「PC」の座標を(0, 0)、「トークン」の座標を(a, 0)とする。 この時、角Cの大きさが分かれば探し物の座標は、
であるので、角Cにおけるsin、cosの値を求める。
より
これにより、bとcの値と探し物の座標が対応することが分かる。
3つのセンサー間のそれぞれの電波強度を測定し、そこから距離を測定し「3.2 同定法」の計算で探し物の場所を求める。
PC | Panasonic CF-SX2 |
ZigBee S2C | ZigBee Modules(TH and SMT)3個 |
Arduino FIO | 1個 |
Xbee Grove Development Board | 2個 |
Micro-USBケーブル | 2個 |
リチウム電池 | +2000mAh 3.7V 7.40Wh |
ZigBee S2CをXbee Grove Development Boardに取り付け、Micro-USBケーブルを使ってPCに接続する。(図4-1)
XCTUで接続したPCのポートを読み込み、ZigBeeの設定画面を読み込む。
この変更を3つのZigBeeすべてに行う。
変更する部分は表4-3,4-4,4-5である。
ID、PAN ID | 1234(3つ全て同じなら自由) |
CE Coordinator Enable | Enables[1] |
AP API Enable | API Enable[1] |
ID PAN ID | 1234(3つ全て同じなら自由) |
AP API Enable | API Enable[1] |
DH Destination Address High | 13A200 |
DL Destination Address Low | 40F70923 |
AP API Enable | API Enable[1] |
図4-3のように機材を接続する。
図4-3の実際の接続図を図4-4に示す。
(3-1)の式により直接座標を求める他に、図4-5において、A、Bの電波強度で部屋の位置をデータベース化しておくことにより、電波強度の組から直接探し物の位置を求めることができる。
PC側のXBee、トークン側のXBeeそれぞれをCoordinatorとした時の探し物とのRSSI値を、ATコマンドによって求める。
PC側のXBeeとトークン側のXBeeの電波強度をあらかじめ求めて置く。
この測定をX1~X11すべてのところで行う。
位置 | A | B |
X1 | 1F | 2D |
X2 | 29 | 38 |
X3 | 30 | 2C |
X4 | 37 | 3B |
X5 | 30 | 30 |
X6 | 35 | 3C |
X7 | 3A | 39 |
X8 | 48 | 41 |
X9 | 43 | 44 |
X10 | 36 | 31 |
X11 | 34 | 2F |
表4-4を元に、電波強度の等高線の図を描く。
表4-4は16進法で表されているので8間隔で等高線が組まれている。
等高線はPCから出ている曲線、トークンから出ている曲線の2種類がある。探し物に取り付けたタグからのRSSI値をそれぞれ測定し、そのRSSI値に近い等高線同士の交わるところ付近に探し物がある。
当初の予定では「トークン」はPCに繋がっていず、部屋の隅に固定しておくはずだった。しかし、スタンドアロンで独立している「トークン」、「探し物」に付けたセンサー同士の電波強度をPCで受信するまでに至らず、「トークン」もPCに繋いで電波強度の組をデータベース化した。 しかし、引き出し等にしまってあると本来の距離と変わってしまうこと、探し物に取り付けたリチウム電池の寿命についての問題を解決していかなくては実際に運用していくには難しいだろう。
本研究では、ZigBee端末を用いた探し物探索端末を提案した。探し物にZigBee端末を取り付け、PCに2つのZigBee端末を付けることにより、部屋のどこに探し物があるのかを電波強度に計測、三辺測量による座標計算によって観測できるようになった。
本研究を進めるにあたり、終始のご指導並びに機材を提供していただいた本情報通信工学専攻の坂本直志教授に深謝します。