目指せ全日本大会完走 - Yoのマイクロマウス研修

目指せ全日本大会完走 – Yoのマイクロマウス研修 Part.1

目指せ全日本大会完走 - Yoのマイクロマウス研修

こんにちは。新人のYoです。

このブログではマイクロマウス研修について書いていきたいと思います。

今回は8月から9月にかけての内容を書いていきます。

はじめに

今回の研修は新人研修の内容を発展させたものとなっています。

新人研修時と異なる点として、使用する機体が少々進化しました。

今回使用する機体は7月に弊社が新たに販売した「Pi:Co Classic3(ESP32版)」です。

本製品は「Pi:Co Classic3」がリニューアルしたもので、CPUボードが「RX631」から
「ESP32-S3」へ変更されており、開発環境もルネサスの開発環境であるCS+から
Windows、macOS、Linuxに対応しているArduino IDEによる開発が可能となりました。

何気にUSB Type-C対応になっております。

研修の目的と目標

この研修の目的はプログラム言語に対する苦手意識の克服です。

物事に対して「できないからやらない」と「できるけど好んではやらない」では大きな差が
あるので、「できるけど好んではやらない」になれるようにします。

この目的を達成するために本研修では段階的に目標を設定していきます。

序盤の目標は、マイクロマウスの地区大会で完走して1ポイントを獲得することです。

中盤の目標は、Pi:Coのサンプルプログラムには存在しない「拡張左手法」を実装して
地区大会で完走することです。

最終的な目標は、もちろん全日本マイクロマウス大会での完走です。

「拡張左手法」とは

そもそも「拡張左手法」とは、迷路攻略法の基本である「左手法」という手法の
弱点を一部克服させたもののことを指します。

上図の迷路の場合、「左手法」ではゴールに到達できません。

そこで、1度通ったことのあるコースに「仮想壁」を建てる「拡張左手法」の出番です。

ここでの「仮想壁」は、実際には壁のない部分にデータ上で壁を存在すると仮定した壁です。

このように「左手法」ではゴールできない迷路も「拡張左手法」にすることで
ゴールに到達できるようになります。

サンプルプログラムの内容を理解する

読解編

プログラムを書こうにもプログラムの書き方、内容が理解できてなければ書けないので、
まずは製品に付属しているサンプルプログラムを読んで内容を理解していきます。

サンプルプログラムはSTEP1 ~ STEP8と細かく分かれているので、STEP1から順に
ゆっくり読み進めることができます。

個人的にはSTEP4あたりで何が何だか分からなくなり始めていました . . .

  switch (cnt) {
    case 0:
      digitalWrite(SLED_FR, HIGH);  //LED点灯
      for (int i = 0; i < 300; i++) {
        asm("nop \n");
      }
      g_sensor_value_fr = analogRead(AD1);
      digitalWrite(SLED_FR, LOW);  //LED消灯
      break;

プログラムの詳細を教えていただいたことで、5行目の内容が
「何も実行せずクロックだけを消費するコード」というものであることを知りました。

他にも、次のシリアルモニタにセンサ値を出すプログラムにおいて

void loop()
{
  Serial.printf("r_sen  is %d\n\r", g_sensor_value_r);
  Serial.printf("fr_sen is %d\n\r", g_sensor_value_fr);
  Serial.printf("fl_sen is %d\n\r", g_sensor_value_fl);
  Serial.printf("l_sen  is %d\n\r", g_sensor_value_l);
  Serial.printf("VDD    is %d\n\r", g_battery_value);
  delay(100);
}

「\n」が文字列の改行を意味していることは知っていたものの、
「\r」が文字列を行の先頭に戻すものということは知りませんでした。

迷路完走編

サンプルプログラムをひと通り読み終えたところで、
序盤目標達成のためにサンプルプログラムの足立法を使用して迷路を走らせていきます。

まずは4×6迷路で走らせてみました。こちらは難なく完走です。

続いて、本命の16×16迷路に挑戦です。

こちらの大きな迷路の場合、走行時間が長いため機体の調整を怠ると致命傷になります。

展開する迷路をランダムに選んでいただいたところ、まさかの新人研修時に完走できなかった
因縁の迷路でした。

前回の反省を踏まえ入念に調整を行うも同じようなところで機体が壁に衝突してしまいました。

原因を探したところ、どうもゲインの値が高かったようです。

ゲインの値が高いと機体の姿勢が安定せずふらふらしたり、迷路の壁が途切れたところで
急激に姿勢が崩れるといったことが発生します。

新人研修時に完走できなかった原因もこの値であったと思われます。

ゲイン値を調整し直し、いざ迷路走行本番へ。

結果は探索走行が2分18秒、最短経路走行が44秒と無事完走できました。

次回予告

次回は全日本マイクロマウス大会の出場に必須な1ポイントを獲得するために
マイクロマウス地区大会に出場です。

タイトルとURLをコピーしました