小ネタの雑魚記事なんだけど記録として残しておきたいし、コード作成にはそれなりに時間もかかったので1記事として独立させておく。
以前紹介したWi-Fi機能なし旧型ルンバをBlynk対応にしたっていうのと、さらにAlexaからも命令できるようにしたっていうのがあったけど、なんだかんだ自分の自由に動かせるってもっと便利に改造したくなるものだ。
そこで今回はルンバを普段は手の届かないベッド下に待機させるようにして、作動命令をして10秒後に停止させるようにした。
スポンサーリンク
これをやる理由にはいくつかあって、
- 今までは手の届く場所に待機させておいたから部屋のスペースを専有していた
- 待機場所付近は掃除しないからそこらへんが汚れる
- 見える場所が汚れるって気分よくない
- ベッド下に待機させておけば普段はじゃまにならない
- ルンバのゴミ溜めをときどき空にするときだけベッド下から出したい
- 起動後10秒程度でちょうどよい場所にくるのでそのタイミングで停止させればちょうどよい
- メンテ機能ということでプログラムコード書く理由になる
という感じでやってみた。
▼今まではこういう場所ずばりではないがベッドの脇に待機させていた。
それをこんな場所にひっそりと待機させておくことができるようになった。
で追記したプログラムは以下
void RoombaPause(){
wakeUp();
Roomba.write(128); //comunication start
delay(20);
Roomba.write(131); // into safe mode
delay(20);
Roomba.write(150); //一時停止
delay(10);
}
// virtual pin V4
BLYNK_WRITE(V4)
{
int pinValue = param.asInt();
if (pinValue == 1){ // 呼ぶ
RoombaClean();
delay(10000);//←だいたい10秒後にちょうどよい位置まで出てくるので10秒にした
RoombaPause(); //一時停止
} else { // ドックへ戻す
RoombaToDock();
}
}
実際にはこのコードのほかにいろいろデバッグ用コードが入っているけどごちゃごちゃしすぎているからエッセンスだけ載せておいた。
誰かの参考になるかというと全国で0人、世界で3人程度かもしれないけど自分の記録として残しておく。