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

広告

posted by fanblog

ルンバを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

トラックバック

コメント

お名前:

メールアドレス:

ホームページアドレス:

コメント:

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

この記事へのコメント

×

この広告は30日以上新しい記事の更新がないブログに表示されております。

Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: