サーボコントローラーを作ってみた。
適当設計なのですが、毎回サーボテストするのにブレッドボードでなんだかんだするのが面倒になってきたのでサーボテスト用の基板を1ボードに纏めてみました。ArduinoにスイッチとLED載せただけなんですが、なにげに結構便利です。ESCのテストもこれと電源で出来ちゃいます。
■回路図
カテゴリー : Ardunio
適当設計なのですが、毎回サーボテストするのにブレッドボードでなんだかんだするのが面倒になってきたのでサーボテスト用の基板を1ボードに纏めてみました。ArduinoにスイッチとLED載せただけなんですが、なにげに結構便利です。ESCのテストもこれと電源で出来ちゃいます。
■回路図
ぶっちゃけ、電源周りがちょっと安定してくれなくて回路見直し中の開発名称MKFC(新型FC)です。SEPICとかにしたのが間違いだったのか?計算を少し間違っていたみたいでやり直しながら基盤のパターンも見直し中、周波数をできれば下げたいんですよね。
■電源周りのテスト中
そして、うまく動かなかった原因がさっき分かってインダクタからの逆電流でダイオードが破壊されとる…。
年末に頼んでいた基板が出来てきましたので実装しながらテストしていました。電源周りが一新されているのでそちらの方だけ先に実装してテストとかしていましたがメインの機能は問題なしなのです。こう言うからには他に問題があったわけでして、On/Offコントローラーを何気なく前から使っていたMAX16054にしていたのですが、このチップの許容電圧5.5Vだった。今回は12Vぐらいまで電圧上げる予定があるのでこのままだと燃えますな。ということで、電源チップをMAX16045⇒TLC2955に変更しました。MAX16045+LDOでもいいんですけど部品点数増えるし実装場所の問題もあるので今回は却下。
これだけで終わればよかったのですが、更に続きます。新しく変更したRGB_LEDですが適当に持ってきたライブラリ使ったのが失敗だった、痛恨のピン配列間違い。ショートしても大丈夫なように外部電源で電流制限していてよかった、いきなりリミットに当たりました。結局ピン配列間違っているので正しい物に修正。
あと、電源のグランド周りの修正とかチップサイズ変更とかいろいろと回路図側修正した後にパターンを見たらせっかく収めた部品が色々と基板外に出ていてちょっと涙目状態。部品レイアウトを崩さないようにあーだこーだやりながらようやく収め直したのがこちらになります。
■MQCX_R3(Bata版)
前からやりたかったんですがなかなか時間が取れなくて放置していたのですけれど、気合を入れて設計してみました。シリアル経由でEdisonが接続できるMQCX用の増設ボード(それ以外も4chほど接続出来る)です。難しい処理はEdisonで、飛行制御系はARMで行うのが理想ですよね。カメラ積んで画像検出とか、超音波センサ積んだりとか、レンジファインダーは重量的に厳しいか…。いろいろと夢が広がりますな。あと、サーバ建ててブラウザアクセスしたら、ブラウザからコントロールとかも出来ますな。とりあえず、こんな感じになった。制約が大きすぎてこれ以上は積めないと思う。
調子に乗って単純に載せるボードと、モータードライバ込みで6発機になるボードの2種類を設計してみました。でも、よく考えるとモータードライバ載せた基板があるんだったらedison単体しか載らない基板にあまり意味は無い…。
やってみたら結構スイスイ引けた感じで形になりました。最初の配置まずくて最後が結構厳しかったのはいつもの事ですけれど…。結局配置を変えるハメになるんですよ。電源周りがかなり綺麗な配線になったのが結構嬉しい感じです。あと、スペースに余裕がありそうだったので1Cellバッテリなら充電できるようにチップを追加してみました。2Cell以上のバッテリーには対応していないので繋ぐ前に外さないと燃えますので注意です。標準状態では実装しなければいいだけではありますが…。
引き終わってからR2の配線と見比べるとViaの数が半分位になって内層配線がほとんどなくなりました。配線本数が殆ど変わらないことを考えると前は何だったんでしょう。
■こんな感じになりました(α版)
とりあえず、作ってみてから問題点を修正していきたいと思います。
これで、電源容量が最大2Aまで増えました、Edison載せて飛ばす準備が着々と進んでいる感じ?
R2の回路設計は去年の年末から今年の頭にかけて、基盤の設計は2-3月ぐらいで1ヶ月近くあーでもないこーでもないをした記憶があります。じつのところR2はLEDドライバのおかげでパターンに制約が結構あったりするんです。あと、電源側のチップの問題で1Cell以上のバッテリーが使えないとか、600mAhが出力上限とか。なんとかしたいなと思ってたんですが、LEDで使いたかったけどサイズが大きくて使えなかったWS2812が3535サイズを出してきたので上記修正も含めてやり直してみました。結構新しい回路にしたから動くか微妙…。
回路は出来たから、あとは基板でお絵かきと言うかをするだけ。簡単に言うとそれだけだけど…。また、時間がかかりそうですな。回路作るのとパターン引くのとではパターン引く方が圧倒的に時間かかりますよ。
■左側の部品が全部右側に入ったら完成
いやいや、随分とご無沙汰してしまいました。恒例のMFT後のやる気無し期間とかその他諸々ありまして全然更新できませんでしたというのが言い訳となります。スミマセン・・・。前回ブロック図まで書いた新しいFC(フライトコントローラー)ですが、なんだかんだと構成変更してようやく形になりつつあります。
電源周りの変更(ワイドバンド電圧対応)と昇降圧の両対応が一番の原因でした。あと、基板サイズと亀の子みたいに積める構成のまとめに時間がかかったのですよ。特にコネクタ位置、なんだかんだで一番の制約になりかねないのでいろいろと試してたら時間がかかりました。とりあえずですが、ようやくメインとなるべき基板の設計まで終了しました。
■基本コンポーネント
MPU : MK20DX256VLH7(72 MHz/FLASH:256 kB/RAM: 32 kB)x1
Gyro+Accel : MPU-6050(6-Axis Gyro+Accel)x2
Magnetometer : MAG3110(3-Axis, Digital Magnetometer)x1
Pressure : LPS25H(Pressure sensor)x1
※:Power系統はEdisonの電源容量に対応するため2A出力可能(入力電圧による制限あり)
■入力&出力(基本基板)
・8chのサーボ(ESC)用端子(5V)
・I2C端子(3.3V/5V)
・GPS用のシリアル(3.3V)
・JTAG/SWD端子(1.27mmピッチ)
※:メイン-サブ基板間の拡張コネクタはDF40(50Pin)を使用(スタック高3.5mm)
・増設コネクタ信号出力(24本)
(A13)-ADC0_DM3
(A12)-ADC0_DP3
(A11)-ADC0_DM0
(A10)-ADC0_DP0
(DAC/A14)-DAC0
JTAG-TCK (Test Clock)
JTAG-TDI (Test Data In)
JTAG-TDO (Test Data Out)
JTAG-TMS (Test Mode Select)
(D24)-JTAG_TRST_b
(D3)-TX/PWM/Timer1
(D4)-RX/PWM/Timer1
(A2/D16)
(A3/D17)
(D0)-RX1
(D1)-TX1
(D32)-PWM/Timer3
(D25)-PWM/Timer3
(A1/D15)-CS4
(D13)-SCK
(D11)-MISO
(D12)-MOSI
(A18/D29)-SCL1
(A19/D30)-SDA1
(D8)-TX3
(D7)-RX3
(A0/D14)
(D2)-CS
■対応電圧
・1.35V-36V(DC)
※:IntelEdison駆動には9V以上を推奨
■サイズ
・58.42mm(2.3inch)x39.37mm(1.55inch)
■増設基板はいくつかの種類を計画中
・Edison(GPIO/SD/LCD etc)対応
・LDC/SD対応
・FCU側出力拡張+ロジック変換
特徴は「広い電圧対応・ジャイロx2・拡張基板での拡張対応(IntelEdison他」になる感じです。他にも電源系を部品点数多くなるにもかかわらず多重化したりとかしてます。発注したので出来てきたら実装&テストして居尼での機体より少し大きめのサイズに搭載して飛行させる予定。そして、この基板にはintel Edisonがサブボード経由で搭載される予定なのでその辺りを作れば手乗りサイズでかなりパワーのあるコントローラーが爆誕するよてい…。
ようやく形になりつつあるので次のステップの内容を考えてみたりするのです。現状で基板側にすべての機能を内包しているため基板形状含めて特殊な形になってしまっています。このままだと汎用的には使いづらいので汎用で機に使える形のFCを考えてみます。入力系はBluetoothもいいのですが、一般的なプロポからの入力も出来るような形がよさそうです。同時にモータードライバ周りを削除してESC対応の出力を持ちたいです。構成としては「MPU+Sensor(10DOT)+Power」ですかね。ある程度は独自色出しますけど…。ふむ、必要な機能とか端子とかはどんなもんかな?と考えておおまかに概要を考えてみます。
■構成
MK20DX256VLH7(72 MHz/FLASH:256 kB/RAM: 32 kB)
MPU-6050(6-Axis Gyro+Accel)
MAG3110(3-Axis, Digital Magnetometer)
LPS25H(Pressure sensor)
LTC4412(PowerPath Controller)
LT1107(DC/DC Converter)
MAX16054(On/Off Controller)
MFTが終わって若干燃え尽き症候群的な感じであります。それでも、超音波センサ用のマウンタを試作したりだとか、GoProマウンタを再設計したりとかその辺りをゆっくりと進めている感じです。あと、再設計した基盤はあるんだけど組んでいないブラシレス機とかその辺があったりなかったり。FPVしようとして手に入れたedisonが机の上に転がっていたりだとか…。バリエーションもそこそこ出来てきているので少し纏めて見ようかと思います。
■バリエーション
クアッドが1種類、ヘキサが2種類、オクタが3種類で6つのパターンが出来ています。あとはY3/Y6とかが作れそう、変形版のY4とかもありかもしれません。MFTで使ったプロジェクションマッピング用の機体はヘキサが基本になっていてスクリーンを専用のマウント使って取り付けていました。
そこそこ安定して出力出来るようになったのでプリントしたデータをThingiverseにアップしてみました。現状での最終版ですがゴンドラ側を多色対応にしたいようなしたくないような…。試してみたい方はプリントしてパーツを集めたら同じものが作れるはず、たぶん…。
■現状の最終版