【Androidでドローン(マルチコプター)を飛ばそう】 ドローンを右方移動・左方移動させよう

このエントリーを Google ブックマーク に追加
Pocket
[`yahoo` not found]

1-旋回するためにMiniDroneを拡張しよう

今回は前回作ったクラスMiniDroneを拡張しドローンを右方移動・左方移動させます。
MiniDroneクラスに右方移動・左方移動の機能を実装します、ドローンの右方移動・左方移動には下記のメソッドを使用します。
ARFeatureMiniDrone setPilotingPCMDRoll(byte roll) ドローンの右方移動・左方移動させる。
  • byte roll:[-100,100]の間で値を設定する。
    正数で右方移動し、負数で左方移動する。
    右方移動・左方移動を止める場合は0を設定する。
このメソッドを用いて、ドローンの右方移動・左方移動を行うsetPilotingPCMDRollを実装します。
    public void setPitch(byte pitch) {
        if ((mDeviceController != null) && (mState.equals(ARCONTROLLER_DEVICE_STATE_ENUM.ARCONTROLLER_DEVICE_STATE_RUNNING))) {
            mDeviceController.getFeatureMiniDrone().setPilotingPCMDRoll(pitch);
        }
    }

2-右方移動・左方移動するためにMiniDroneActivityを拡張しよう

1-Viewを初期化する

Viewを初期化するinitializeViewを修正し、ドローンを右方移動・左方移動させるbuttonRollRightとbuttonRollLeftを実装します。
    private void initializeView() {
      //ログ用のTextViewをインスタンス化
      mMessageLabel = (TextView) findViewById(R.id.textMessage);
      //離着陸ボタンをインスタンス化
      mTakeOffOrLanButton = (Button) findViewById(R.id.buttonLandOrTakeOff);
      //離着陸ボタンのクリックリスナーを設定
      mTakeOffOrLanButton.setOnClickListener(takeOnOffOnClickListener);
      // 上昇ボタン
      findViewById(R.id.buttonGazUp).setOnTouchListener(gazUpOnTouchListener);
      // 下降ボタン
      findViewById(R.id.buttonGazDown).setOnTouchListener(gazDownOnTouchListener);
      // 右旋回ボタン
      findViewById(R.id.buttonYawRight).setOnTouchListener(yawRightListener);
      // 左旋回ボタン
      findViewById(R.id.buttonYawLeft).setOnTouchListener(yawLeftOnTouchListener);
      // 前方移動ボタン
      findViewById(R.id.buttonForward).setOnTouchListener(forwardOnTouchListener);
      // 後方移動ボタン
      findViewById(R.id.buttonBack).setOnTouchListener(backOnTouchListener);
      // 右方移動ボタン
      findViewById(R.id.buttonRollRight).setOnTouchListener(rollRightOnTouchListener);
      // 左方移動ボタン
      findViewById(R.id.buttonRollLeft).setOnTouchListener(rollLeftOnTouchListener);
    }

2-ドローンに右方移動命令を出すボタン(id:buttonRollRight)を実装

右方移動ボタンを触っている間はドローンを右方向移動させ、指を外すと停止します。
    /**
     * 右移動ボタンのリスナー
     */
    private View.OnTouchListener rollRightOnTouchListener = new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    v.setPressed(true);
                    mMiniDrone.setRoll((byte) 50);
                    mMiniDrone.setFlag((byte) 1);
                    break;
                case MotionEvent.ACTION_UP:
                    v.setPressed(false);
                    mMiniDrone.setRoll((byte) 0);
                    mMiniDrone.setFlag((byte) 0);
                    break;
                default:
                    break;
            }
            return true;
        }
    };

3-ドローンに左方移動命令を出すボタン(id:buttonRollLeft)を実装

左方移動ボタンを触っている間はドローンを左方向移動させ、指を外すと停止します。
    /**
     * 左移動ボタンのリスナー
     */
    private View.OnTouchListener rollLeftOnTouchListener = new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    v.setPressed(true);
                    mMiniDrone.setRoll((byte) -50);
                    mMiniDrone.setFlag((byte) 1);
                    break;
                case MotionEvent.ACTION_UP:
                    v.setPressed(false);
                    mMiniDrone.setRoll((byte) 0);
                    mMiniDrone.setFlag((byte) 0);
                    break;
                default:
                    break;
            }
            return true;
        }
    };

3-まとめ

今回はドローンを右方移動・左方移動を実装しました。

【国内正規品】Parrot Minidrones Airborne Night Blaze(レッド)ドローン規制対象外200g 未満・パリデザイン・LED 付き自動安定ホバーリングクアッドコプター ・30万画素カメラ・簡単にアクロバット・スマホ・タブレットで操作 PF723132

新品価格
¥17,150から
(2017/2/28 00:50時点)


Parrot Airborne Cargo MiniDrone - Mars (White) by Parrot

新品価格
¥22,692から
(2017/2/28 00:53時点)


Parrot MiniDrones Airborne Night Drone Maclane (Blue) [並行輸入品]

新品価格
¥12,000から
(2017/2/28 00:54時点)


【国内正規品】Parrot Bebop 2 ホワイト Full HD/30fps 魚眼レンズ カメラ・25分飛行時間・8GB 内部フラッシュメモリー・自動安定ホバーリング・最高水平速度:60KM/H・パリデザイン・GNSS (GPS GLONASS)付・クワッドコプター PF726073

新品価格
¥65,701から
(2017/2/28 00:57時点)