マイクロマウスタックチャンの開発を進める
・壁情報の保存と、液晶に壁情報の表示ができるようになった
・割り込み動作がわからない
割り込み禁止と解除の
noInterrupts()/interrupts()とportENTER_CRITICAL(&timerMux)/portEXIT_CRITICAL(&timerMux)は動きが異なるように見える。
少なくとも割り込み内で値が書き換わる変数に対して、普通のところからアクセスするにはnoInterrupts()/interrupts()が必要そう
・壁センサの角度
筐体のサイズの制約から前壁センサを真っすぐに向けたが、これが良くない。左右の前壁センサが平行なために、前壁との角度が見えにくい
・モータ駆動電圧
ステッパーモータのトルク不足を補うために、M5stack内蔵の5Vを利用しようとしたが過電流でM5ごとリセットしてしまう。内臓昇圧回路の前段にPMCが入っていてそちらの制約が大きい模様。
昇圧を使いたい場合にはリチウムイオン電池の出力に別の昇圧回路をのせて対応するしかなさそう
マイクロマウス2024
探索時間を削れ
昨年の全日本大会では5走目が時間切れになってしまった。あと10秒あれば時間内に走りきれた可能性もあるため、今年は探索時間の削減に取り組む。まず導入した探索走行の時間削減の内訳は以下のとおり
①不要なバック走行の削除
その場回転時に壁切れを確実に行いたいため回転後にバックする処理を入れていたのを見直す。左右の壁が確実に見えた場合にはバック走行をせずに、その場から次の走行に移る。バック走行は1秒未満だけれど32×32の迷路になると、その回数が多いので効くはず
②最短経路上の未探索区間の導出のタイミング変更
壁の反対に未探索区間がある場合に、袋小路に入らない場合は、未探索区間まで走りにいってしまうことを修正する。
現在いる区間に隣接している未探索区間までの歩数が長い場合には、いったん止まって未探索区間の再計算を行う
③オートスタートまでの待ち時間
探索ではないけれど、探索走行完了からのオートスタート開始までの待ち時間を7秒から5秒に短縮する。7秒は感覚的にも長かった
マイクロマウスタックチャン
マイクロマウスタックチャンはスタックチャンとマイクロマウスが合体したスーパーカワイイロボットです。
こんな感じで迷路を走り回ります
マイクロマウスタックチャンはM5Mouseをリスペクトしたロボットですが、M5Mouseと違い駆動系を含めてM5Stackのみで制御しています。また、電源もM5Stackに搭載されているリチウムイオン電池1セルで動きます。
M5StackのIO数でやりくりするために、モータはステッピングモータを利用してモータ制御に使うIOを4ポートに抑えています。また、前後左右の壁センサは[右前&左横]と[左前&右横]の2組のセンサをマルチプレクサで切り替えて使用することで、ADCポート2個と切換え信号、赤外線LEDのON/OFF用の合計4ポートに抑えています。