Training Tracer Ver.2のソフトをsimulinkで書く場合、Embedded Coder Support Package for STM32が必須になる。
Embedded Coder Support Package for STM32のセットアップ時には、さらに別のソフトのインストールを求められて戸惑った。
①ARM Compiler
コンパイラーを別途ダウンロードする必要があり、アカウントの作成も必要になった
②STM32CubeMX
STM32マイコンのプリフェラル設定そのコードを出力するソフト、ダウンロードにはSTMのアカウント登録が必要で、MATLAB上からそのソフトを動かすにはソフト上でのログインが必要
大会に出せなかった機体

2025年大会用に開発してたけど運動性のが悪くお蔵入りした機体。
マイコンをRX631からRX671に変更してスマートコンフィギュレーターのコードを利用するソフト開発に移行したのと、バッテリを3セル構成にして高速域での加速性能向上、機体ヨー慣性を減らしてターン速度を上げようと試みた。しかし、左右のターン特性が大きく異なるのと、ターンの再現性が低く大会には持ち込めなかった
吸引力不足もMK07-3.3を10V駆動で使っても、同じファンをCL-0614-10250-7の6.5V駆動に比べて吸引力が劣っていた。

また、ジャイロを別基板にして振動を逃がす構成にチャレンジするも、ジャイロ子基板を固定する両面テープの面積を小さくしすぎて、基板間のワイヤーの張力にスポンジが負けて水平に設置できなかった
マイクロマウス2025

大会を運営してくださった皆様ありがとうございました
運よく5回完走でき3位入賞と、マイクロマウスタックチャンでも特別賞を頂きました
試走日の土曜日は試走時間のロスタイムに駆け込み何度か探索走行を確認。探索していると変なところでターンして壁にぶつかる。撤収前に一度だけ発生時の様子を録画することができたのでマウスパーティに向かう。
その夜に録画とプログラムを見返していると、右ターン中に左壁の壁切れの検出を無効にしそびれていて、その影響で直線に入った直後に壁切れが起きたとして距離補正が誤動作していた。ただし、このバグは2023年から入っていたようなので、今までは運よくターン中の壁の反射が低くて壁切れ条件を満たしておらず、処理が漏れていても問題なかったのが、今回の大会環境では壁の反射量が大きかった為に壁切れ判定が動作して露呈したようだ
大会本番、出走順が真ん中くらいだと全面探索した人が少なくて誰も走っていない箇所を走るとタイヤへの埃の付着が多い。ちょっとオートスタートは厳しいかなと思っていた矢先にリタイヤ。それでもほぼ全面探索ができており、最短経路ではないけれどそこそこいい経路までは取得できていた。

黄色が最短経路候補の未探索区間。
2~4走目は直線速度、加速度、ターン速度の様子を見ながら走行して5走目は最大パラメータで完走できた。
直線速度6.5m/s,直線加速度40m/ss~20m/ss,斜め速度5m/s,斜め加速度30m/ss~20m/ss,90°ターン2m/s,180°ターン1.8m/s,その他が1.7m/s。ターンの最低速度は去年よりも0.1m/s速いが、数字上同じの加速度は去年よりもリミットを早めにかけているので遅いし、電圧不足で最大速度まで到達していたかも不明。
素晴らしい大会を運営してくださった皆様、ありがとうございました。
Training Tracer Ver.2のハードウェアで躓くところ

①ファームウェアの書き込み中に左モータが回転する。
書き込み中にプルアップされるポートがモータ制御用に割り当てられているため。上の写真のようにプルダウン抵抗をつけると良い
②パワースイッチをONにしないと書き込みができない
マイコンボードにUSBを繋ぐとマイコンボード上のLEDが点灯するため、一見書き込みができそうに思えるが。この状態ではSTMマイコンに通電しておらず書き込みできない
Training Tracer Ver.2関連情報置き場
資料が複数サイトにあって迷うので備忘録
RT社
Training Tracer Ver.2 Download Contents
組み立てマニュアル、Arduinoサンプルスケッチ
GitHub – rt-net/TrainingTracer_V2_Hardware: Training Tracer Ver.2のハードウェア資料です
CPUボードの改造箇所、回路図
MathWorks社
Line Trace for Micromouse with Simulink – File Exchange – MATLAB Central
Simulinkのモデル
GitHub – mathworks/Line-Trace-for-Micromouse
同上、MATLAB環境構築方法など
How to Make a Line-Following Robot Using STM32
解説動画
マイクロマウスで学ぶ!ロボティクス開発 × モデルベースデザイン入門
54分30秒~解説
小容量リポの充電回路
ハーフマウスで50mAh程度のリポを使いたい場合に、それを1Cで充電できる充電回路がなかなか見つからない
市販のラジコン用充電器は最低でも100mAの充電電流になっている。
というわけで50mAで充電できるICを調査してみる
Microchip系のICはバッテリを4.2Vまで充電するためには、バッテリ電圧+1Vの電源電圧が必要そうな記載だし、実際に図表にもVDDが5.2Vと書かれている。
LiPoバッテリー充電コントローラ(MCP73831T) – 電子工作専科でも4.2Vまで充電できなかったことが示されている
USB等の5Vの電源動作時に4.2Vまで充電できるかどうかがあやしいので使うのは見送る
LTC4054L-4.2は5Vの電源でも4.2Vの充電ができそうだし、充電電流も10mA~150mAとハーフマウスのバッテリーにはちょうど良い範囲にあるが、割高感がある。
最近流行のTop Power ASIC社のICならTP4056XやTP4057もデーターシートに充電電流50mAの設定が記載されている
Amazonとかで格安で販売されているTP4056搭載の充電モジュールはどのメーカのセカンドソース品が乗っているかは分からないが、もしかしたら回路定数を変えると50mAにできるかもしれないし、ピンコンパチであるなら上記のTop Power ASIC社製のTP4056Xに置き換えて使えるかもしれない
壁センサの線形化
この記事はマイクロマウス Advent Calendar 2025の2日目の記事です。1日目の記事は社畜博士によるロボトレース競技に使えるギヤ付きホイールの作り方の紹介でした。
マイクロマウス大会のスポンサーであるMathWorks社からMATLABのライセンスを提供してもらえているので、せっかくなのでMATLABを使って壁センサの線形化をやってみた。
ちなみに去年までは壁センサからの値の常用対数そのまま利用していて制御的には困っていなかったけれど、物理量(距離)への変換をしていないため、壁との距離を直観的に把握することができなかったことが少し不便だった。
ということでmatlabを使ってセンサの線形化をした手順の紹介
①治具を使って壁とロボットの距離を可変できるようにする

②壁との距離を変えながらセンサの値を取得する。今回はロボットの前後方向の中心が柱の位置にある場所を45mmとして、ロボットが区間の中心にある場所を90mmとした。L列に左前センサの値、R列に右前センサの値を記録する

③測定結果をテキストファイルに保存する

④matlabを立ち上げてデータのインポートボタンを押して、③で作ったテキストファイルを選択する

⑤インポートツールが立ち上がるので選択のインポートを押したのち、画面を閉じる

これで変数maekabeがmatlabにインポートされる

⑥matlabメイン画面のアプリのタブに移動して、アプリの一覧から曲線フィッターを選択して、曲線フィッターを立ち上げる
⑦データの選択を押して、X軸に変数maekabeのセンサの値の列を、Y軸に変数maekabeの壁との距離の列を選択する

⑧近似曲線から対数を選ぶとフィッティングされるので、右下の近似パラメーターの値a,bをメモする。

⑨マウスのソフトに組み込む
今回の実装では、自然対数の計算は遅いのでテーブルln_table[]を作成してそれを参照するようにし、
また、距離分解能が1mm刻みだと少し荒く感じたので、45mm=450になるように近似パラメーターa,bをそれぞれ10倍して反映させている

以上の手順によって、matlabを使うことで手早くセンサの線形化ができた
明日のAdvent Calendarはあこちゃんによる誰でも作れる、シリコンタイヤ !です
こつこつ

新作の樹種部品が届いた。2.46g
九州地区大会
熊本高専で行われた第34回マイクロマウス九州地区大会。
Simulinkで書いたロボトレースとマイクロマウスタックチャンを持って大会に参加
大会を運営してくださった熊本高専の皆様ありがとうございました。
