[PR]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
【ルンバ:ROI】Buttonsコマンドの使用
2016.03.26 Saturday 00:35 | ロボット/電子工作
ルンバ770のボタン仕様について。
Buttonsで返ってくる値に癖があったのでメモ。
結果的には、状態によって立つビットが違うってこと。
普通に使う場合の表示に合わせて対応したビットが立つ。
ROIの仕様書にはこうあります。
んで、ルンバ上の表記はこう。
①初期状態
この状態でClockボタンを押すと、②の状態へ移行します。
② Clockを押す
ここでOKを押すと①の状態に戻ります。
Scheduleを押した時も同様。
で、Buttonsで返ってくる値は、
①の状態では対応したビットのみが立つ。
②の状態では、何も押していない場合はClockのビットがたった状態。
何かしらボタンを押すと、対応したビットに加えて、Clockのビットも立った値が返ってくる。
また、OKを押した時はClockのみが立った状態。すなわち、押したことを判別できない。状態は①に戻る。
そして、Cleanボタンを押すと0が返ってきて、状態は①に戻る。
ClockとScheduleボタンがこんな挙動。
ルンバ770だとボタンが4つ(Clean除いて)あるのですが、Buttonsで返される値のビットとの対応は状態によって変わるわけですね。
めんどいなぁ。状態によっては読めない一番右のボタンと、Cleanボタンの扱いをどうするか。。。
2016/06/11追記
ROIの資料だと下4bitしか載ってないので調査。
CleanボタンとバッテリLEDの表示は分かれていて、
LEDs(Opcode 139)のコマンドで送る
1バイト目の4bit目でCleanボタンのon/offを設定。
続く2バイトはクリーンボタンでなく、バッテリ表示の色と明るさの設定となる。
・・・けど、明るさは変えられないっぽい。
Scheduling LED Bitsも補完。
Buttonsで返ってくる値に癖があったのでメモ。
結果的には、状態によって立つビットが違うってこと。
普通に使う場合の表示に合わせて対応したビットが立つ。
ROIの仕様書にはこうあります。
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Value | Clock | Schedule | Day | Hour | Minute | Dock | Spot | Clean |
①初期状態
Dock | Clock | Schedule | Spot |
② Clockを押す
Day | Hour | Minute | OK |
Scheduleを押した時も同様。
で、Buttonsで返ってくる値は、
①の状態では対応したビットのみが立つ。
②の状態では、何も押していない場合はClockのビットがたった状態。
何かしらボタンを押すと、対応したビットに加えて、Clockのビットも立った値が返ってくる。
また、OKを押した時はClockのみが立った状態。すなわち、押したことを判別できない。状態は①に戻る。
そして、Cleanボタンを押すと0が返ってきて、状態は①に戻る。
ClockとScheduleボタンがこんな挙動。
ルンバ770だとボタンが4つ(Clean除いて)あるのですが、Buttonsで返される値のビットとの対応は状態によって変わるわけですね。
めんどいなぁ。状態によっては読めない一番右のボタンと、Cleanボタンの扱いをどうするか。。。
2016/06/11追記
ROIの資料だと下4bitしか載ってないので調査。
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
OK | ゴミフルサイン | ダスト検知 | クリーン | Check Robot | Dock | Spot | Debris |
LEDs(Opcode 139)のコマンドで送る
1バイト目の4bit目でCleanボタンのon/offを設定。
続く2バイトはクリーンボタンでなく、バッテリ表示の色と明るさの設定となる。
・・・けど、明るさは変えられないっぽい。
Scheduling LED Bitsも補完。
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DAY | HOUR | MINUTE | Schedule | Clock | AM | PM | Colon |
PR
Comment