nanoWii機が遊べるレベルに達したので、以前ちらっと紹介したMINI MWC board with DMS2コントローラを使ってヘリを飛ばすプロジェクトをはじめます。
このコントローラはnanoWiiと以下の違いがあります
有利なところは安くて単体で送信機バインドもできるところと、ピンヘッダを外せば5gを切りmultiwii系の最軽量を狙えるところです。あ、一応バロメータとコンパスがついてるのも売りだと思います。
受信機とバインドの面では有利なんですが、PC接続がUARTなので、USB-UARTコンバータみたいなものが必要です。うちでは秋月のFT232ケーブルを使っています。
これに繋ぐために、1.25mmの4ピンコネクタを買ってきて、以下のような2.54mmピッチピンヘッダに変換するものを作ります。
こんな感じに使います。これをPCに繋ぐとPCから5Vも給電されて一時的に電源が入ります。
後で機体に前から押し込むために、固定用のネジ耳を1セットきり飛ばしました |
シリアルコネクタにリセットピンが出てないので、arduinoIDEから書き込みをするときは、手動でいいタイミングでリセットをかけてやらないといけません。
MINI MWCボードの電源ON/OFFでやってもいいんですが、リセットピンがCPUそばの三角マークのところに出ているので、これをGNDに繋いでおいて、絶妙なタイミングで離すことでスタートさせるのが一般的なやりかたです。
うちの場合機体に積んだ後はこのパッドがさわれなくなっちゃうので、線をハンダ付けして機体の外に引き出しました。
で、書き込み手順は以下の通りです
- arduinoIDEで、シリアルポート番号を選んでおく。ボードタイプはATmega328を使ってるduemilanoveを選びます
- MINI MWCボードの電源とシリアルを例の4ピンコネクタでPCにつなぎ、リセットピンをGNDに落としてCPUを止めておく。(サーボを繋ぐピンヘッダの、基板面から一番遠い上端の列が全てGNDです)
- arduinoIDEで書き込みボタンを押し、コンパイル後、シリアルポートの通信速度が表示された瞬間にリセットを離す
- その後[0]か何かが数回表示された後、ハンドシェイクが始まれば書き込みが行われます。
今回は130Xのフレームを使うことにして、スキッドとメインギアの間の純正基板スペースに前からなんとか押し込めました。黄色いテープは緩衝材です。適度にテープを貼って厚みを調整して、押し込むだけでぎちっと固定されるようにします。
ATmega32U4専用のオプション(A32U4_4_HW_PWM_SERVOS)とかは全てコメントアウトして、素直にソフトPWM出力のリフレッシュレート指定(#define SERVO_RFR_160HZとか)をコメントアウトして設定します。
ヘリで使う場合には1つ問題があり、ATmega328で4サーボ指定の時に通常使われる12番ピンがこのボードはありません。その代わり受信機がPPM接続でピンを消費しないので、通常は受信機からの入力に予約されてる5,6,A2なんかのピンが完全に空いていますし、ボード設計もそのつもりでフロントのピンヘッダに5,6,A2が出ています。
というわけで、def.hの以下のところを書き換えてA2ピンをnickサーボに割り当てます。
これで後はnanowiiと同様にヘリが飛ぶようになります。
ソフトPWMなので少し処理速度が心配でしたが、nanowiiがサイクルタイム2.8msのところ、MINI MWCは3.3ms、という程度の違いです。はっきり違いはありますがまあ問題ない速さは保っています。
(ちなみにうちで追加したピルエット補正を入れるとさらに+0.2ms遅くなります)
とりあえず130Xの廃品フレームにくっつけて、hobbykingの安物アナログサーボを両面テープで貼り付けたものでテストしてみます。
機体スペック
- コントローラ: MINI MWC board DSM2
- フレーム: blade 130X純正
- テールモーター: hobbyking 7700kV ($9)
- メインモーター: HP08S 8000kV
- ESC: Plush12AとOrigin 10A
- BEC: Plush12A内蔵の2Aレギュレータ
- サーボ: Hobbyking TS541A*3 ←お勧めしません。$6くらいの安物デジタルを買いましょう
- リポ: Deeforce 2S 350mAh
まだ全然安定しません。このサーボと両面テープじゃ永遠に安定しないかもしれませんが…
とりあえず部屋フライトとお外メイデンフライトです。
まだまだこれからですねー。
0 件のコメント:
コメントを投稿