アフィリエイト広告を利用しています

ルンバをXBeeでコントロール (Part 4)

○前回の続き

前回、Part3であまりSleep Modeに触れなかったので、今回はそれについての補足します。

まず、ルンバに取り付けるXbeeをSleepモードにしないとルンバのミニDINからホームベースにいる時に20V電圧がかかるため、約0.8Wが三端子レギュレータにかかり発熱するという問題があります。

そんなわけで、Xbeeをスリープモードにします。


○Xbeeのスリープモード

今回、Cyclic Sleepを使い定期的にルンバ側のXbeeを起こして、ホスト側(Raspberry Pi)と通信するようにします。

詳しく解説したいところですが、私自身もいまいち要領を得ていないのが現状です。

本家DIGIのここに書いてある通りで、以下の5個のパラメータで設定していきます。

日本語だとここに詳しく書かれております。

SM・・・Sleep Mode (0x04:Cyclic Sleep mode)
ST・・・Time Before Sleep (x 1msec)
SP・・・Cyclic Sleep Period (x10msec)
SN・・・Sleep Number
SO・・・Option


・・で、結局のところ、使い方がよくわかりませんでした


やりたかったこと

1) RaspiからCoordinatorに対して、シリアル経由で何らかのメッセージが届く。
2) Roomba側のEnd DeviceがSleep状態であれば、Coordinator側で保持。
3) Roomba側のEnd DeviceがCyclic Sleepから目覚めて、Pollリクエストを出したら、Coordinatorが保持していたコマンドをEnd Deviceへ送信。

上記のような処理を行いたかったのですが、実際に行って見るといくつかパラメータを組み合わせてみたのですが、End Device側からメッセージが届かなかった旨のメッセージしか確認できませんでした。

そんなわけで、以下のように変えたところ・・・

SP=0x0AF0(28sec)
ST=0x1388(5sec)

約2分間に1回Network IndicatorのメッセージがEnd Deviceから届くようになりました。

なぜこの周期で届くのかわかっていません。 (恐らくはCoordinator側のSPあたりの設定だと思うのですが・・・)

Network Indicatorを受けた直後であれば、恐らくEnd Deviceも起きてると思い、このタイミングでRaspi側からメッセージを送信するように変更しました。


実際に2分に1回、通信ができて動いています。


以下は、実際にSiriからルンバをONする動画なのですが、2分に1回の通信なので実際のルンバの起動に時間がかかっています。








タグ:ルンバ BEE Roomba

トラックバック

コメント

お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのコメント

   
検索
検索語句
記事ランキング
最新記事