2016年12月11日
ルンバを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回の通信なので実際のルンバの起動に時間がかかっています。
前回、 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回の通信なので実際のルンバの起動に時間がかかっています。
【XBeeの最新記事】
この記事へのコメント