ソフトについて
はい、ソフトについてです。 pallasでは3つの言語を使用してプログラムを組んでいます。
です。
プログラムの流れをざっくり書くと
- 初期化
- センサー値取得
- 移動方向判断
- マッピング等の処理
- 移動
- 2へ戻る
といった感じです。
また、これと並行して
・進行停止ボタンが押されたか
を常に監視するタスクを走らせています。
1. 初期化
文字通り初期化です。Arduinoとの通信やセンサーなどの初期化、調整をしてメインタスクスタートのボタンが押されるのを待機します。
2. センサー値取得
これもまたそのまま。
移動方向の判断に使う超音波、光センサーの値を変数に読み込みます。
3. 移動方向判断
これもまた読んで字のごとく、です。
移動方向判断には拡張右手法、と言う方法を採用しています。
この方法は「最も通った回数の少ないタイルへ進み、進むことができる方向に2つ以上同じ回数通ったタイルがあるならば右→前→左の順に優先して動く」という方法になります。
これについて解説するのは長くなるので分けます。
書きました
4. マッピング等の処理
そのまま。
長くなりそうなのでこれも3と一緒に説明します
5. 移動方向判定のところから変数を使ってどの報告へ移動するかが指示されるので、それに従い移動します。