XBeeを接続するために、変換基板・ドングル・シールドを一般的に使用します。XBeeモジュールのピンは20ピンあり、それぞれの機能割り当てについて説明します。また、ネットワーク設定をする際に重要なのがアドレスです。このアドレスの役割についても解説します。
XBee-ZBモジュールとの接続
XBeeモジュールについて調べてみると、スルーホールタイプの出入力ピンが、通常ブレッドボードで使用する電子部品よりも小さくなっている、ということに気付きます。一般的にブレッドボードで使用できる電子部品のピン間隔は2.54mmやその倍数になっていますが、XBeeモジュールのスルーホールモデルでは2mmになっています。
このため、ブレッドボードや一般的な穴間隔2.54mmのユニバーサル基板で使用する場合には、ピン間隔を変換するための基板が必要になります。
また、設定変更などの際にはPCと接続します。
PCとXBeeモジュールとで通信をするためにはXBeeをマウントするUSBアダプタが必要になります。多くの製品が販売されています。
例えば、SparkFun ElectronicsのXBee Explorerドングルを使用する場合、XBeeモジュールを基板上のピンソケットに取り付け、PCのUSBポートにさして使用します。基板のサイズはXBeeモジュールよりも一回り大きい程度でコンパクトなことと、接続にUSBケーブルが不要なので、XBeeモジュールやPCを持ち出して使用する際に便利でしょう。
ドングルの基板上にはXBeeモジュールの白い輪郭がプリントされているので、モジュールを差し込む前に方向をよく確認してください。
同様に使える製品として、同じくSparkFunのXBee Explorer USBもありますが、こちらはドングルとして作られておらず、基板上にminiUSBコネクタを備えています。使用に当たっては別にminiUSBケーブルが必要になります。
いずれも、シリーズ1/2/2.5/3、スタンダードモデル/プロモデルのそれぞれに対応しています。
これらのUSBアダプタにはブレッドボードで使用する用のヘッダーピンの取り付け穴が用意されています。購入時、ピンははんだ付けされていませんが、別途用意して簡単にはんだ付けできます。
SparkFunはこの他にも3.3V系の回路で使用できるようレベル変換回路を内蔵したピン間隔の変換基板や、Arduinoシールド等、XBee Explorerボードを多数販売しています。ArduinoとXBeeを組み合わせて使用する場合、XBeeシールドを使用する便利です。
この他にも、SparkFun Thing Plusと呼ばれる、組み込み機器向けのオリジナルモジュールも販売しています。
シールドとは シールドは、Arduinoのピンヘッダに接続して、Arduinoの上に「載せて」使用するように設計されたプリント基板です。Arduinoのハードウェア機能を簡単に拡張できます。 |
XBeeの発売元のDigiインターナショナル社では、アンテナ付きのXBee表面実装モジュール3枚、USBインターフェースボード3枚や必要なケーブル類を含んだXBee3開発キットも販売しています。
収納箱に入って価格は約12,000円。必要なパーツ類を一度に揃えたい向きには良い選択肢となります。
このキットに含まれるExplorerボードは、Groveインターフェース(Groveインターフェースについてhttps://wiki.seeedstudio.com/Grove_System/)をサポートしており、コネクタの接続によって簡単にプロトタイピングが行えるのも特徴の一つです。
XBeeモジュールのピン配置
XBeeモジュールには20本のピンがあります。
モジュールを表面(アンテナのある側)から見て、大きく角が落とされた角を上に置いた時、左上から左下に1~10番、左下から左上に11~20番と割り振られています。
表1にXBeeシリーズのピン配置を示します。具体的な使い方についてはこの後順を追って解説していきます。
表1 XBeeモジュールのピンレイアウト
ピン 番号 | 名前 | 説明 | 出入力 方向 | デフォルト設定 |
1 | VCC | 電源5V | – | – |
2 | DIO13/DOUT | デジタルIO13/UART出力(TX) | 出力 | UART出力 |
3 | DIO14/DIN/#CONFIG | デジタルIO14/UART入力(RX) | 入力 | UART入力 |
4 | DIO12/SPI_MISO | デジタルIO12/SPI_MISOピン | 双方向 | 無効 |
5 | RESET | リセット(負論理) | 入力 | – |
6 | DIO10/RSSI_PWM | デジタルIO10/電波受信強度出力 | 双方向 | 出力 |
7 | DIO11/PWM1/I2S_SDA | デジタルIO11/PWM出力 I2C_SDAピン | 双方向 | 無効 |
8 | 予約ピン | 何もつながないこと | – | – |
9 | DIO8/#DTR/SLEEP_RQ | デジタルIO8/スリープ制御 | 双方向 | 入力 |
10 | GND | GND | – | – |
11 | DIO4/SPI_MOSI | デジタルIO4/SPI_MOSIピン | 双方向 | 無効 |
12 | DIO7/#CTS | デジタルIO7/UART_CTSピン | 双方向 | 出力 |
13 | DIO9/ON/#SLEEP | デジタルIO9/デバイスステータス | 双方向 | 出力 |
14 | 予約ピン | 何もつながないこと | – | – |
15 | DIO5/ASSOCIATE | デジタルIO5/接続インジケータ | 双方向 | 出力 |
16 | DIO6/#RTS | デジタルIO6/UART_RTSピン | 双方向 | 入力 |
17 | DIO3/AD3/#SPI_SSEL | デジタルIO3/アナログ入力3 SPI_SSピン | 双方向 | 無効 |
18 | DIO2/AD2/SPI_CLK | デジタルIO2/アナログ入力2 SPI_CLKピン | 双方向 | 無効 |
19 | DIO1/AD1/#SPI_ATTN/ I2C_SCL | デジタルIO1/アナログ入力1 SPI_ATTNピン/ I2C_SCLピン | 双方向 | 無効 |
20 | DIO0/AD0 | デジタルIO0/アナログ入力0 | 双方向 | 入力 |
なお、このピン配置表はXBee-ZBシリーズの、シリーズ3のレイアウトを示しています。
シリーズ2と基本的に共通ですが、1本だけ違いがあります。14番ピンはシリーズ2ではVREF入力に割り振られていますので、この点に注意してください。
XBeeモジュールモジュールのハードウェアの詳細についてはDigiインターナショナル社のドキュメント(https://www.digi.com/resources/documentation/digidocs/pdfs/90001543.pdf)を参照してください。
次に、XBeeモジュールの設定について解説します。
XBeeモジュールの設定
XBeeモジュールの構成はそれほど難しくありません。
各モジュールのアドレス、ネットワーク上での役割を設定し、接続するセンサやマイクロコントローラと正しくデータの読み取りや通信ができるように設定をします。
まず、ZigBeeアドレスについて解説しましょう。
センサを直接XBeeモジュールに接続したいときは 測定値が電圧で出力される場合等はアナログ入力ピンで直接測定できますが、センサから値を読み取るために特別な通信プロトコルが必要な場合には、センサからデータを読み取ってXBeeに渡すためのマイクロコントローラが必要になります。 |
アドレス
図6にXBee3モジュールの底面を示します。XBeeモジュールの底面には、シリアルナンバーやMACアドレスが刻印されています。
これらを組み合わせて、XBeeモジュールごとに固有の64ビットのMACアドレスを形成します。(無線アドレスとも呼ばれます)
アドレスは8桁ずつ2つの部分に分かれています。例えば図6で言うと、「0013A200」が「ハイ」アドレス、「41ABDCFE」が「ロー」アドレスです。
通常、XBee Explorerや変換基板に取り付けてある状態では底面が見えないため、少し不便です。PCに接続すれば設定アプリケーションやシリアルターミナルからも確認できます。
無線モジュールのアドレスは、データを送信する先を指定するために使用します。
64ビットの無線アドレスとともに、ZigBeeネットワークでは個別のネットワーク内で各無線モジュールに割り当てた16ビットのアドレスを使用します。さらに各モジュールを識別するために短い文字列を割り当てて名前を付けることもできます。
これに加えて、ネットワーク内の無線モジュールをグループ化する「パーソナルエリアネットワーク(PAN)アドレス」があります。
つまり、XBeeモジュールがほかのモジュールにメッセージを送信する場合、同じチャネル(電波の周波数)を使用し、宛先のPANアドレスとネットワーク内での16ビットアドレスを指定する必要がある、ということです。
コメントを残す