今回は前回作ったクラス
MiniDroneを拡張しドローンを左旋回・右旋回させます。
MiniDroneクラスに左旋回・右旋回の機能を実装します、ドローンの左旋回・右旋回には下記のメソッドを使用します。
ARFeatureMiniDrone
|
setPilotingPCMDYaw(byte yaw)
|
ドローンの機首方向を左右に変更する。
-
byte yaw:[-100,100]の間で値を設定する。
正数で右旋回し、負数で左旋回する。 右旋回・左旋回を止める場合は0を設定する。
|
このメソッドを用いて、ドローンの右旋回・左旋回を行うsetYawを実装します。
public void setYaw(byte yaw) {
if ((mDeviceController != null) && (mState.equals(ARCONTROLLER_DEVICE_STATE_ENUM.ARCONTROLLER_DEVICE_STATE_RUNNING))) {
mDeviceController.getFeatureMiniDrone().setPilotingPCMDYaw(yaw);
}
}
2-旋回するためにMiniDroneActivityを拡張しよう
1-Viewを初期化する
Viewを初期化するinitializeViewを修正し、ドローンを右旋回・左旋回させるbuttonYawRightとbuttonYawLeftを実装します。
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);
}
2-ドローンに右旋回命令を出すボタン(id:buttonYawRight)を実装
右旋回ボタンを触っている間はドローンの機首を右方向に変更し、指を外すと停止します。
/**
* 右旋回ボタンのリスナー
*/
private View.OnTouchListener yawRightListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
v.setPressed(true);
mMiniDrone.setYaw((byte) 50);
break;
case MotionEvent.ACTION_UP:
v.setPressed(false);
mMiniDrone.setYaw((byte) 0);
break;
default:
break;
}
return true;
}
};
3-ドローンに右旋回命令を出すボタン(id:buttonYawLeft)を実装
左旋回ボタンを触っている間はドローンの機首を左方向に変更し、指を外すと停止します。
/**
* 左旋回ボタンのリスナー
*/
private View.OnTouchListener yawLeftOnTouchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
v.setPressed(true);
mMiniDrone.setYaw((byte) -50);
break;
case MotionEvent.ACTION_UP:
v.setPressed(false);
mMiniDrone.setYaw((byte) 0);
break;
default:
break;
}
return true;
}
};
3-まとめ
今回はドローンを右旋回・左旋回を実装しました。