1ヶ月でマウスを作ってみた

この記事はマイクロマウス Advent Calendar 2021 - Adventar11日目の記事です。

昨日は入院をしていたアライさんどうぞご自愛ください。
最近マウサー界隈、体調崩す方が多いので、自分も体調を気をつけたい。(といいつつ、無頓着なんだよなー)


さて、今回は、新作を1ヶ月で作成したので、その話をします。

きっかけは、この告知。 f:id:nao1288stusj:20211206231548p:plain

ビックサイト開催を知ったのは、11/6のことである。

さて、ここ1年の自分の行動を確認しよう。

  • 昨年はBustersする相手がいないため、Bustersを休業。
  • 今年も秋まで具合から、オンラインだろうと判断。
  • 使ってみたい、ICの発売遅延と知り更にだらける。(watchだけはしてた)

このモラトリアムからの急転換であった。

国際ロボット展なので、何であれ、行くのは決定事項。行ったら捕まるので、自分から出向くしかないなと判断。 走らせるものがないと話にならないので、ハードウェアから用意を開始。マイクロマウスづくりRTAを実施。 今回はハーフサイズ。
ハーフに致命的な設計ミスがあったら、クラシックでExiaAlter出します。

スケジュール確認

2月に調整に集中したい。となると、1月末までに基本システムの構築、12月中にはハードウェアをFIXさせなくてはならない。
ということは、11月から年末までの1ヶ月〜2ヶ月でハードウェア周りFIXさせなくてはならない。
(最近、仕事でもプライベートでもスケジュールに追わてる!)

コンセプト

とは言え、コンセプトを決めなくては形も定まらない。以下のように(後付)設定した。

  1. 脱Renesas
  2. C++を使う
  3. ESP32-S3を使う
  4. K峰さん撃墜を目指して基礎を固める。

1については、RX71Mや72Nの在庫があるが、RXシリーズやる気なさそうだし、開発環境もやる気なさそうだし、見限りました。
2については、ここ数年rosで戯れていたということも有り、夏休みにシミュレータを再構築した。
3については、ピンアサインの制約が小さく、十分なRAM、処理速度、そして開発環境はOS縛りからの脱却。
4については、クラシックでは宇宙人枠でカウントされてますが、ハーフは試作機止まりなので、地球人からやり直し。K峰さんの機体の重さなどを参考に目標値を設定。

設計

CPU

ESP32-S3は2021年12月時点でサンプル品がdigikeyにて手が入る、という流通レベル。チップ単体での販売は現時点では行われてないため、WROOMボードからヒートガンをつかって剥がすことにした。 f:id:nao1288stusj:20211207000511j:plain

ESP32-S3は内蔵フラッシュがあるタイプと、ないタイプがあり、WROOMボードは内蔵フラッシュなしだったため、仕方なく外付けフラッシュを搭載して設計。 MINIボードの方は8MBのフラッシュがある模様。

ピンアサイ

ESP32はADCのピン以外は特に機能の制約がないため、spreadsheetである程度雑にアサイン。 f:id:nao1288stusj:20211206235418p:plain

f:id:nao1288stusj:20211206235730p:plain ICはdigikeyと手持ちの在庫を見ながら調整。

f:id:nao1288stusj:20211206235824p:plain 一気に仕上げた(この画像では外付けフラッシュなし版)

足回りの設計

磁気式エンコーダは手持ちのAS5147Pを選択。旧作マウスの足回りからESP32のパルスカウンタで値が取得できるかを確認。 ピニオンギアは2017年ごろに買った在庫に合わせて設計。(kkpmoで発注したが3週間経過したが発送されない。)

f:id:nao1288stusj:20211206235933j:plain

開発環境の確認

ESP32-S3とS2はピンコンパチではないがWROOMボードならコンパチなので、 届いたWROOMをESP32-s2-devkitcボードに無理やり移植し火入れ。一発成功しuartでデフォルトで設定されているアプリが吐き出す文字列を確認。

そして、ESP-IDFを使い開発環境を構築を実施。 ESP32の開発の場合、通常platformioを使い、GUIサポートなどを受けながらが楽なのだが、S3は最新のためplatformioが最新のESP-IDFに対応していない。 そのため、ESP-IDFを単独利用を敢行。複数のバージョンを試したが、v5-devに落ち着いた。

発注&組み立て

足回り

DIDEL mk-06-4.5で仮組み。 f:id:nao1288stusj:20211207001627j:plain 実はタイヤをつけるとシャフトとタイヤが干渉。千石で売っているアルミプチカッターにて切断。 f:id:nao1288stusj:20211207001730p:plain

この時アルミプチカッターで切断後の表面処理用にリューターを購入。

mk-06を使うのでは、目標としているK峰さんマシーンに回転数では同等となる。更にスペックを狙う場合、より回転数が出せるモーターを選ぶことになるが、その場合、モーターの全長が長いものしか無く、収まりきらないという問題が生じる。

「収まらないなら削ればいいじゃないか。」 f:id:nao1288stusj:20211207002322j:plain ということで、リューターで器用に後の金属部スレスレまでプラスチック部を削り落とした。だが、まだ足りない。 ダイヤモンドカッターを使って金属部をどれだけ削って良いのか限界を確認。 f:id:nao1288stusj:20211207002505j:plain 意外と行けるが、全体を削ると当然プラスチック部が落ちる。(性能は落ちている可能性はある)

最後に互い違いになるようにして、配置することでモーターは完成。 f:id:nao1288stusj:20211207002632j:plain (まさかモーターのシャフト以外を加工するとは・・・)

はんだ付け

ステンシルとヒートガンを使ってLGAパッケージたちをはんだ付け、無事1度もショートすること無く完成。 f:id:nao1288stusj:20211207002853j:plain

完成

f:id:nao1288stusj:20211207003057j:plain ExiaAlterから継承したセンサー5つ構成

重さはというと、 f:id:nao1288stusj:20211207003119j:plain 仮のバッテリーを使って17.1gなので、実際はもう少し軽くなると思いますが、少し改善できそう。 当初目標にしていたK峰さんのロング19号機はセンサー4つで16gなのでいい勝負なのでは無いだろうか。

作り終わって

短期決戦ということも有り、在庫を駆使しつつ、楽をしながら、作ってみました。 各方面に怒られそうなことをやってますが、自己責任です。 参考にするかは今年の大会結果が出てから判断してください。(12/7時点でここまでに執筆)

2021.12.10時点 での話

既にESP32S3の使用なのか、起動時や書き込み時にHighになるピンが複数存在し、 モーターが全力で回転するという嫌な事象に遭遇しています。ESP32の一部のモデルには起動時の値がHighになるという言及が有りますが、S3にはないので困ってます。場合によっては回避した基板を作成してしまおうか検討中。(ちゃんと調べて直す時間よりも、さっさと回避した基板を発注したほうが安上がり?)
工場出荷直後の状態でテスターを当ててもHighだったので、チップ側が原因(仕様)っぽいですね。

つまり・・・・

1ヶ月でマウス完成しませんでした!!!!(2021.12.10 23:45に確定)

モーターが分回るのが嫌なら、初期状態の状態リストを作って、影響が出るモーターやブザーを避けて再度基板作しかないですね


オチがついたところで、明日の担当はkerikun11です。/dev/nullとのことで、ログも何もかも握りつぶされるので、何が来るかわからないですね。

f:id:nao1288stusj:20211210225147p:plain

追記

某5年制大学の圧政によって、Miceが息していないため、MiceBustersは名乗る意味は少ない。
どうしようか?と考えているのですが、最近、ふと思うのです、毎年表彰台を荒らす某組織Dに対抗する組織が必要なのではないかと。
考えた組織名は、
対D抵抗組織「D_structions」(ディーストラクションズ)

1強は流石につまらない。抗いたいという人たち、とりあえず、名乗りませんか? 構成員募集中!ご賛同いただける方、サブ組織でも良いので、是非、名乗っていただきたいです。

正式名称はD_structionsです。

○nikiBustersにしなかっただけ自重したとご理解ください