前の記事はこちら:第二話 これが最強のサッカーロボット?!君の名はマラドーナくんだ!!
はじめに~はじめてのおつかい秋葉原編~
前回までで順調にコンセプトから仕様決めまで決まりましたので早速ハード設計を行っていきたいと思います。
ちなみに各部品は電気街で有名な秋葉原に購入しに行きました!初めて電子部品が売っている専門店に訪れるとのことでワクワクドキドキしていきましたが、お店について電子部品の多さに驚愕しました。
慣れていないこともあり、部品を全部揃えるのに5時間以上もかかってしまいました(トホホ、、)
さて、せっかくであればどのようにハード設計したのかを全部書きたいところですが、とてもじゃないけど1ページに収まるような尺ではなくなってしまうので今回はハード設計でも特に苦労した(色んな意味で)場面を切り取ってお伝えします!
電源供給部の実装~火事ニモマケズ~
まずはとある大事件を引き起こしてしまうロボットの心臓部となる電源供給部の実装についてです。

電源供給部には主に逆接続保護の回路とLDOを組み込んでいます。これで誤ってバッテリーを逆に繋いでしまっても安心ですね!(絶対ダメ!!)
ブレッドボードを使い、逆接続を想定した逆方向の電流を流す評価を行いましたが、問題ありませんでした。
次に電源から各制御ICへの電源供給のために3.3Vに降圧するLDOをブレッドボードにて疑似回路を作成し評価を行いましたがこちらも問題なく動作しました。
評価も順調に進んだので次はついに基板実装に入りたいと思います!

ここまで順調に進んでいたクロちゃんはきっとどこかに油断が生じていたのでしょう、ついに事件を起こしてしまいます。
基板実装も順調に進み、あとは基板評価を行う段階まで来ていました。安定化電源に繋いで、LDOからの出力でちゃんと3.3Vが印加されているかオシロスコープを使って評価をしているとき、なにか焦げ臭い匂いがするな、と思った次の瞬間、基板に繋いでいたリード線がメラメラと燃え出しました!
あまりの衝撃に呆然と立ち尽くしていることしか出来ず、何が起こっているのか理解し、状況を把握できたのはリード線が燃えカスとなったあとの事でした。

このリード線が燃えた理由としては、基板実装をしていた際に誤った回路構成で半田付けをしてしまい電源とGNDがショートしてしまったことでした。
この火事を経て、ちゃんとテスターを使った導通確認をするようになりました(遅い!)
そうして紆余曲折ありましたが、なんとか源供給部の基板実装が終了しました!
次は実装面でとても苦労した駆動部の評価及び、実装に移っていきます。
駆動部の実装~ハード過ぎるハード設計~

さて、駆動部についてですが今回はH BridgeでDCモーターを駆動させます。
そのためにゲートドライバーとMOSが2つ統合されたInfineonのICを使用しモーターを制御していきます。
しかし、このICを実装する上で大きな問題が一つありました。
VS端子どこにあんねん!!
このICはパッケージ下部の放熱パットがVSとなっております。

私が買ったプリント基板は放熱パッド部分がピンに繋がっていないため、どうにかしてVS部分を加工し、NCのピンからVSまでつなげる経路を加工する必要があります。
そのためにVSのパットに銅板を取り付け、本来であればNCである11ピンにVS端子までの出力を繋げます。
さらに、プリント基板のホールの部分が誤ってVSのパットと導通することを防ぐために絶縁のためにビニールテープを取り付けるなど、とても手間のかかる作業をおこなう必要がありました。

この作業がとても困難を極めました。。写真のようにICの足の部分が浮いてしまってプリント基板のパットまでの距離ができてしまい、普通に半田をしようとしても上手く付いてくれないし、そんな大量に半田をつけると隣の足とくっついてしまいます。
迷いに迷った挙げ句、最終手段としてICの足を少し折ってあげることでなんとかパットと足を繋げることに成功しました!

今回のロボットのハード実装で一番苦労したこのモータードライバーでしたがまだ課題は残されていました。
それはPCB基板に取り付けたあと、モーターを使っての評価についてでした。
2つのICを使ってHブリッジ構成にしてモーターの順転と逆転の制御をおこなう必要があります。今回の評価では実際にモーターの順転と逆転がうまくいくかの評価を行います。
まずは何も安定化電源を使った単純な順転と逆転の制御ですが、こちらは問題なく動作させることができました。
しかし、次に簡易的なプログラミングを用いた順転と逆転の制御を行う制御を行うときにまた問題が起こりました。
それは順転から逆転の切り替えと逆転から順転の切り替えが上手く行かず、何度検証しても何故か順転と逆転の切り替えのタイミングでモーターが止まってしまいました。
様々な検証を行いましたが、なかなか原因の究明には至らず頭を抱えていましたが、基本に立ち返り何か見逃していることがないかデータシートを見返したところ、遂に原因と思われる記載の一文を見つけることができました!
「デバイスへの負担を避けるため、負荷電流が0になるまでフリーホイールをすることを推奨します。」
ふむふむ、なるほど。
一般的にモーターの順転と逆転の制御をおこなう際は逆起電力を制御するためにフリーホイールダイオードを使用するケースが多いそうです。
今回はフリーホイールダイオードを使う代わりにLow SideのMOSFETを両方onにする時間を設けるプログラミングを実装することで負荷から流れる電流をGNDに流すことにしました。

そうしてフリーホイールを設けたプログラミングで改めてモーターを制御することができたため、遂にハード設計としては一段落を終えることができました。
次回は遂にソフト設計に取り掛かっていきたいと思いますので乞うご期待!
【新人エンジニアのサッカーロボット製作日記】
第一話『マクニカ杯開催?!』
第二話 『これが最強のサッカーロボット?!君の名はマラドーナくんだ!!』
第三話 『何度でも生き返れ!不死鳥マラドーナくん!!』
第五話 『運命のKICK OFF!! その栄冠を掴むのは...』