大会があるという事で、研修を終わらせるべく最後の調整に挑みました。
マイクロマウス大会
大会出場に向け
前回、突貫で走りながら音楽を流せる様にプログラムしていた為
音を切り離して走りに専念させる事自体が逆に手間になってしまい、
前回から音の部分は一切触らずに、走行部分のみの調整で完走を目指しました。
大会の迷路で調整
そもそも迷路走行は以前からあまりまともに走れていなかったのですが
大会用の迷路の大きさになると、途端におかしな挙動になります。
まず最初1回曲がった後に前の壁を認識しないでぶつかります。
これは以前別の16×16の迷路を走った時にもありました。
何故か1回曲がった後に正面の壁を認識しないのです。
以前これの対処法は曲がり方を変える。というものでした。
現在は等速円運動によるスラロームをしていますが、
これを片方の曲がり方を信地旋回にする事で、最初の壁をクリア出来ました。
が、今回はスラロームで完走が目標なので、その技は使えません。
等速円運動スラロームで最初の壁をどう越えるか。
これが今回最大の問題です。
走行距離の微調整では解決しない事がしばらく調整していて判ったので
センサーの閾値で解決を図りました。
#define REF_SEN_R 474
#define REF_SEN_L 605
#define TH_SEN_R 150
#define TH_SEN_L 200
#define TH_SEN_FR 131
#define TH_SEN_FL 175
フロントのセンサー閾値を通常の調整で出した値より100以上下げて設定。
これにより、最初曲がった後に壁の認識しないでぶつかる事はほぼ無くなりました。
壁を無視する事がほぼ無くなったので、後は走行中に起こる距離のズレを如何に誤魔化すか
という点のみを重視して調整。
最終的には数回に1回はゴール出来る程度にはなりました。
大会に出場
では大会に提出した動画を見てみましょう。
直前までゴールした後、帰る事が出来なかったのですが、最低帰れる様にはしたいと
微調整を重ね、帰れるところまでは持って来れました。
研修まとめ
これでマイクロマウスの研修は終わりですが、個人的にもう少し遊びたいとは思います。
振り返ってみると、入社して最初Pi:CoClassic3を組み立てていた頃は、
まだハンダの使い方もまともに知らない状態でした。
それでも何とか組み立て終わってサンプルプログラムを走らせてみても
さっぱり中身が分からず、所々でサンプルのちょっとした変更だけでは解決出来ない部分があり
追加でプログラムを考えてスラロームを作っていきました。
しかし、そこまではある程度の参考資料があったので形にはなったのですが
走らせる事より音を鳴らす事に喜びを覚えてしまい、単音で満足出来なくなってからが
本当の戦いの始まりでした。
どうしてもハードを弄らずにBEEP音だけでそれっぽい和音を鳴らしたくて
疑似和音を発案した所、先駆者が居たので考え方の方向性が間違ってない事が判り
それをどうマイクロマウスのプログラムに落とし込んでいけるか、が最初の課題でした。
そこもあれこれ試行錯誤して疑似和音が形になり、ある程度満足した頃に
「走りながら鳴らしましょう」
という課題を頂き、取り組んでいきました。
この頃からかなりサンプルプログラムを読む様になり
どこに音楽を割り込ませれるか、の試行錯誤を重ね
それのアタリがついた頃、鳴らし方を変えなければならない事もわかり
作っていた疑似和音音楽を割り込み用に分解改編。
ついに走りながら鳴らす事に成功しました。
その後はしばらく仕事に追われて全く触ってなかったのですが
大会の開催が決まり、急遽完走の為に再開し
研修を終える事が出来ました。
最後に、
音を鳴らすのは息抜きになるので、ちょっとした音楽を単音で鳴らすのは良く見掛けますが
疑似和音にまで拘って音を鳴らそうと思う人がもし現れた時に、
自分のブログが手助けになれれば幸いです。