こんにちは、ショウです。前回は今年の目標について書いたので、今回はマウスに必要な機能について考え、実際に使用するマイコンを決めたいと思います。
まず、マイクロマウスが走る為にどんな機能、部品が必要なのか考えます。
マイクロマウスは一般的には車輪型のロボットが、スタートとゴールの座標と迷路サイズだけをもとに、迷路を探索し、ゴールを目指します。そのためには、移動の為のモータの駆動制御、自分の移動距離と方向の情報、迷路(壁)の情報が必要になります。また、ロボットが集めた情報の確認のために、UARTなどのPCとの通信系、ロボットのモード選択などに使うUI系などの機能も必要になります。
これらの機能と必要な部品をまとめると以下のようになります。
- 上記の機能を制御するCPU(マイコン)
- モータ制御系 (モータドライバ)
- 移動距離センサ (エンコーダ)
- 角度センサ (ジャイロセンサ)
- 壁センサ (LEDとフォトトランジスタなど)
- PCとの通信系 (マイコンに用意されているUARTなど)
- UI系 (LED、ブザー、スイッチなど)
マイクロマウスを走らせるためにはこのように沢山の部品が必要になります。
そして、これらの部品をマイコンからコントロールしなければなりません。それぞれの部品を制御するために必要なマイコンの機能をまとめると以下のようになります。
- GPIO
- PWM
- SPIまたはI2C
- Timer
- ADC
- UART
人によって構成が違いますが、このようなマイコンの機能を使うことが多いです。
加えて、マイコンはピンごとに使える機能が決まっているので、ピンの数が機能の数分足りるかも考えなければなりません。
このように必要な機能を考えた上で、今回私はSTM32G474を使うことにしました。
理由としては、3つあります。
1つ目は48pinのパッケージがあることです。これは、今回作る機体が吸引機構を載せたマイクロマウス競技用だからです。マイクロマウス競技は9cm×9cmの区画を走行するので、機体サイズがかなり小さなものになります。そこに、場所を取る吸引機構が載るので、大きなパッケージのマイコンが使えないということが理由です。
2つ目はマイコンの最大周波数が170MHzと高いことです。これは、昨年の全日本で迷路情報が大きく、処理が追いつかなかったためにリタイアすることなった経験から、マイコンの周波数は高いほうがいいと判断したからです。
そして3つ目は、STMマイコンの勉強をしてみたかったからです。昨年までの機体はRXマイコンというルネサスエレクトロニクスが作っているマイコンを使用していたのですが、そろそろ新しいマイコンを使えるようにしたいと思ったからです。
今後は、下の写真のNucleo BoardというSTMマイコンの開発ボードを使って、マイコンの機能のチェックをしていきたいと思います。
NUCLEO-G474RE