#author("2019-04-21T23:00:50+09:00","default:qua","qua") * Xbeeボード [#nada1392] 2台のArduinoどうしでXbeeによる通信が行える。 #ref(http://www.ist.aichi-pu.ac.jp/lab/qua/~qua/pbl/img/xbee.png) [[製品情報:http://akizukidenshi.com/catalog/g/gM-07030/]] ** Arduinoへの装着 [#qb123ed0] このボードはArduinoの0番から7番ピン、A0からA5ピンの上に装着する。このようなボードをArduinoのシールドという。0番、1番の2本のピン以外は、シールドの上の青色のピンで利用できる。また、Arduinoの電源(5V, 3.3V, Vin)が隠れてしまうが、ArduinoにはAREFピン(13番ピンの2つ隣)の内側に5Vのピンがある。 #ref(http://www.ist.aichi-pu.ac.jp/lab/qua/~qua/pbl/img/arduino.png,352x264) #author("2019-04-21T23:18:04+09:00","default:qua","qua") ** 動作モード [#d0de256a] ボードには2つのスイッチがついていて、動作を設定できる。 |赤|黄|動作| |PROG|-|Arduinoにスケッチを書き込む| |RUN|USB|PCとXbeeを直結する| |RUN|Xbee|ArduinoとXbeeを接続する| - PCとXbeeを直結させる場合~ XCTUなどを用いて、Xbeeの設定をするときに、このモードを用いる。 Arduinoに次のスケッチを書き込んでおく void setup(){} void loop(){} 次にXbeeボードの赤のスイッチをRUN、黄色のスイッチをUSBにして、Arduinoにボードを挿す。 この設定をすれば、XCTUで通信設定を行うことができる([[XCTUによる簡単な設定方法の説明:http://www.ist.aichi-pu.ac.jp/lab/qua/~qua/pbl/pdf/xctu.pdf]])。~ また、Arduino IDEのシリアルモニタを立ち上げれば、PCを通してXbeeと通信を行うこともできる。 - Arduinoどうしを通信させる場合~ Xbeeボードの赤のスイッチをPROGにして、Arduinoに挿す。スケッチを書き込み、 ボードの赤のスイッチをRUN、黄色のスイッチをXbeeにして、通信を行う。 ** プログラム [#kecab772] 2台のArduinoの0番ピンと1番ピンを交差して接続したのと同じ動作が行われるので、 ハードウェアシリアルのみを利用できる。 プログラムは[[シリアル通信>シリアル通信.]]と同様である。 *** 簡単な通信の例 [#ucb40d30] 一方のArduinoが0.5秒間隔でHとLの文字を送信する。他方のArduinoがそれを受信して、LEDを点灯、消灯する。 - 送信側 setup(){ Serial.begin( 9600 ); } loop(){ Serial.send( 'H' ); delay( 500 ); Serial.send( 'L' ); delay( 500 ); } - 受信側 const int LED_PIN=13; void setup(){ Serial.begin( 9600 ); pinMode( LED_PIN, OUTPUT ); digitalWrite( LED_PIN, LOW ); } byte state = LOW; void loop(){ byte x; if( Serial.available() ){ x = Serial.read(); if( x=='H' ) state = HIGH; if( x=='L' ) state = LOW; digitalWrite( LED_PIN, state ); } }