倒立振子ボード Pendolino-1 (その3)

Pendolino-1の基板設計ミスと応急処置について。

失敗1 ジャイロモジュールの寸法間違い

てっきりDIP8サイズだと思い込んでいたENC-03Rジャイロモジュールが、じつは1穴ぶん広い横幅だったため、基板に挿さらないという大失態。なぜちゃんと寸法を確認しなかったのか、自分が信じられません。
基板写真1


【応急処置】
さいわいにも、片側の列だけで必要なピンがすべてあったので、基板の裏面に下図のように取りつけました。
基板写真2


【次期ボードでの改良】
次期ボードでは、ENC-03Rにかわってより小型の3軸ジャイロの採用を検討します。3軸ジャイロを使いたいわけは、2軸だと基板のとりつけ方向に制約があるからです。具体的には、ENC-03Rジャイロモジュールでピッチ方向の角速度を検出するためには基板をシャーシの板に対して垂直に取りつける必要があったのです。3軸なら基板をシャーシに重ねる形でとりつけることができます。ちょっとコストアップしますが。

失敗2 シリアルポート

Pendolino-1では、GR-KURUMIのDTRピンをFT232RLのDTRピン直結しました。しかし、GR-KURUMIのDTRピンはRLマイコンの~RESETピンに結線されているのです。このため、プログラム書き込みには使えても、スケッチでシリアルポートが使えないというとても残念なことになってしまいました。


【応急処置】
DTRの接続をON/OFFするスイッチを設けました。プログラム書き込み時はONし、スケッチでシリアルポートを使用するときOFFするようにします。
基板写真3
また、パソコンのソフトの方でDTRをLowにしてやることでも対応可能です。たとえばTeraTermの場合、下記のようなマクロの実行によって実現できます。

setdtr 0

参考: FTDIでの接続方法について - GR-RL78G13プロデューサーの小部屋


【次期ボードでの改良】
そもそも、倒立振子は車体がフラフラするので、ケーブルをひきずってシリアル通信したくありません。シリアル通信はできれば無線化すべきです。

失敗3 電源ノイズ

モーターが回転すると、電源ノイズのためかジャイロモジュールのアナログ出力が暴れ、まともな姿勢制御ができなくなってしまいます。


【応急処置】
モーターの電源と、マイコンおよびジャイロモジュールの電源を別の電池にしました。このために、V_battをパターンカットして2系統に分離しました。
基板写真4


【次期ボードでの改良】
なるべく電池は共通にしたいです。今回はGR-KURUMIの昇圧コンバータで、しかも少し無理のある電圧でVccを作ったためにVccが不安定になったと思われます。次期ボードではLDOレギュレータを使用してノイズの少ないVccを作ることを検討します。また、ジャイロモジュールもノイズに影響されるアナログ出力ではなく、I2CかSPIのものを選ぼうと思います。

その他 モータドライバについて

今回はTA7291Pを使用しましたが、TA7291Pは本来はPWM制御ができません。今回はPWMをVrefに入力して制御しています。この方法は発熱が大きく効率が良くありません。また、TA7291PはV_IHが3.5V以上なので、3.3Vロジックでは使用できません。まあ、実際には動くかもしれませんが設計としてNGです。そのため今回は、GR-KURUMIを5V動作に設定して使用しています。次期ボードではPWM制御できて3.3Vロジックで使えるモータドライバを選定します。


ちなみに、今回は発熱が大きかったのでTA7291Pにヒートシンクを付けました。せんごくネット通販で売られているカモン HS-12216 放熱器がちょうど良いサイズでした。付属の熱伝導両面シールで取り付けました。