1ヶ月でマウスを作ってみた
この記事はマイクロマウス Advent Calendar 2021 - Adventar11日目の記事です。
昨日は入院をしていたアライさんどうぞご自愛ください。
最近マウサー界隈、体調崩す方が多いので、自分も体調を気をつけたい。(といいつつ、無頓着なんだよなー)
さて、今回は、新作を1ヶ月で作成したので、その話をします。
きっかけは、この告知。
ビックサイト開催を知ったのは、11/6のことである。
さて、ここ1年の自分の行動を確認しよう。
- 昨年はBustersする相手がいないため、Bustersを休業。
- 今年も秋まで具合から、オンラインだろうと判断。
- 使ってみたい、ICの発売遅延と知り更にだらける。(watchだけはしてた)
このモラトリアムからの急転換であった。
国際ロボット展なので、何であれ、行くのは決定事項。行ったら捕まるので、自分から出向くしかないなと判断。
走らせるものがないと話にならないので、ハードウェアから用意を開始。マイクロマウスづくりRTAを実施。
今回はハーフサイズ。
ハーフに致命的な設計ミスがあったら、クラシックでExiaAlter出します。
スケジュール確認
2月に調整に集中したい。となると、1月末までに基本システムの構築、12月中にはハードウェアをFIXさせなくてはならない。
ということは、11月から年末までの1ヶ月〜2ヶ月でハードウェア周りFIXさせなくてはならない。
(最近、仕事でもプライベートでもスケジュールに追わてる!)
コンセプト
とは言え、コンセプトを決めなくては形も定まらない。以下のように(後付)設定した。
- 脱Renesas
- C++を使う
- ESP32-S3を使う
- K峰さん撃墜を目指して基礎を固める。
1については、RX71Mや72Nの在庫があるが、RXシリーズやる気なさそうだし、開発環境もやる気なさそうだし、見限りました。
2については、ここ数年rosで戯れていたということも有り、夏休みにシミュレータを再構築した。
3については、ピンアサインの制約が小さく、十分なRAM、処理速度、そして開発環境はOS縛りからの脱却。
4については、クラシックでは宇宙人枠でカウントされてますが、ハーフは試作機止まりなので、地球人からやり直し。K峰さんの機体の重さなどを参考に目標値を設定。
設計
CPU
ESP32-S3は2021年12月時点でサンプル品がdigikeyにて手が入る、という流通レベル。チップ単体での販売は現時点では行われてないため、WROOMボードからヒートガンをつかって剥がすことにした。
ESP32-S3は内蔵フラッシュがあるタイプと、ないタイプがあり、WROOMボードは内蔵フラッシュなしだったため、仕方なく外付けフラッシュを搭載して設計。 MINIボードの方は8MBのフラッシュがある模様。
ピンアサイン
ESP32はADCのピン以外は特に機能の制約がないため、spreadsheetである程度雑にアサイン。
ICはdigikeyと手持ちの在庫を見ながら調整。
一気に仕上げた(この画像では外付けフラッシュなし版)
足回りの設計
磁気式エンコーダは手持ちのAS5147Pを選択。旧作マウスの足回りからESP32のパルスカウンタで値が取得できるかを確認。 ピニオンギアは2017年ごろに買った在庫に合わせて設計。(kkpmoで発注したが3週間経過したが発送されない。)
開発環境の確認
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で仮組み。 実はタイヤをつけるとシャフトとタイヤが干渉。千石で売っているアルミプチカッターにて切断。
この時アルミプチカッターで切断後の表面処理用にリューターを購入。
mk-06を使うのでは、目標としているK峰さんマシーンに回転数では同等となる。更にスペックを狙う場合、より回転数が出せるモーターを選ぶことになるが、その場合、モーターの全長が長いものしか無く、収まりきらないという問題が生じる。
「収まらないなら削ればいいじゃないか。」 ということで、リューターで器用に後の金属部スレスレまでプラスチック部を削り落とした。だが、まだ足りない。 ダイヤモンドカッターを使って金属部をどれだけ削って良いのか限界を確認。 意外と行けるが、全体を削ると当然プラスチック部が落ちる。(性能は落ちている可能性はある)
最後に互い違いになるようにして、配置することでモーターは完成。 (まさかモーターのシャフト以外を加工するとは・・・)
はんだ付け
ステンシルとヒートガンを使ってLGAパッケージたちをはんだ付け、無事1度もショートすること無く完成。
完成
ExiaAlterから継承したセンサー5つ構成
重さはというと、 仮のバッテリーを使って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とのことで、ログも何もかも握りつぶされるので、何が来るかわからないですね。
追記
某5年制大学の圧政によって、Miceが息していないため、MiceBustersは名乗る意味は少ない。
どうしようか?と考えているのですが、最近、ふと思うのです、毎年表彰台を荒らす某組織Dに対抗する組織が必要なのではないかと。
考えた組織名は、
対D抵抗組織「D_structions」(ディーストラクションズ)
1強は流石につまらない。抗いたいという人たち、とりあえず、名乗りませんか? 構成員募集中!ご賛同いただける方、サブ組織でも良いので、是非、名乗っていただきたいです。
正式名称はD_structions
です。
○nikiBustersにしなかっただけ自重したとご理解ください