こんにちは、はしもとです。
前回は、自作マウスに必要な機能を選定しました。
今回は、必要な機能をマウスに追加するための部品を選定しました。
必要な部品と各部品の関係
上図では、必要な部品と各部品の関係についてまとめてみました。
今回の自作マウスでは、スマホやPCのブラウザ上でパラメータ調整できるように外部機器と無線通信できるWiFiモジュールもしくはBluetoothモジュールが必要です。検討した結果、今回はWiFiモジュールを使うことにしました。詳細は次の章で述べます。
また、できればこのWiFiを使って、現在のマウスの位置もスマホやPC上で確認できればいいなと思っています。
その他の部品については、先輩社員の方々のマイクロマウスを参考に迷路を完走できるために必要な部品を選びました。次は、具体的にどの部品にするか選定していきます。
部品選定
マイコン
今回はマイクロマウスでよく使われるSTM32を使おうと思います。
ただ、STM32と言っても上の画像のように種類が多くどのマイコンにするか選定が難しいです。
そこで、自分の作りたいマウス像を参考に選定を行います。
まず、左の「High Performance」「Mainstream」「Ultra-low-power」「Wireless」のどれにするか選びます。まず目についたのが「Wireless」という項目です。なぜなら、今回の理想のマウス像では外部機器との無線通信が必要だったからです。
そのなかでもBluetoothを搭載したSTM32WBシリーズを使おうと考えました。
しかし、先輩社員の方から「Bluetoothはマイクロマウス会場のような人が集まるところだと、皆が使うため繋がらない可能性がある」というアドバイスを頂き、WiFiモジュールを使ったほうがいいのでは?と考え出しました。
また、この製品は技適がなく、自分で技適の審査を通す手続きが必要です。はじめてのマイクロマウスを作るにあたり、この作業は大変すぎると判断した結果、今回はやめておくことにしました。
かわりに、STMマイコンと技適があるWiFiモジュールを組み合わせて使うことで外部の機器と無線通信しようと考えました。
では、「Wireless」以外のその他の項目を見ていきます。理想のマウス像を考えたとき、無線通信機能以外では、最低限迷路を完走できる機能をもっていたらよいので、どの項目でも問題ないかなと思いました。ただハイスペックに越したことはないと思い、「High Performance」の中から選ぶことにしました。
またその中でも、十分なピン数をもち、かつマイクロマウスでの使用実績があるものを選定した結果、「STM32F405RG」を使用することに決めました。
WiFiモジュール
WiFiを使ってSTM32マイコンと外部機器の無線通信をするため、WiFiモジュールが必要です。
サイト(ESP32でNucleo(STM32)を簡単にWiFi対応に)を参照すると
STM32のWiFi対応に成功していたため、同じものを使えばうまくいくのでは?と考え、
ESP32-WROOM-32を使うことに決めました。
角度センサ(IMU)
IMUを用いることで、機体の角速度・加速度を高精度に計測することができ、より安定した姿勢制御を可能とします。
今回は以下の理由から、ICM-20648を使います。
② 先輩社員からのおすすめ
壁センサ
壁センサでは、赤外線LEDを壁に当てて反射してきた光の強度を測ることで壁との距離を測定します。そのため、赤外線LEDと光の強度を測るためのフォトトランジスタが必要です。
今回は以下の理由から、
赤外線LED:OSI5FU3A11C
フォトトランジスタ:LTR-4206E を使います
② 波長が一致しているものを選定したほうが良い
エンコード付きモータ&モータドライバ
モータとモータドライバは以下の部品を選定しました。
これらもマイクロマウス競技でよく使用されているものから選びました。
- エンコーダ付きモータ
- モータドライバ
UI
マイクロマウスでは、モード選択や走行時の動作状態を確認するためにLEDやスイッチを用います。
今回は、モード選択表示をLEDではなく、LEDで数字を表示できる表示器を使うことで
現在のモードをよりわかりやすく操作者に提示しようと考えています。
その他のUIとしては、電源監視用のLEDやモード選択用のスイッチなどが必要ですが、
これらの細かい部品は他に比べて急いで決める必要もないので、
もう少し作業を進めてから選ぼうと思います。
まとめ
今回は部品選定を行いました。
部品選定では、昨今の半導体不足の影響により、欲しいと思った部品がないということがありました。もう少し早めに部品発注を済ましておけばと後悔しながらもなんとか自分の希望のマウス部品を選ぶことができました。
次回からは各部品の動作確認を行っていきたいと思います。
まずはマイコンの環境構築からかな?
それでは〜!