ルンバみたいな掃除機を作りたい(3)

BT接続の沼にはまった。HC-05/HC-06ともに在庫が山の中から見つかり確認をするのだが、オリジナル品とコピー品の混在なのかも含めて曖昧で見えてきたことがあった。
PINコードの設定コマンドがエラーになり、PINコードの確認ではPINコードが6桁の表示になるのだった。
PINコード桁数については、さまざまなBT機器の中で4桁設定が占めていたのと以前の開発記録では4桁だったので混乱した。調べていくとBT規格の進展の中で6桁に代わっていったようでHC-05/HC-06の目指すIoT機器ではBLE規格などの時代になり6桁に移ったらしい。もっていたスマホアプリではPIN4桁設定だったのだが、新しい他のBT接続ターミナルアプリを調べると6桁に対応しているようで、スマホとの接続でも問題なく動作することが分かった。週末にS君が来た時にはBT子機となるHC-06タイプのモジュールを渡して彼のBT接続ターミナルソフトでも6桁設定で通信が出来た。
しかしながら、実際に彼がやりたい動作中にコマンド受信がしたいということには、別の困難があった。
彼が複数集めてきたスケッチはいわゆる単機能でloop関数の中でwhileループを組んでいるようなものばかりだったので、同時に処理をするためにはこうした処理をマージしなければならない。
S君とは哲学問答をするように、彼が実際にやりたいことを確認しつつそのためにはどうすべきかを解説する。
極端に言えば状態遷移図を彼に書いてもらうことだった。Arduino UNOの性能範囲で実現可能なハード設定にはなったので、この先は彼が設計をすすめることで出来てくるだろう。
彼には、時間管理も含めて指導したいので、予め帰りのバス時刻をめどにアラームをアレクサに頼んでおいた。普段ならばずるずるとやっていて母上に迎えに来てコールをしてからさらに続けるということだったが、アレクサがアラームした段階で進んできた内容を振り返りこのままでは、ここで出来ることも限られるので納得して今回は帰ってもらうことになった。小学生ではなくなり来月からは中学3年になるS君なのでそうした自立する姿も母上に見せられればと思う。年の離れた末っ子ぶりはわかるものの、逞しくなってほしい。

ルンバみたいな掃除機を作りたい(2)

サーバー構築が叶ったS君は、3年越しのプロジェクトであるルンバを再開した。超音波センサでの距離計測、衝突予防で後進しつつ方向転換をして走っていくというものだった。
Arduinoにモータードライバーを搭載して3つのモーターを駆動する。2つは田宮のギアメカだ。残り一つは塵取りに掻き込むブラシモーターの予定だ。
駆動系統を整理して超音波距離センサで方向転換が出来るのを確認して3年前の課題クリアと思いつつ、家に持ち帰ると動作がうまくないらしい。
単三電池二個を搭載したモーター用電源では、モータードライバーでのドロップも含めてモーター駆動には不十分のようだ。三個搭載の電源ボックスと交換して安定動作になった。
彼の思いとしてはリモコン制御でスタートストップをコントロールしたいということもあったらしく翌週には超音波センサを組み込んで動作させてみたけどモーター駆動中は、動作しないらしい。
距離センサとして用いる超音波センサと超音波リモコンで行う信号検出が性能的には厳しいらしいということがわかり、距離センサをi2Cと接続のToF距離センサに変えてみた。
IoTサポートをしてきた経験から検出精度は対象の差があるけれど近接範囲についての壁検知ならば動作しそうだと思い実験をしてもらった。超音波同様にまっすぐぶつかる場合には検知するのだが。いずれにしても二つないと検知できないケースもありそうだった。超音波リモコンの検出自体はするのだが、どうも検知したコードが化けてしまうようだ。モーター駆動でのノイズが影響するのかリモコン受信部のアースにノイズが回り込むこともあるようだ。並行処理をしつつの超音波リモコン機能はArduino UNOでは難しいと判断してBluetoothモデムモジュールを使うことを提案した。
Bluetoothモデム(HC-05/HC-06)は、かつて3×3のバスケットボール用に開発した12秒タイマーでスタート・ストップをリモコン制御するのに用いていたのでインタフェースのシリアル速度さえ抑えておけばsoftwareserialでも十分に検知制御できて、シリアル接続のLED群WS2812Bなどで構成した大型表示部も制御できていたので問題はないはずだった。
大量にどこかに在庫していたのだったが、部品棚にあったのはHC-05の親機が見つかった。サンプルのスケッチとスマホ側のアプリを紹介しておいたら、彼なりに自宅で接続テストをしたようで、あいにくとアプリは現在の彼のスマホではAPIがマッチしないのか動作しないようで、別のBT接続のアプリを見つけて実験をしていたらしい。
自宅での実験するなかで、どうもHC-05が正しく応答しないようで壊れているのではないかという話になり次回来た時に交換してほしいという連絡がLINEできた。
こちらでも動作確認をしようということで、古いスケッチを持ち出してみたのだが、どうにもBT接続のターミナル接続とコネクトできない・・・。