ピックワールド(PIC World)

インフォメーション

この記事は 2014年08月05日 に以下のカテゴリに投稿されました Arduino Blog, MultiWii, ドローン.

この記事のタグ

, , , , , , , , , , , ,


マルチコプター : アームできないとき

以下は、経験した範囲のことです。まだぶち当たっていない問題も多々あると思うのですが、参考のために掲載しておきます。

アーム出来ない場合の確認方法 (トラブルシューティング)

国内・国外でもうまくアームが出来ないなどの話をよく目にしますので、考えられる原因と対処の方法をまとめておきます。

前提条件は既に送信機の設定が正しく行われ ESC/モーター/受信機/電池が接続済みである事とします。以下、順番に確認してください。プロペラは付いていなくても良いです。(というかない方が安全です)

  1. MultiWiiGUI 又は MultiWiiConf で MultiWii と接続し、送信機のスティックを操作するとスティックの動きに応じ数値やバーグラフが変化しますか?
    動きが確認できない場合、残念ながらアームする以前の問題です。受信機<->MultiWii の接続が正しく行われている事を確認してください。MultiWii SE と MultiWii Pro では、Multiwii 側の接続ピンの番号が異なります。使用している MultiWii に合うように結線されていることを確認します。
    また、基本的なことですが、2.4Ghz 帯のプロポシステムを使用している際には、Bluetooth で PC と機器をつなぐように、送信機と受信機のペアリング作業を行わなくてはなりませんので、再度確認します。通常ペアリングされた送信機が見つからない場合、受信機の LED は点滅を、ペアリングされた送信機を見つけた際には LED は点灯状態となる事が多いようです。40Mhzや72Mhz のプロポシステムしか使ったことがないと、これは知らない部分ですね。順番にスイッチいれれば動きますから。サーボがあれば接続すれば、送信機からの電波を受信機が受信しているかを、サーボが動く事によって確認出来ます。
  2. ESC と MultiWii の接続は正しく行われていますか?
    受信機と MultiWii の接続と同じように、MultiWii SE / MultiWii Pro では、接続するピン番号が異なります。正しいピンに ESC が接続さていることを再再度確認してください。このとき、信号線、GND、VCCも正しく接続されていることを確認してください。また、ESCには BEC 出力がそれぞれ付いていると思いますが、これは4個のESCの内、1個のみを全線結線しておき、残りの電源はピンを抜き未接続とします。抜いたピンはそのままではなく、きちんと絶縁処理しショート等が発生しないように十分注意します。ピンを抜くには、小さな時計用のマイナスドライバなどを使い、コネクタ側面の爪を少し持ち上げると、抜くことが出来ます。
  3. 送信機の調整を確認する
    送信機のスティックを動かした時の可動範囲については前記しましたが、MultiWiiWinGUIで接続した際に Realtime Data 等で表示されるスティックを動かした際の数値は正しい物が設定されているか確認します。ニュートラルで1500μs 付近、最大で 2000μsを超えるように、最小で 1000μsを下回るように、送信機のトラベルアジャスト機能等を使って、AUXチャネルも含めた全てのチャネルに対し設定を行います。各種のプロポがあり、一概にいくつと言うことはいえませんが、大概の場合、初期状態(トラベルアジャストが100%の時)ではこの可動範囲の内側となりますので、これでは ARM することが出来ません。大体ではありますが -130%/+130% 弱程でこの範囲に収まると思いますが、トラベルアジャスト機能によって、打角を増すことによりこの範囲を出力出来るように送信機を設定します。もしもこの範囲に設定が出来ない場合は、多チャンネルプロポであれば AUX チャネルなどに ARM 機能を割り付けることも出来ます。その場合は MultiWiiWinGUI の RC Control Settingから行うことが出来ます。
  4. ESC のキャリブレーションを確認する
    今回の場合 MultiWii に用意されている ESC のキャリブレーション機能を使って説明を行いましたが、想像の範囲ではありますが、販売されている、全ての ESC に適合した物では無いように思っています。従って、思った通りの動作をしない場合は、手動によるESC のキャリブレーションを行ってください。受信機と ESC を一つずつ直接接続し行いますが、方法や設定方法は使用する ESC により異なりますので、ESC の取扱説明書を読み、一つずつ ESC のキャリブレーションを行います。
  5. 電源を入れた際に機体が動いていませんか?
    電源を入れると MultiWii は、まずはプログラムを起動し準備を整えようとします。接続の確認、各種センサーの初期化などを行います。そのときに機体が動いていると ARM は出来ません。目視できる確認方法は、MultiWii に搭載されている赤色の LED です。このLEDは、電源を入れると、数回点滅を繰り返し、機体を動かさずにしばらく待っていると、消灯します。この状態にならないと、ARM することは出来ないので、静止状態にして動作を確認してみてください。また、ずっと消灯状態とならない場合がありますが、これは機体が動いてしまったなどが原因でキャリブレーションできなかった場合です。そんなときには、MultiWiiWinGUI の Realtime Data 画面のタブの下にある Caliburate ボタンを押し、センサーの更正を行ってみてください。ARMが正常に行われた際には、赤色 LED は点灯状態となります。センサー類のキャリブレーションは、送信機のスティックにより行うことも出来ますが、これは正常に ARM 出来ることが確認できないと動きません。
  6. それでもダメ・・・
    前回記した eeprom clear を書き込んだ後、スケッチを再度転送するなど・・・どこかに原因があるのですが、原因がわかるまで粘りましょう。(頭きてつらいですけど)
    実は最初はプロペラを付けないで確認していたので、ひざの上に機体をのせてテストしていました。ダメなんですね。これでは動いちゃうので。5にひっかかってどうしても ARM 出来ずに悩みました。どうしてもスケッチとかちゃんとファームが転送されているかとかを見えないので疑いがちですが、案外問題は手元にあるのかもしれません。一緒に考えることは出来ますので、お返事は時間がかかるかもしれませんが、せっかく買ったんだから、ぶん投げる前にコメント欄から質問ください。

7 Comments

  1. tutumi
    2015/09/22

    はじめまして、現在MultiWii SE V2.5を使ってquad copterを作成しております。
    数日前からMultiWiiとパソコンをつなぐと以下のエラーが返ってきます。

    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xa4
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xa4
    マイコンボードに書き込もうとしましたが、エラーが発生しました。
    このページを参考にしてください。
    http://www.arduino.cc/en/Guide/Troubleshooting#upload

     以前は問題なく書き込めていましたが現在はスケッチを何一つ受け付けてくれません。しかし、リモコンとの通信は出来ており、バッテリーをつなぐとプロペラを回すことができます。ネットで調べたのですが未だ解決できないでおります。
     アドバイスを頂けたら幸いです。

    • minorus
      2015/09/22

      tutumi-san こんにちは。コメントを頂きましてありがとうございます。
      なるほど。スケッチをコンパイルして書き込むことができていない模様ですね。
      おそらくは、今まで書き込みされていたプログラムのままで、動作している状態だとおもいます。
      基本的な事柄から一つ一つ確認していくことが必要ですが、まずは Arduino IDE のツール -> マイコンボードで、CPU の種別が正しく指定されているか確認します。
      MutiWii SE V2.5 とのことですので、Mega328P と記載されているものの中から選択します。
      次に、転送に使っているケーブルですが、以前に使っていたものと同じでしょうか?
      一応断線等がないかを確認したほうが良いでしょう。
      また、ツール -> シリアルポートで、使用する PC のシリアルポートが正しい物を指定しているか確認します。
      基本的なこと確認事項はこれぐらいと思いますが、これで良くならない場合には、PC にインストールされているドライバの問題か、MultiWii のブートローダー自体に問題が生じているのかもしれません。
      参考になるかどうかはわかりませんが、試してみていただけますか?
      今後ともどうぞよろしくお願いいたします。

      • tutumi
        2015/09/22

        早速のご返信ありがとうございます。こんなにも早く返信頂けるとは思っておらずとても嬉しく思っております。

        ご指摘通り、 Arduino IDE の設定、ケーブル、ドライバーの確認を再度致しました。
        Arduino IDE の設定は、CPUの方が Arduino Nano ->ATmega328 にしておりシリアルポートもデバイスマネージャーに出ているポートと一致しておりました。
        ケーブルの方は以前使っていたものと同じですが断線しいるかもしれないので、別にあるもう一方を試しましたが結果は出ませんでした。
        ドライバーの方は最新のもので正常に動作しているとのことでした。

        ここで質問なのですがブートローダーの確認は ツール->ブートローダーを書き込む で合っているでしょうか?
        まだまだ未熟ものですが、どうぞよろしくお願いいします

        • minorus
          2015/09/22

          いえいえ。大丈夫です。

          そうですか。基本的な部分なので、大丈夫だろうとは思っていましたが、残念です。

          IDE のブートローダーを書き込むのメニューは、ブートローダーが書き込まれていない他の Arduino のチップにブートローダーを書き込む機能ですので、ご希望のものとは違います。ブートローダーが書き込まれていない Android チップに、少し回路を加えこのメニューを実行すると、ブートローダを書き込むことができます。

          さて、そうすると、IDE やドライバのバージョン等の整合性の問題ということも過去に事例があるようですが、いかがでしょうか?
          どの組み合わせが動くという確証は、私も掴んでいませんが、ドライバは最新とのことで、大丈夫とすると、消去法で考えると IDE としか考えられなくなってきます。
          過去には問題なく転送出来ていたのでしょうから、問題ないというのは少し違って、もしも Windows であるとすると、何らかの拍子に影響する変更が加えられた(Windows Update の適用時などに)状況が変わっていることもありそうな気もします。

          FTDI をおつかいと思いますが、最新のドライバは http://www.ftdichip.com/Drivers/VCP.htm にありますね。今気が付きましたが Windows10 にも対応しています。

          元となっている Arduino UNO などでは、リセットを行うことで、解決したとの記述も見られますが、MultiWii SE だとこの機能は使えない模様なので、さてどうしましょうかと思いながら、私のマシンの Arduino IDE を最新版とした所、ツール -> ボードが少し変わって、インストール時に、Arduino 用の専用ドライバがインストールされるようになったようですね。
          既存の環境を残したままインストールも出来るようです。

          もしも GPS や、Bluetooth のモジュールなどを使われている場合には、これらを外してためしてみるのも良いように思います。

          特殊なケースに見受けられますが、データが流れている状態だと、似たようなエラーが生じるという英文の記述を見ました。

          ズバリお答えが出せなくて、心苦しいのですが、一つ一つを確認し切り分けて進んで行かないと解決できそうにないですねぇ。

          • tutumi
            2015/09/23

            そうですか。無知なところをお見せしてしまいお恥ずかし限りです。

            そうなんです。同様のエラー文を見つけれられるのですが大抵UNOの方で大変困っておりました。付け足すようで申し訳ないのですがGPS や、Bluetooth のモジュールは外しております。

            実のところ昨日三個目の基板を接続したところ問題なく動作しました。
            ところで、この三個目の基板の表面には金字でCRIUSとプリントされており、裏面に白ですが同様にプリントされておりました。
            今年は二個基板を頼んでもらったのですが問題が起こっているのは以下のものと思います。
            http://www.amazon.co.jp/Tinksky-MultiWii-Multicopter-Quadcopter-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0/dp/B00WWHZQYY/ref=pd_cp_21_1?ie=UTF8&refRID=0F70E407CXZSNQ3ED09C

            あまり高いものを頼めなかったのですが(それでも千円程度ですが)安いと壊れやすかったりするのでしょうか?

            実は高専の文化祭でこれを飛ばそうと思っております。去年の先輩方は失敗したようですが今年は成功させたいと思っております。まだまだ未熟故昨日のような羞恥をさらしてしまうかもしれませんが、今後ともよろしくお願いいたします。

          • minorus
            2015/09/23

            そうですか。他のボードで問題なく使用できるのなら、ボード固有の問題であることは明白ですね。
            高専の文化祭でとのことで、了解です。殆どのことを理解されているスキルをお持ちであることがわかりますので、助かります。
            チップや部品などはどこの製品でも同じものですので変わりませんが、基盤のバターンを見ていると、違いがある場合はありますね。
            ただ、それが安いから壊れるとか、そういったことではないと思いますよ。
            さて、どうするかですね。
            一度試して欲しいのは MultiWii SE では省略されていることが多い、リセットを行うことなのですが、Mega328P の形状にも、幾つかの種類があるので、データシートをよく確認してそのピンを探し出す必要があります。
            PC6 というピンがリセットに割り当てられていますが、これを一時的に GND に落としてやればボード自体のリセットを行うことができそうです。
            恐れ入りますが、ご自身でよく確認したうえで、実行してください。その結果についても保証はできないので、ご理解ください。
            私の手持ちのボードでは、見つけることは直ぐにできましたが、かなり細かな作業となりますので、慎重に行う必要がありそうです。
            学生さんなのか、ご指導をされている方のかはわかりませんが、余計なことなんか気にする必要なんかありません。
            どんどん進めて自分のものにしてください。
            何かあれば、どんどん聞いてくださいね。(時間のあるときしかお返事できないですけど)

            文化祭にという時間的制限から思うことですが、予備のボードがあるのであれば、とりあえず浮かせてみて、その機体用のパラメータを詰めていったほうが良いかもしれない・・

  2. tutumi
    2015/09/25

    アドバイスありがとうございます。返信が遅くなってしまいすみません。

    基板にはmega328p-AUが搭載されておりました。データシートで確認のうえ、リセットを何度か行ってみましたがエラーは解決されませんでした。さらに、バッテリーをつなぎarmするとモータが動いてしまいます。
    リセットに失敗したのかcpuが壊れてしまっているのか、モータが動いているのを見ますと前者かなと思いますがデータシートとcpu見比べても合致しており、リセットピンは間違えていないと思います。
    ここでさらにエラーを究明してますと仰るとおり間に合わない可能性があります。

    ですので、今後は新し基板で製作を進めていこうと思います。しかし、エラーが出た原因がまだわかっていません。周りの先生方も担当の先生もあまり変わらないだろうと仰いますが、自分はこの表面が削られているアダプターがどうも信用できないので違うものに変えたいと意見したところゴーサインが出ました。 エラーの究明は文化祭のあとすることになりました。

    これからどんどんやっていこうと思います。色々と教えて下さってありがとうございました。

コメントを残す

最近の投稿

最近のコメント

アーカイブ