かわロボ向け制御回路
かわロボはコントローラがフタバ製プロポに限定されています。
そのため制御回路を自作する場合、
必ず受信機信号を処理して、またモータドライバ向けの信号に変換する必要があります。
今回は
モータドライバのページで作成した、
かわロボ向けのモータドライバ向けの制御回路を組んでいきます。
回路図
早速回路図です。KiCADで作成しました。
やることは単純で、受信機の信号をマイコンを通してモータドライバの信号に変える。
つまり受信機用のコネクタとモータドライバ用のコネクタを用意して、
それぞれの信号線にマイコンの端子をつなぐという流れです。
ただモータドライバには、イネーブル信号(ショート信号)が必要となっているので、FETを使っておきます。
本来はゲートに抵抗を入れるのですが、まあ1回入れて終わりなのでそのままとします。
必要な信号線は、以下の通りです。
- 受信機信号からの入力
- イネーブル出力
- PWM出力
- DIR出力
あとはLED出力は必要です。
加えて、フィードバックのためにアナログ信号入力を追加して、合計6本になります。
つまり1CHあたり8pinのマイコンで対応可能ということになります。
ただしモータは4CH分あるので、上記の信号は4倍必要になります。
そこで4つマイコンを載せてしまうと上記の回路図になります。
マイコンには、PIC12F1822を選びました。小さいながら高性能なので気に入っています。
あとは電源です。
モータドライバ側にバッテリ電源を用意したので、レギュレータで5Vを作ります。
この電源はそのまま受信機にも供給できるようにしておきます。
合わせて電源LEDも追加しておきます。
PWM信号は電源を入れたときに不安定だと危ないので、プルダウンをしておきます。
抵抗値はLED用で10k、ブルダウン用で100kで大丈夫でしょう。
マイコンの書き込みには、書き込み用端子をコネクタに出しておく必要があります。
そこで該当の端子の入出力用の端子と共用することで、別のコネクタは不要とします。
PICは3端子+電源が必要になります。
MCLR端子はデジタル出力ピンとして使うと、次の書き込み時にMCRLがリセットできないという問題が起こるので、入力として使います。
これで回路図は完成です。
あとはアートワークを作っていきます。
この辺りはモータドライバの形にもよるので、割合します。
モータドライバの形に合わせると、こんな形になりました。
基板には2CHごとに切りかけを用意し、分割しても使用できるようにしたことと、
固定穴も必要であれば外せるようにしました。
基板作成
アートワークができたら外注します。
今回はfusion PCBを使ってみます。
一番安いコースだと10枚でおおよそ$7です。
依頼から2週間程度で到着しました。
部品実装
PICが外注だと在庫がなかったので、今回は手はんだ実装です。
リフローなんてありませんので、頑張ります。
チップ部品のサイズは、1608ミリ規格にしました。
インチ規格だと0603になるのですが、0603ミリ規格というのも存在するので部品選びが大変です。(1敗)
はんだこての先端形状も気にする必要がありますが、まあ何とかしました。
チップ部品>電源IC>一部コネクタの順で実装して、一度電源動作を確認しておき、
最後にPICと残りのコネクタを実装して完成です。
プログラム作成
この後プログラムを作成していきます。
PICのプログラムはMPLAB X IDEを使います。
MPLAB IDEの時代でプログラムを作っていたので、
かなり便利になっているようです。
PICの開発の流れとしては、
まずコンフィギュレーションビットの設定(ここを誤ると色々動かない)、
次に使う周辺回路の設定、
そしてメインプログラムの順です。
コンフィギュレーションビットでは、オシレータ、主要入力、リセット、プロテクトなどの設定があります。
特に主要入力を誤ると、入力信号が取れなかったりします。
今回のプログラムでは、受信機信号の時間計測とモータドライバへのPWM出力が必要になります。
時間計測には割り込みコントローラとTimerを使用し、
PWM出力にはCCPとTimerを使用することになります。
受信機信号は1520us基準ですので、1usカウントのタイマーを用意し、
入力の変化割り込みでカウントクリアとカウント値取得を行います。
続いてモータドライバへのPWM出力は、デューティ分解能最大10bit、PICの周波数32MHzのため、
そのまま32MHz/10bit=およそ32kHzとして使うと良さそうです。
続いてメインプログラムでは、
起動時にLED点滅で正常表示、
プロポ信号のエラー時の処理、
プロポ信号の処理とモータドライバ出力への反映を行っていきます。
書き込み
Microchipから販売されているPICの書き込みツールは、
簡易開発向けのPICKITと、総合開発向けのICEがあります。
どちらかというとPICKITは安いのですが、それでも純正のPICKIT5は2万ちかくするので、
ここではPICKIT3互換品を使用することにします。amazonでおよそ3000円です。
入出力端子に書き込み用端子をつなげているので、
ジャンパワイヤを用いてPICKIT3と基板をつなぎます。
MPLAB X IDEではプログラムのビルドからそのままプログラムの書き込みができます。
注意点としては、周辺回路の設定を変えたらもう一度Generateをすること、
メインプログラムも一度保存してからビルドを行うかクリーンしてからビルドすること。
間違えるとプログラムが更新されていません。
何回もデバッグしながら書き込んでようやくプログラムが完成。
受信機とモータドライバをつないで動作させることができました。
最終更新:2024年11月30日 22:03