みなさんお疲れ様~~~!!
初めましての人は初めまして。
そうでない人は疲れてないかい?
進捗がまるで出てこないN_Goです!
この記事は「マイクロマウスアドベントカレンダー2023」の16日目の記事です。
昨日はtutuiさんによる「ロボトレ機体を1週間で作らされた話」でした。
B2なのに1週間で作れるのはやべぇっすね。入りたてで自作作らせるとやっぱり強くなるもんなんですね...(reRoの方針を詳しくは知らないですが)
個人的にreRoの急成長はすごいと思っていますし、団体の運営について意見を交わしたいと1年前から思ってますね...(実行に移せ)
え~~~、ここから本文ですが、まず謝罪します。掲載が遅れたことが1つ、そして今回はこの内容にしようとは思ってなかったことについてです。すみませんでした...
本当は「新作の吸引ファンを回すことができたよ!!こうやったよ!!」って言いたかった。が、上手くいってないので上手くいったら記事にします。ここで約束しておきます。
ということで、前置きが長くなりました。今回は私の初自作マウス「とことこねずみ」について詳細を書いていこうと思います。学生大会後ではありますし、そろそろ自作マウスに手を出そうとしている学生さんもいるのではないでしょうか?
この記事は初めて自作マウスを作る方向けのつもりです!!!
私が工夫したところ、考えたところ、苦労したところ、私の持つ情報全て書こうと思います。これがいいのかどうかわかりませんが、こういう記事が1つはあってもいいでしょう。ちなみに、間違ってる情報もあるかもしれないのでそこはご了承ください。
連絡いただければ随時更新もしていきます。永久保存版!ブクマしときましょう!
わからない用語はこれなど見て理解してくだい。
それではいってみよ~~!
- 0. 概要と目的
- 1. 基本情報
- 2. 使用部品(回路)
- 3. 回路図
- 4. パターン図
- 5. ハード関連
- 6. 基板作成
- 7. プログラム
- 8. 回路の事前確認のすすめ
- 9. その他
- まとめ
- さいごに
(かーーーーーなり長いから気をつけてね。)
0. 概要と目的
とことこねずみを作る上で大きく立てたコンセプトがあります。それは、
初めての自作マウス です。
意味としては、難しいことを一気にやらないってことです。自作マウスを作るというハードルは正直ものすごく高いです。それはやる前からもみんなわかると思います。
なので、少しでもそのハードルを下げて、まずは完成して動くモノを作るということを最優先しました。
私としては、まず動くものを作って、ノウハウと作れた自信を持って次へ行きたい想いが強かったのでこのコンセプトになりました。
いきなり全てをやって速さを求めるのも良いと思います。ただ、周りに聞ける人がいるとかそういった環境でないとつらさがとんでもないです。
回り道なように見えて実は近道かも?堅実を地で行くタイプの人にオススメです。
1. 基本情報
名前:とことこねずみ
長さ:90mm
幅 :75mm
高さ:35mm
重さ:124g
実績:2022年全日本大会 6位
2023年関西大会 5位
いい感じに走れればこんな感じにはなる。
おらぁ!!! pic.twitter.com/plv1nRy9We
— N.Go. (@N_Go_mouse) 2023年2月14日
2. 使用部品(回路)
回路部分で主要なパーツを並べときます。全ての部品におけるのですが、入手性を重視して購入していたつもりです。ただ、品切れになってしまってる商品もあります...ごめんなさい... 代替え品も示していきます。
パーツ名 | 商品名 | メーカー | 購入場所 | コメント |
CPU | RX631搭載CPUボード | (Renesas) | RTロボットショップ | |
モータ | 1717T006SR-IEH2-512 | FAULHABER | 新光電子株式会社 | 学生割引アリ |
モータドライバ | TB6612FNG | 東芝 | 秋月電子通商 | |
ジャイロセンサ | MPU-9250 ボード | (InvenSense) | Strawberry Linux | 品切れ中 |
フォトトランジスタ | ST-1KL3A | コーデンシ | RTロボットショップ | 壁センサ用 |
赤外線LED | SFH 4550 | OSRAM | RSコンポーネンツ | 壁センサ用 |
バッテリー | Hyperion G8 HV 30-60C放電 330mAh 2S (7.6V) | Hyperion | ロビン | 品切れ中 |
3端子レギュレータ | NJM7805SDL1 | 秋月電子通商 | 5V 1.5A | |
3端子レギュレータ | ADP3338AKC-3.3 | 秋月電子通商 | 3.3V 1A | |
ダイナミックスピーカ | UGCM0603APE |
|
秋月電子通商 | |
MOSFET | BSS138 | 秋月電子通商 | ||
赤色7セグLED | OSL10326-IR | 秋月電子通商 |
これ以外のパーツは秋月や千石電商(抵抗系のみ)とかで買ってます。
抵抗とコンデンサのサイズは手付けもしやすいように2012サイズにしてます。
部品を見て感じたかもしれませんが、CPUとジャイロセンサはボードを使用しています。これは、はんだ付け不良の不安をできるだけ減らすための工夫です。
モノが上手く動かなかった場合にはんだ付け不良の可能性を除外することができるのは大きいですよ... ほんとに...
部品ごとに少しだけ紹介していきます。
・RX631搭載CPUボード
Pi:Co Classic3で使用されているCPUボードです。ボードなのでCPU周りの回路、水晶振動子等を考えなくても、電源入れれば動きます。また、USBで書き込み、通信ができるのでその辺も考えないで済むので良いです。後述しますが、RX631自体に罠が多いかつピンアサインがギリギリなので注意することも多いです。
・1717T006SR-IEH2-512
マウス界隈では言わずと知れたモータです。磁気式エンコーダ付きなためこれも設計的にかなり楽が出来ます。
1717T006SRまでがモータの型番です。定格6Vのものですが、3Vのものの方が特性が良いようなのでそちらを使われる方が多いです。IEH2-512はエンコーダの型番です。軸が1回転で512パルス出ます。最高は4096なのですが、分解能はあるだけ良いということで大きい値を買う人が多いです。512でも十分ではあります。
RTロボットショップで買うこともできますが、学生であればアカデミックキャンペーンを使用して代理店から買うことも可能です。お問い合わせから「アカデミックチャレンジを使用して見積もりお願いします」と言えばメールで返信が来ます。エンコーダまで含めた同品番を6個くらい買うと単価が下がるので学生団体でまとめて買うとお得なはずです。 (私が最後買ったときは物価高の影響でRTの方が安かったこともありました... 買いましたが...)
・TB6612FNG (モータドライバ)
1717モータに合わせるモータドライバとして有名です。1つ乗せるだけで2つのモータ制御できるので楽です。それなりに電流も流せるし、電源の余裕もあります。
・MPU-9250 ボード
ジャイロセンサのボードです。Strawberry Linuxで買えます。が、売り切れてしまったようです。そもそもMPUシリーズが新規設計非推奨ですので仕方ないです。
しかし!!見つけてしまった!!!MPU-9250の後継機種であるICM-20948のボードが出てました!!!これです!! MPUシリーズとはアドレスが違う等はありますが、ピン配置は同じなので注意すれば使えると思います。ボードで言うとこのサイズが一番小さいと思うので良きです。
サイズ等は違いますが、別のボードでMPU6050というものがありますがこちらはI2C通信のみなので注意が必要です。断言できるほどしっかり見てないですが、RTのCPUボードではI2Cは使えないです。とことこねずみではSPI通信を想定しているので同じ構成にするのであれば避けてください。
・壁センサ (SFH4550,ST-1KL3A)
赤外線LEDを使ってフォトトランジスタで読みます。クラシックマウスではこのフォトトランジスタ(ST-1KL3A)が定番で使われています。赤色から赤外線の波長に対応しているので赤外線LEDでなくても使えます。RTロボットショップくらいでしか買えないですが、ランクを絞っている品らしいので特性が良いです。
赤外線LEDはなんでもいいとは思いますが、良く見る品番はこれな気がします。
後述するとは思いますが、SFH4550は極性を間違えやすいので注意しましょう。赤外線なので光っているかどうかの判断が肉眼ではほぼできないので気付きにくいです。
・Hyperion G8 HV 30-60C放電 330mAh 2S (7.6V)
ちょっと特殊なバッテリーを使っています。Hyperionから出ているHV Li-Po (ハイボルト リポ)というものです。普通のLiPoは1cel 3.7Vですが、HV Li-Poは1cell 3.8Vになります。なので少しだけ電圧が高くなります。電圧=パワーだと思ってるので選定しただけです。今では希少なようなので普通のLipo 2cellでいいと思います。2個買っておくと充電で待ちの時間がなくなるので楽です。
知ってるとは思いますがLipoバッテリーは取り扱いに気をつけないと危険ですので、しっかりと管理して保管、使用しましょう。
3. 回路図
とことこねずみの回路図をそのまま公開します。動いてはいることは実証済みですが、もしかしたらよくない回路もあるかもしれないです。自己責任でお願いします。
ちょこちょことコメントいれていきますね。
回路CADはKi-CADを使用しています。
CPU周り
ここはボードを使っているので回路的には楽です。ただ、ピンアサインを間違えるとどうしようもなくなるので気を付けましょう。RTのボードを使うのであれば、ボードの説明書とRX631のハードウェアマニュアルのどちらもしっかりみましょう。ここはめんどくさいですが、しっかり理解しながらやったほうがいいです。一番めんどくさいけど、本当に、これはマジ。
以下が使用しているピンアサインです。IOピンは省いてます。
機能名 | 使用ポート | 機能モード | ピン名 | RT-RX631ボード上のピン番号 |
右モータPWM | MTIOC4C | PWMモード1 | PE2 | J4-15 |
左モータPWM | MTIOC3C | PWMモード1 | PC6 | J4-13 |
ブザーPWM | MTIOC0A | PWMモード1 | PB3 | J4-9 |
右エンコーダ読込 | TCLKA | 位相計数モード1 | P15 | J5-4 |
TCLKB | 位相計数モード1 | PC2 | J5-1 | |
左エンコーダ読込 | MTCLKC | 位相計数モード1 | PC4 | J4-14 |
MTCLKD | 位相計数モード1 | PC5 | J4-12 | |
ジャイロセンサ用SPI通信 | RSPCKB | ー | P27 | J5-21 |
MISOB | ー | P30 | J5-16 | |
MOSIB | ー | P26 | J5-17 | |
SSLB0 | ー | P31 | J5-3 | |
バッテリー監視用AD変換 | AN008 | 12ビットA/D変換 | PE0 | J4-21 |
センサ用AD変換 | AN002 | 12ビットA/D変換 | P42 | J4-25 |
AN004 | 12ビットA/D変換 | P44 | J4-23 | |
AN006 | 12ビットA/D変換 | P46 | J4-24 | |
AN009 | 12ビットA/D変換 | PE1 | J4-22 |
このボードを使ってDCマウスを作ろうとすると、このピンアサインにしかならないと思ってます。それくらいギリギリです。いまいちわからん人は素直に従うと良いでしょう……
気を付けるべき箇所は、色文字の箇所です。特にエンコーダは2重に注意がいります。
・MTU2a機能周辺(PWM出すところ)
PWMモード1を使うときは出る端子が限られます。例えば... MTIOC4BやMTIOC4DからはPWMを出力することができません。いくら設定しても出ないものは出ません。これは気付かずにやってたら泣きますよ。ほんとに。ちなみにTPUでも同じ。(経験者)
PWMモード2は周期を変更できないので使うなら気を付けましょう。
RX63Nグループ、RX631グループ ユーザーズマニュアル ハードウェア編
・位相係数モードについて
MTUやTPUの機能の一つなので"MTIOC1A"などと設定したくなりますが、ダメです。位相係数モードは外部のクロック、パルスを数えるための機能です。なので”外部入力端子”を使わないといけないのです。それがMTCLKCなどです。PWMが出せたからと満足してたら足元すくわれます。本当にビビる(経験者)
RX63Nグループ、RX631グループ ユーザーズマニュアル ハードウェア編
・5Vトレラント端子について
RX631には5Vトレラント端子が用意されています。入力電圧が5Vでも大丈夫な端子となります。RX631の電源は3.3Vなので5V入力をすると普通は壊れます。
エンコーダの出力は5Vのパルスとなります。なので5Vトレラント端子で受けるのが理想です。今回の構成では端子が足りなくて右エンコーダの出力のみ5Vトレラント端子で受けています。左側をどうしているかは後述します。
マニュアルの "21.IOポート"の一覧を見たら対応端子がわかります。
・RT-RX631ボード都合で使用不可なポート
リストにはない項目ですが、CPUボードの都合で使用できない端子が存在します。
RT-RX631 CPU ボード 簡易マニュアル P.4
"マイコンに詳しい方"ってのはこれを外すとどうなるのかわかる人って意味だと思ってます。わからん人は絶対触らない方がいいです。これはさすがに触らんかった。
電源部分
CPUやIC系に3.3V、エンコーダに5Vが必要なので2電源を作成します。私は3端子レギュレータ(リニアレギュレータ)を使用しています。
接続はデータシートの推奨回路図のまま使ってます。(C6はめんどくさくて1uFを実装していました。図と違いますね。ごめんなさい。)
難点としては、3端子レギュレータなので電圧を熱に変換してます。8.6Vから5Vへ落としてるのでかなり発熱します。触ったら火傷しそうなレベルです。この回路ではそうなるのは間違ってないので心配にはなりますが、正常です。(たぶん)
それと、別素子を使う場合はバッテリー→5Vで流せる電流が低いと、5V→3.3Vの素子がいくら電流が流せようと頭打ち喰らうor壊れるので気を付けましょう。
スイッチ部分に+BATTがあり、その先にVCCがありますね。このようにしましょう。エラーが出るからと+BATTでも繋ごうもんならスイッチの意味が成さなくなります。危険です。(経験者) 意図的にパターン図で接続しない、という対策をとれば免れますが、エレクトリカル ルールチェックには怒られます。そりゃそう。
VCCはスイッチを通ったあとのバッテリー電圧と捉えてください。
バッテリー電圧監視回路
バッテリーの電圧を分圧してA/D変換ポートに入れてるだけの回路ですが、LiPoバッテリーを使うならこれは確実に入れましょう。バッテリーの電圧管理ができてないと危険ですし、電圧が下がりすぎてバッテリーが使えなくなることもあるので入れて使用できるようにしておきましょう。
エンコーダー (モータのコネクタ)
上で少し言いましたが、ポートの関係上、5Ⅴトレラント対応の入力ポートが足りません。本当のところを言えば3.3V対応のところに5V入力を入れても大丈夫だとは思います。が、一応3.3Vの信号にするためにレベルシフトをしています。抵抗の分圧だと波形が鈍るといやなのでMOSFETで。秋月で売ってあるレベルシフタの回路図をパクったので間違ってないはず。
1717モータのコネクタですが、これまた特殊なので気を付けましょう。ピン番号と向きを間違えないようにデータシートとにらめっこしましょう。
たまに、エンコーダ付きの寸法がわからんっていう人がいますが、エンコーダのデータシートに寸法もコネクタ形状も書いてあるのでチェックしましょうね。
スピーカー(ブザー)
別に言うことはない。ここを見て真似たのみ。使用しているスピーカーはかなり小さいサイズだと思っています。
ジャイロボード
これもボードなので特に言うことはないMOSIにはSDIかな?SDOかな?ってのを回路図上間違えなければ大丈夫です。意味が分からん人は調べて。
モータードライバー
データシートの推奨接続通りの回路にしてます。が、C2,C3は電解コンデンサではなく普通のチップコンデンサ使っています。本当は10μFだったのですが、コンデンサのDCバイアス特性を見ると8.6Vかけると容量が半減していました。なので22μFを使用して半減して良い感じになるようにつけています。これだけ3225のコンデンサ使ってます。
壁センサ回路
この回路はS木先生がある大学の標準機として使っている回路です。元々はLEDが3つですが、4つに増やして使っています。I/Oピン一つでLEDを全部を付けることができるのでピンの節約になります。LEDの光量がばらつくことが懸念されますが、抵抗などを変更することで対応することも可能ではある...はずです。自信はない。
表示LED
回路にいうことは特にないです。D1は電源確認用、D2はバッテリーの電圧監視専用みたいな感じで分けてはいます。
抵抗の値などは一度計算してみてください。この値だったか覚えてない。
その際に気を付けることとして、RX631はI/Oピンから出せる電流が1.2mAまでです。しかも2.7V出力なので、光らない色のLEDも出てきます。できれば事前に確認するなどができればいいですね...
7セグLED
つけてみたかっただけ。以上。これ結構小さいサイズなので良いですよ。
つける必要はありません、が、視認性向上にはとてもいいです。
ピンが足りなくてドットは使えませんが...
こいつのフットプリントをミスって敗北してるので気を付けましょう。
スイッチ回路
特になにもない。同じ型番を使うと基板に穴をあける必要があるので、ちゃんとしたフットプリントを取ってきましょう。自分で作ったらミスると思う...
あとはスイッチなので、基板に配置するときに押すことを意識した配置にしましょう。
番外編:PCとの接続部分
PCとの接続ですが、RT-RX631ボードで完結しているので考える必要がありません。
ただ、USBでの接続になります。RX631にはUSBとの接続をする機能があり、それを使っています。大体のマウサーはUART通信をしているのでごっちゃにならないようにしましょう。またプログラム部分で後述します。
4. パターン図
全部
表配線と裏配線
正直、部品を置いた時点でカツカツだったのでどうにかしたって感じが強いです。ベタGNDはしてません。
一応注意したのは、3端子レギュレータの場所とかでしょうか。放熱対策で中には配置しませんでした。スイッチとかとも離すことでやけどしにくいようにという程度ですが。ジャイロセンサもできるだけ中央かつ車軸上に置くようにしています。
2輪なので基板のどこかが接地します。なので裏に部品は置かないようにしています。車軸あたりなら地面がつくことなどほぼないので、裏に回してもいいと思います。
引き方にコツなどがあれば私が教えてほしいくらいですが、聞いたことあるのは書いておこうと思います。
・モータ系のGNDと信号系のGNDは混ぜない方がよい
モータなどはノイズが乗りやすいため同じにしないことが大切です。センサ系のGNDにノイズが混じられると計測どころではなくなるので意識してみましょう。
一点接地といってノイズが発生しやすいGNDをそれ以外のGNDと繋がる部分を一点にします。ベタをするときも同じです。
明るく見えてるのがGND線、2枚目図の真ん中あたりのビアで集めてたつもり。
左側のコネクタのスルーホールでもきっぱり分かれてる(はず)
・表と裏で縦に引くか横に引くかを決めて配線する
一応、裏面を縦に、表面を横に引くように意識はしています。基板の下側はどうしようもなかったので無法地帯みたいになってますね。
意識して行うだけでも引きやすくはなるのでお勧めです。
・電源やGNDを外周引いてから配線を行うやり方
別にあんまり意識してやってはなかったですが、上側は外周に回してます。こうするほうが繋ぎやすくなる場合もあるみたいです。
明るい線は3.3V線です。
・電流が流れる配線はできるだけ太くする
1A流すなら1mmはいるとか言われますよね。詳しくは調べてください。
私は取れるだけ太くしたつもりです。
こんなもんでしょうか。レイアウトに関しては自分で調べてやってみてください。
オートルーティングも使うことができ、自動配線を行うことができます。ただ、この基板では複雑すぎて無理でした... 人間が手を加えたりしたらできないことはないのですが、それをやるよりかは自分で引きましたね。パズル解いてるみたいで楽しいですし。
外形や素子の位置決めはFusion360で設計してDXFデータを読み込んでます。円弧などがうまく読み込めない場合があるらしいですが、対処方はあったと思います。
文字をDXFデータにして持ってくればこんな感じで遊べます。確かKi-CAD上でイラストをシルクにすることとかもできた気がします。やりたかったら調べてみてください。
5. ハード関連
ハード面はギアなどを既製品とすることで信頼性を高めようとして作りました。
2輪にした理由としては、素直に(ほぼ理論通りに)動いてくれると思ったからです。4輪にするとタイヤの接地面積が多くなるので直進性能等がよくなりますが、超信地旋回時の挙動が安定しない(予想できない)ようです。無理やり回ってるらしいので仕方ないですね。
初めてのDCマウスでしたし、超信地旋回を使用しての探索走行も考えていたので基本に忠実に2輪です。設計も余裕があって少しは簡単になりますしね。
3Dデータ
CADはこんな感じに簡単にしか作ってないです。(作り方を知らない)
一応CADデータも置いておきますね。(使ってみたかっただけ)
モータマウンタとセンサホルダーは3Dプリンタで作っています。ABSで作ったのですが、穴が潰れたりしてしまったところもあったので追加工などをして使えるようにしています。なのでデータそのままで作ると工作精度により不都合が出ると思います。
自分で設計しましょうね。
モータマウンタの取り付けはナットを埋め込んでネジで締めます。
当初は基板に位置決め用の穴をあけ、刺すようにして接着しようとしていたのですが、「取りたくなることがあるよ」と助言をいただいたので取り付けできるようにしました。変更したことはありませんでしたが、メンテナンス時を考えると取れた方がいいのでオススメします。この形状なら簡単に作れますので。
センサーホルダーは四角形の柱を刺すことで向きを固定できるようにしています。
センサの向きについて
これは人によってかなり違うかと思います。が、あれは基本的に意図があってやっているものと思いましょう。
とことこねずみの構成はド定番の配置で、結局みなこれに収束すると言われています。
前を見ている2つのセンサは、斜め走行をする時に威力を発揮します。柱を避けるようにする制御を作る事ができます。また、前壁を見たときの傾き補正にも使えたりします。
前向きのセンサや横向きのセンサの角度は機体の大きさなどによって変化すると思います。横壁を見るセンサは前提として壁が見れないとダメです。ただ、壁切れ制御などにも使いたいです。「マウスがどの地点で壁を読み、壁切れ制御を使うならどの位置で壁が切れて欲しいか」という所が角度を決めるポイントになり、それがセンサの数や配置に発展していきます。
制御のことや斜め走行のことは遠くて考えられないといった人は、とりあえずこの配置にして、迷路の真ん中に置いた時に壁が見えるかどうかギリギリ位の角度がいいと思います。(責任はとりません) その域になった時にもう一度考えてみてください。
写真のようにセンサからビームみたいな感じにしてCAD上で確認したらよいですが、厳密に考えるなら光線は広がっていくので正しい絵ではありません。
足回りについて
足回りというか、ホイールとモータマウンタを繋ぐ所のことですが、構成はこのブログを参考。
ほぼパクリでやっています。既製品でできるのでとてもいいです。
使用した部品をリストにします。
パーツ名 | 商品名 | メーカー | 購入場所 | コメント |
ホイール | MZH131W-N25 | 京商 | スーパーラジコン | オフセット2.5mm |
タイヤ | MZW2-30 | 京商 | スーパーラジコン | 堅さ30° |
ベアリング | SBR-F630-4 内3mm*外6mm*厚さ2.5mm | SQUARE | スーパーラジコン | 4つ入 |
車軸 | R31M063RD ジュラルミンヘックスビス M3 18mm 赤 | SHIBATA | スーパーラジコン | |
スペーサー | スペーサ 3*4*2.5 50個入 | 大陽ステンレススプリング | モノタロウ | |
シム | タミヤ Φ3mm シムセット | タミヤ | Joshin | 0.1mmのみ使用 |
スパーギア | 平ギア モジュール0.5 40歯 Φ8 歯幅2mm | 協育歯車工業 | モノタロウ/デジット | |
ピニオンギア | 樹脂ピニオンギア モジュール0.5 8歯Φ1.5 | デジット | ||
ナット | SGE-03UR アイロンナット M3 赤 | SQUARE | スーパーラジコン | |
調整用スペーサー | R31M075RDB 厚さ1.5mmM3用スペーサー 赤 | SHIBATA | スーパーラジコン | |
ネジ | M1.6ネジ | 鍋屋バイテック(NBK) | モノタロウ | モータ固定用 |
足回りのほとんどを大阪の日本橋で購入したので入手性が不安でしたが、ほとんどネットでも買えそうですね。すごい。
スーパーラジコンは秋葉原にもあるのでそちらの店舗でもいいと思います。LiPoとかも売っています。
足回りのブログに書いてある、ベアリングの間の軸受けスペーサですが貼ってある2.5mmのものが良かったです。軸受けの大切さは誰かに任せます。
へんなスペーサがあったと思いますが、ここでつかっています。
ほぼ設計ミスみたいなものです。スペーサを入れて空間を空けないとタイヤとピニオンギア、モータシャフトが干渉します。なのでちゃんと設計したらいらないはずです。
ギアのモジュールは0.5です。歯数はピニオン8のスパーギア40でギヤ比1:5です。
本当は割り切れない値の方が良いらしいですが、40しかなかったのよ...
購入時は店舗にある歯数40ギアを買い占めてしまい、それから入荷もされていなかったので代替品を調べようとしたところ、同じ物がモノタロウで買えました!!しかも歯数も選べる!!!気付かなかった!!!ちなみに、歯数45にするとホイールよりも大きくなるので気をつけてください。(経験者)
モジュールは0.3を使っている方が多いですが、クラシックマウスでは0.5で十分だと思います。既製品の数もM0.3に比べて多いはずです。ミニ四駆のギアもM0.5だと聞いたことがあります。
スパーギアは始めPOMをCNCで削り出して作ろうとしましたが、失敗したのでやめました。こちらのブログを参考にしてました。
スパーギアの接着には以下の物を使いました。接着剤は3滴くらいしか付けてないのに一瞬でガチガチになったので本当に驚きました。
接着の件ですが、貸していただけたので、そのまま接着しました。
— N.Go. (@N_Go_mouse) 2022年5月13日
はめた瞬間固まったので驚愕しました…
剥がれるようであれば別のものを探してみようと思います。 pic.twitter.com/zLYkr2phpu
ピニオンギアについてですが、選んでいるのは樹脂ギアなので圧入で固定します。
金属のピニオンギアを考えている人に忠告です。圧入するのは危険です!!
同期が1717モータをおしゃかにしました。エンコーダ付きの1717モータは軸が出てないのでバイス使うと壊れます。樹脂ギアだと手の力で入るので耐えるみたいです。(よくはないです。) 意見を色々いただいたので詳しくはリプ欄をご覧ください。
同期のやらかしをひとつ。
— N.Go. (@N_Go_mouse) 2022年1月25日
1717モータにピニオンギア(真鍮)をバイスで圧入したところ、シャフトがズレたかして、回すと抵抗を感じます。電圧かけたら発熱しました。
もうひとつは完全に回らなかったです。
エンコーダー付きの1717モータに圧入したことがある方、モータを壊さない方法教えてください! pic.twitter.com/IyDw4aHNSo
kkpmoのシャフトよりも径の少し大きいピニオンギアき、糸圧入+ロックタイト243で固定してる。 https://t.co/4dmH2257if
— そら (@sora_siro1) 2022年1月26日
(モーター壊した当事者)
なげーよ!!ww
— タケぽんぬ (@mouse_ponnnu) 2023年12月18日
でも、参考にはなります。
初めて自作マウス作る方必見の内容です(特に自由工房の人はこれをパクりましょう)。
ちなみに僕も、モータ周りの回路はこの人の回路をパクリました。
後、モータを圧入する時は気をつけましょう。てか、圧入せず、ロックタイトなどで固定した方がいいです。 https://t.co/55djmPrBP8
バッテリー置き場について
この設計データではバッテリーの置く場所を考えてません。考えられなかったというのが正しいかもしれません。置くところが無かった。
作り終わりの際はちょうどモータのコードが余っていて良い感じに固定されるので1枚目の感じでしたが、しっかり固定出来ていないのと後ろ重心による直進安定性の影響が出たので2枚目になりました。CPUボードの上にマジックテープを貼って固定しただけの手抜きになってしまいました。
できるなら設計段階から考えておくべきです。2輪ですし重心がタイヤの接地点になるようにするのが理想です。ボードを使うとサイズ的に余裕がないので難しいとは思います。
6. 基板作成
私はとことこねずみでは2回基板を出しています。1回目はALLPCB、2回目はJLCPCBです。ALLPCBは送料込みで無料キャンペーンをしていた時に頼みました。色々ミスってたのでダメでしたが... JLCPCBはクーポンがあったので使ってみました。新規の方はこちらから登録することで貰えるらしいのでどうぞ。クーポンなくてもかなり安いので結構使っています。
1枚目がALLPCB、2枚目がJLCPCB。レジスト色とシルクの感じがちょっと違います。
私はJLCPCBの方が好み。
注文方法は簡単。基板設計を終えてガーバーファイル形式で出力、基板メーカのページにガーバーファイルをアップロード。必要箇所を埋めて輸送方法を決めて支払って終了。とても楽です。参考に私の注文の詳細を載せておきます。意味は私もよくわからんところがあるので各自調べてください。
そして、はんだ付けを楽にしようとステンシルも作りました。
ステンシルは先輩の発注に重ねたのでPCBGOGOで作りました。縁付きを選ぶとこんな形で来る様です。大きさは最小サイズだったと思います。作る場所により最小サイズの規定が違うと思うのでその点でも選ぶと良いと思います。ちなみにステンシルだけの発注はできないので基板作るタイミングでやりましょう。
正直そんなに安くないし、数作らないのでいらんと思います。ステンシルがいるほど難しいはんだ付けがそもそもないです。やろうと思ったらペーストはんだの手のせもできます(苦行)。
付ける際にホットプレートなども必要です。通常売られているものは温度調節されるので200℃付近まで上がりません。なので改造するなどが必要かも... 改造しなくてもできるものかもしれませんが、一度リフローで使ったホットプレートを食事で使ってはダメですよ... やめましょうね。小型リフロー機などもあると思うのでそちらがいいかと思います。
ステンシルについて有力情報
ステンシルはpcbgogoだとかなりでかいので、Elecrowかfusionpcbがおすすめです
— hmsn (@hmsn_sts_mat_si) 2023年12月18日
基板発注前は確認するのが大切です。意外とミスしてます。
今日は回路の確認してました!
— N.Go. (@N_Go_mouse) 2021年10月21日
やっぱりちゃんと線なぞりながら見るべきですね… 3、4箇所は修正しました。
これでもどこかミスをしているんだろうなぁ…
はやけりゃ明日にでも出したいけど…3日程おいたほうがいいと聞く。僕もそう思うが… 時間がなぁ… pic.twitter.com/GxAQ5CcAV4
リフロー工程のめちゃくちゃわかりやすい動画です。ステンシルの塗る所など参考にしてください。
プリント基板にクリームはんだをメタルマスクから塗り、チップマウンタで部品を実装してホットプレートでリフローする動画 0603mがきつかった。
— hidejr1053 (@hidejr1053) 2023年12月19日
How to use solder paste for building Micromouse PCB クリームはんだによるマイクロマウス基板組み立て https://t.co/rXiN5luTGp @YouTubeより
7. プログラム
なぜRT-RX631ボードを使ったかはプログラム面が大きいです。Pi:CoとHM-StarterKitのプログラムをそのまま使えるからです!!!HM-StarterKitはDCマウスなので、DCモータの制御関連や、ジャイロセンサの制御関連が書かれています!!強い!!!
これらが使えることが大きなメリットです。ちなみに、これらを使えないのであればRX631はやめときましょう。設定がめちゃくちゃ難しいです。1つレジスタを間違えてるだけで動かない等は良くあります。しかもエラー文は出ないし、なにが間違っているかわからない。完全な闇に放り出された気分になります。
ちなみに、サンプルプログラムがあるとは言え、変更点はあります。答えの1つを持っているにも関わらず同じ闇を見ることがあります。なんなら見ます。泣きそうになりますよ。(経験談)
私の動作確認が終わったプログラムを見れるようにするべきかとは思いますが、この場では考えてないです。一応RTさんのものですしね。ただ、どうしようもなく困って闇から抜けられません。と言う方は連絡ください。できる限りお助けします。
動かない原因はプログラムの問題だけでなく、回路であったりはんだ不良であったり色々あります。ボードを使うことでCPU周りの動作とはんだ不良の心配が無くなるのはかなり助かると思います。
RTのサンプルプログラムについて
Pi:CoとHM-StarterKitのプログラムですが、どちらか片方を使用するというよりもどちらもミックスしています。
似ている様で結構違うプログラムなので考えずに統合するとエラーがすごいことになります。
一応表にしてみます。
動作 | 使用プログラム |
通信関連、ファイル全体 | Pi:Co |
マイコンの設定 | 基本HM-StarterKit |
割り込み制御関連 | HM-StarterKit |
動作関数系(run.c等) | HM-StarterKit |
ほぼHM-StarterKitにはなります。言うなればRT-RX631のボードに関する部分とブザーで音色を奏でる以外はHM-StarterKitです。
上でも書きましたが、このボードはUSBを使って通信をします。HM-StarterKitも最終的にはUSBなのですが通信方法が違います。HM-StarterKitはUARTといわれるシリアル通信をしています。マイコンの機能としてはSCIを使っています。Pi:CoはUSB専用の通信方法を使っています。データの送り方が違うのです。詳しくはしらんが。
なのでそれさえ合わせればHM-StarterKitで構いません。(もしかしたらサンプルプログラムがRenesas公式から出ているかもしれません。)
モータの動かし方、制御の仕方はDCとステッピングモータでは全然違うのでステッパーからDCへ上がる人は頑張りましょう。
もし動けば、HM-StarterKitのブログなどが役に立つと思います。RTさんありがとう。
8. 回路の事前確認のすすめ
とことこねずみを作るにおいて2回基板を作っています。1回目と2回目の間にこの回路の確認、実験を挟みました。できればこれは始めにやるべきです。でなければピンアサインが確定できないです。
単純にブレッドボードを使って機能単位で動作するかの確認をします。CPUボードであれば可能なのです。
確認したのは、CPUとの会話、LED回路、ブザー、ジャイロセンサ、エンコーダ、モーターPWM、です。全部やん...
・LED回路
カメラを通すとこんな感じで赤外線でも光っているかの確認ができます。
ここで極性が逆だったことがわかりました。よくデータシートは確認しましょう。
昨日はLEDを4つに増やしてのテストをしてました!
— N.Go. (@N_Go_mouse) 2021年9月21日
ちゃんと動いてるしこれでええやろ!!!
回路完成です!!! pic.twitter.com/IaDpq8lIkN
・ジャイロセンサ
たぶんジャイロ取れました!!
— N.Go. (@N_Go_mouse) 2022年3月29日
Z軸のジャイロを表示させてるつもりです。
やっととれた…… 次はエンコーダです!! pic.twitter.com/MRYCswdEH9
・エンコーダとモータ
TB6612のボードなども秋月で売っているのでブレッドボードでモータの確認もできます。
はい、今日はこんな感じです。
— N.Go. (@N_Go_mouse) 2022年4月11日
エンコーダの値をいい感じに取れてるのではないでしょうか?
これまで出てた、値がマイナスに下がりまくる現象は、5Vと3.3VのGNDを合わせて無かったからでした。
しょうもないミスですね。しかも自分で気付けなかった… 外部の影響だと気付くまではできたけども… pic.twitter.com/vKPJBpfUHt
したいように回せたのでOKでしょう!
— N.Go. (@N_Go_mouse) 2022年5月1日
出力上げながら逆回し、を3回やったらとまります。
何回もやってると値が飛んでるいるのか、時間がかかったりするのでちょっと不安ではある。
モーターの回転早いなぁ…… pic.twitter.com/pW8JaFTOyP
このように確認することができるのでやるべきではありますが、写真を見てわかるようにいろんな機器が必要です。できれば学生のうちに、学校の備品を使って済ませておきましょう。この経験はかなり大切になります。
最低でも基板の状態でテストはしましょう。安定化電源があればできます。
まずは壁センサの確認。
— N.Go. (@N_Go_mouse) 2022年5月30日
無事にちゃんと取れました~
これぐらいなら壁の認識は困らなそう。 pic.twitter.com/CRPjcteqWG
いきなりバッテリーを繋ぐのはかなり危険なのでできればやめましょう。どうしても繋ぐ場合は電源とGNDがショートしてないかだけは確認してください。
9. その他
とことこねずみを作った際の日程感をお伝えします。(2022年9月以降は書けてませんが許してください。)
3年に渡って(回路図書き始めた所を入れたら4年)開発をしていたことになります。
完成して初めて大会で完走したのが2022年7月です。なんか3年もかかってますが、2021年の9月くらいから本気だしたので実質1年程度ではあります。なので絶望はしないでください。このブログ見てるしもっと速くできると思いますよ!
てくてくねずみ、HM-StarterKitも開発しているし、他も色々あってこんなになってます。その辺の話はまた別の機会に。
まとめ
さぁどうだったでしょうか。情報マシマシで胃もたれしてませんか?ここまでたどりつきましたか?
とことこねずみを作った際に得たノウハウのほとんどを記したつもりです。ここまで書くことについて賛否両論ありそうですが、1つくらいこんな記事があってもいいと思います。正直これを読んでも絶対に苦労する部分はあると思いますし、後に苦労することになるかもしれません。ですが、少しでも障壁を下げられたら、自作マウスに対して解像度を上げることができたら良いと思っています。
もし、STM32で考えてるんだよな~って人はこちらのブログでも見ましょう。
初心者向けに書いてるとのことですのできっと役に立つはずです。
今回は実例を使って設計のことなどを語りましたが、もう少し普遍的な内容としてはこちらのブログなどを読んでください。私もかなり助けられました。
プログラムの辺りについては正直、力尽きて内容が軽くなってしまったので追記するかもしれません。一番苦労する部分だと思うし... 期待はしないでほしいけど...
有料記事にしてもええんじゃないか??書いたことを褒めてくれ!!!
もし、役に立った知識があれば伝えてください。喜びますので。
とことこねずみと同じ形のマウスが増えても喜ぶよ。どれだけでもパクれ!!
さいごに
あぁ...疲れた... 内容が潰れたからってこんな話題を持ってくるんじゃなかった... 2部や3部に分けた方が良かったかなぁ... アドベントカレンダーの1日に入れる内容ではないよなぁ... 長くてすみません。お疲れ様でした。
これだけの物量を3日かけて書きましたが、最近設計したこともありあまり資料を見返すことなく書けました。品目リストとかは過去に作ってあったので楽でした。資料とか残しておくの大事ですねぇ...
去年のアドベントカレンダーでブログを開設し1年経ちました。記事の数はこの記事で7つ目です。2ヶ月に1更新は出来てたみたいですね。よかった。ほぼ大会のおかげですが... もうちょっと短くして数を増やそうかなぁ... ぜひこれからもよろしくお願いいたします。
次のアドベントカレンダーはコヒロさんの「Fノート 笑う門にも壁切れあり?」です! 壁切れについて詳しく書いてくれてるので私もしっかり読んで反映させていかないとですね... ブログ出すの遅れてごめんなさい!!! もう日が変わるし、SHIMOTORIさんもごめん!!
それでは、ちょっと早いですが、
みなさん今年もお疲れ様でした!良いお年を!!( ´・ω・` )ノシ (17,100 ↑)