こんにちは、shotaです。
社員研修として、オリジナルマウスの製作を始めます。
[前回の記事]で、ESP32を使ったマウスを作る!!という目標を掲げました。
今回はより詳細な仕様を決めたいと思います。
仕様決めのルール
設計を楽にするため(妥協するため)、仕様を3段階に分けます。
- 最低限必要な機能・性能
- これがないとマウスじゃない
- 重要な機能・性能
- 目指すマウスの姿
- 目標
- 欲望
- できればほしい機能・性能
- あったら嬉しい
- 妥協できるところ
最低限必要な機能・性能
これがないとマウスじゃないという機能・性能です。実現しないと大会に出場できません。
- 迷路を直進・旋回できる
- 実現しないと迷路を走れません
- 壁を検知できる
- 実現しないと角を曲がれません、迷路を解けません
- 迷路情報をフラッシュメモリに保存できる
- 実現しないと競技中にマウスの電源を切れません
- 電源スイッチがある
- 実現しないと電源を切るためにバッテリーを引き抜かなければなりません
- モード切替インタフェースがある
- 実現しないと電源ONですぐに走り出しちゃいます
重要な機能・性能
目指すマウスの姿です。これらをすべて実現できるように頑張ります。
- ESP-WROOM-32Dを使う
- 一番重要な項目です。ESP32はマイクロマウスで使えない。なんてことにならないようにがんばります。
- WiFi・Bluetoothが使える
- ESP32の主な機能の一つです。ただ、マウスで使うにあたって注意事項があります。この記事の最後に書きます。
- 組み込みOS(FreeRTOS)が使える
- 組み込みでマルチタスクを使ってみます
- AWSと接続して迷路データをクラウド(AWS)に送信できる
- 一番むずかしい仕様だと思います。
- これまで使っていた[Pi:Co Classic3]では、マウスとPCをUSBで接続して、迷路情報を[Tera Term]に表示していました。
- 無線で迷路情報をクラウドに送信し、いつでもどこからでも迷路情報を閲覧できるようにしたいです。
- DCモータを使う
- Pi:Coではステッピングモータを使用しました。今回はDCモータを使います。
- [モータの種類 ルネサス]
- Linuxのターミナルで開発できる
- (Windows使いたくない)
- (好きなエディタ(NeoVim)を使いたい)
できればほしい機能・性能
設計の妥協ポイントです。ESP32のデメリットが妥協の原因です。
- ハーフサイズのマウス
- ESP-WROOM-32のデメリット① サイズが大きい
- 部品が乗らなかったらクラシックサイズにします
- [ESP32-WROOM-32D & ESP32-WROOM-32U Datasheet]の17ページ目
-
ESP32 Physical Dimensions
- バッテリー駆動でWiFi、Bluetoothが使える
- ESP-WROOM-32のデメリット② 消費電流が大きい
- バッテリーが持たない場合は、安定化電源接続時のみWiFi、Bluetoothを使えるようにします。
- [ESP32 Series Datasheet]の34ページ目
-
ESP32 RF 消費電力
- LEDでマウスの状態を表示できる
- ESP-WROOM-32のデメリット③ ピン数がちょっと少ない
- 38ピンありますが、[自由に使えないピン]もあるので、ギリギリのピン数になると思います。
- 最低でもLEDを1つは載せたいです
- [ESP32-WROOM-32D & ESP32-WROOM-32U Datasheet]の3ページ目
-
ESP32 Pinout
マイクロマウスで無線通信を使う注意事項
1. 競技中にプログラムのローディングおよびROMの交換を行なうことは許されない。また、競技中にマイクロマウスを本体とは独立した開発装置やコンソールボックスと接続してプログラム実行に関する指示を与えることも許されない。
というルールがあります。
つまり、競技中にWiFiやBluetoothを使ってPCやコントローラと通信してはいけない、ということです。
そのため、ESP32のWiFi、Bluetooth機能はデバッグやマイクロマウス以外の遊び(例えば無線操縦)のみで使用します。
次回やること
仕様がある程度決まったので、設計方針を決めます。