はじめに
前回の記事で機体の変更点などを簡単に書きましたが、今回はその変更点についての詳細を書きます。
Pi:CoのDCモータ化について
突然、Pi:CoをDCモータ化していましたがその目的についてです。
ステッピングモータは指令値を与えればある程度その通りに動いてくれます。しかし、DCモータでは誤差が生じるため、その誤差を無くすための制御が必要となります。この、DCモータを動かす・制御する技術はロボット開発において基礎的な要素の一つなので、それらを学ぶことがDCモータ化する目的の一つとなります。
ここまでやるのであれば、自作マウスに取り掛かってもよいのではという話もありました。Pi:Coを改造する利点は、基板が分かれていることによりマイクロマウスの要素を分けて取り組めることです。
マイクロマウスは壁センサやモータなど複数の要素がまとまったものであり、これらを一度に学ぶことは難易度が高いため、今回のように基板を一つずつ置き換えていく形にすることで、段階を踏みながら学ぶことができます。また、電子回路開発の経験が少ない私としては、基板ごとに動作確認ができることが大きなメリットに感じました。
回路の変更点
DCモータに対応するためにメイン基板を新しく設計しました。なるべくPi:Coと同じ部品・配置としつつ、抵抗やコンデンサなどは表面実装部品に置き換えました。
電池
リポバッテリー3セルから2セルに変更しました。変更理由は後述するモータとモータドライバに対応させるためです。Pi:Coとの互換性を考えるのであれば、3セルのままで設計したほうがベストだったと思います。
Pi:Coの3セルのバッテリーの重さが87gで、今回変更したバッテリーが27gと思っていたより重さに差がありました。今回は電圧と電流だけ見て決めましたが、重さは走行性能に直結してくるので次回からは考慮したいなと思いました。
モータドライバ
モータはFAULHABER製DCモータを使うことをあらかじめ決めていたので、それに対応するDRV8835をモータドライバとして選びました。DIP品で扱いやすいというのも選定理由の一つです。
エンコーダの出力は5Vでマイコンの入力は3.3Vであるため分圧してあります。マイコン側がHigh信号として認識する最低電圧があるため、それを考慮して抵抗の値を決める必要があります。
ジャイロセンサ
せっかくメイン基板を再設計するのでジャイロセンサも載せました。ジャイロセンサはMPU-9250が社内でよく使われていましたが廃盤となっていたため、その後継機のICM-20948を選びました。IMC-20948は定格が1.8Vであったため、レベル変換モジュールのTXU0304と合わせて使っています。
今回はソフトウェアが間に合わなかったため動作確認ができていません。ジャイロセンサは知識だけある状態なので、今後実際に触ってみて取り扱い方を学びたいなと思っています。
マイコンのポート割り当て
ジャイロとモータのエンコーダが追加されたため、それに合わせてポートの割り当てを変更しました。マイコンはポートによって使える機能が異なります。汎用I/Oは多くのポートで使えますが、SPI通信は一部のポートでしか使えなかったりします。そのため、使えるポートが少ない機能から割り当てていくと手戻りの手間が減らせます。このあたりはマイコンによって異なるため、データシートとにらめっこする必要があります。
今回は、SPI通信 → エンコーダ → PWM → I/O の順でポートの割り当てを行いました。また、Pi:Coのサンプルソフトを流用する予定のため、なるべくPi:Coと同じポートとなるようにしました。
メカの変更点
タイヤとギヤ
タイヤとギヤは期日が迫っていたため社内に在庫があったものを使いました。よく使われているモータとタイヤ径、ギヤ比の組み合わせなのと、車重がそこまで重くないため、最低限は走るであろうという判断です。
モータの性能やギヤ比、タイヤ径、車重から出せる最高速度と加速度を求めることが出来ます。なので、目標の最高速度と加速度を決めてからモータの選定やタイヤとギヤ比の設計を行えば、思うように速度が出ないといった事態を防げます。
ピニオンギヤとスパーギヤとの軸間距離は、林さんの設計を参考にしています。ギヤにはモジュールや円ピッチなど様々なパラメータがあり、うまく噛み合わせるにはそれらから適切な軸間距離を求めてあげる必要があります。
シャーシ
今回使用するタイヤ径だとPi:Coのシャーシに取り付けるのが難しかったため、3Dプリントでモータマウント付きのシャーシを新たに作りました。モデリングして3Dプリントするのは今回が初めてだったため、思っていたより綺麗に作れるものだなと感じました。それと同時に、3Dプリンタで作成した際に発生する誤差を数値で知ることができたため、今後は考慮するようにしたいなと思いました。
おわりに
機体の設計は、重量やモータ性能、タイヤ径、ギヤ比などなど変数が非常に多いため、まずはどこかを一つ決めて機体の性能を算出し、それを見ながら各部分を調整するやりかたが良さそうだなと思いました。
センサ基板を改造したときはほぼ電子回路のみでしたが、今回は加えてメカとソフトウェアも設計・開発したため、技術要素の多さをひしひしと感じました。特に回路やメカの設計は実空間が相手なので、知識と同時に経験も多く必要だなと思いました。より良いロボットを作れるようになるためには、知識の習得と実際に手を動かすことをバランス良く行っていくことが大事というのが今回の学びです。
今回は回路とメカの話を書いたので、次回はソフトウェアについて書きます。