XBeeを試す

気がつけばもう8月…月日が経つのは早いです。私はと言えば先日虹裏でスレを立てた
直後に寝堕ちという不名誉な最短記録をおっ立ててしまい軽い自己嫌悪に陥ってました。
それでも参加してくれた皆さんには本当に申し訳ないと思います。お詫びにいなちゃん
があっちの皆さんに目の保養をさせていただくことになるでしょう…
(これ目的でわざとやってるわけじゃないよ!)






5月に買ったおもちゃ達もだいぶ消化出来てきました。残りは今回紹介するXBeeと、
ねむいさんがやるやる詐欺でほったらかしてきたAT91SAM7S256のプロトボードを残す
のみとなrまた前振り長くなりそうだからさっさと本題

現時点では、スイッチサイエンスさんと秋月さんから容易に購入出来るXBeeですが、
使用記などもネット上に豊富にあります。Arduinoと接続した使用例が特に多いですね。
せっかくなので私はLPC2388とSTM32のそれぞれのUARTから使用してみました。STM32
(CQ-STARMの)基板はただのVCPとして動作させ、LPC2388はUART0はそのままにUART1で
XBeeの通信をさせるように
してます。今回はLPC2388のUART1の使用実験も兼ねています。

うー

二つ用意したXbeeはデフォルトではtransparent mode,9600,n,1になってるので先ず
STM32,LPC2388のボーレートもそれに合わせて試しました。9600bpsでは特に問題なし。

次にボーレートをあげて通信を試みましたが、事前に読んだマニュアル中に、"コマンド
「ATBD7」で設定できるのは115200bpsではなく実際は111111bps。non-standard-rates
で設定すると)「ATBD1C200」)正確な115200bpsで設定できる"と記述があります(超意訳)。
さらに"XBeeで使用されるRFパケットの通信レートが250kbpsの為、高いボーレートで
通信する時にデータの取りこぼしをなくす為にフロー制御が必須、フロー制御無しで
取りこぼし無しに通信したければ十分低いボーレート(たとえば9600bps等)で行うこと。"
とも書いて有りました(超意訳)。

つまり115200bpsでフロー制御無しで文字列垂れ流しやると100%失敗するようなので
試してみると案の定大失敗orz57600,38400bpsだとかなり安定してきますがそれでも
たまに文字が落ちます。結局transparent mode下ではフロー制御無しでお手軽に確実
に使えるのは19200bpsあたりまでということが分かりました。
(注:XBee本体とお話しするだけなら115200bpsでも別に問題はないです。)
digiのフォーラムにはstopbitを2にすることで115200bpsでも通信が可能になったみ
たいなこと書いてありましたが真似してやってみましたが駄目でしたクソァ!
…まだ"さわり"で動かしたの段階なのでマニュアルを熟読してリベンジですね。

まぁ大量のデータをバリバリ流すなんてことは全く考えてなくて遠隔地にあるセンサの
値を読む程度の使用と想定してますので低いボーレートでも気にはなりませんが…
あとこれ結構電流喰うんですよね(50mA)。バッテリーで使うならデータフロー制御
よりこちらの電力制御の方が最優先でしょう。

Comments

Post a Comment








Go to top of page