【Androidでドローン(マルチコプター)を飛ばそう】 ドローンを操作する画面を作ろう

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

 

1-MiniDroneActivityを拡張しよう

前回作ったクラスMiniDroneActivityを拡張しドローンを操作できるコントローラー画面を作ります。

機能名 説明 View ID
離陸/着陸 着陸状態で離陸ボタンを押すことで離陸します、 離陸すると離陸ボタンは着陸ボタンに変化します。 離陸状態で着陸ボタンを押すことで着陸します。 buttonLandOrTakeOff
上昇 離陸状態で押している間は上昇する、離すと上昇は停止します。 buttonGazUp
下降 離陸状態で押している間は下降する、離すと下降は停止します。 buttonGazDown
左旋回 離陸状態で押している間は左回転する、離すと左回転は停止します。 buttonYawLeft
右旋回 離陸状態で押している間は右回転する、離すと右回転は停止します。 buttonYawRight
前進 離陸状態で押している間は前進する、離すと前進は停止します。 buttonForward
後退 離陸状態で押している間は後退する、離すと後退は停止します。 buttonBack
左移動 離陸状態で押している間は左移動する、離すと左移動は停止します。 buttonRollLeft
右移動 離陸状態で押している間は右移動する、離すと右移動は停止します。 buttonRollRight
メッセージ テキストメッセージを表示する。 textMessage

2-レイアウトファイル

上記の機能を持つボタンを配置したレイアウトファイルを作成します。次回以降は下記の機能を順次実装していきます。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/piloting_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MiniDroneActivity">

    <Button
        android:id="@+id/buttonForward"
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:layout_above="@+id/buttonRollLeft"
        android:layout_toRightOf="@+id/buttonRollLeft"
        android:text="前進" />

    <Button
        android:id="@+id/buttonRollLeft"
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:layout_above="@+id/buttonBack"
        android:layout_toLeftOf="@+id/buttonBack"
        android:text="左移動" />

    <Button
        android:id="@+id/buttonBack"
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:layout_above="@+id/buttonLandOrTakeOff"
        android:layout_toLeftOf="@+id/buttonRollRight"
        android:text="後退" />

    <Button
        android:id="@+id/buttonRollRight"
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:layout_toLeftOf="@+id/buttonLandOrTakeOff"
        android:layout_above="@+id/buttonBack"
        android:width="20dp"
        android:text="右移動" />

    <Button
        android:id="@+id/buttonLandOrTakeOff"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/scrollViewMessage"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="10dp"
        android:text="離陸"
        android:width="100dp" />

    <ScrollView
        android:id="@+id/scrollViewMessage"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true">

        <TextView
            android:id="@+id/textMessage"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#ff0000" />
    </ScrollView>

    <TextView
        android:id="@+id/labelMessage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="メッセージ: "
        android:layout_above="@id/scrollViewMessage"
        android:textColor="#ff0000" />

    <Button
        android:id="@+id/buttonYawRight"
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:text="右回転"
        android:layout_alignTop="@+id/buttonYawLeft"
        android:layout_toRightOf="@+id/buttonGazDown" />

    <Button
        android:id="@+id/buttonGazUp"
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:width="110dp"
        android:text="上昇"
        android:layout_toRightOf="@+id/buttonYawLeft" />

    <Button
        android:id="@+id/buttonGazDown"
        android:layout_height="75dp"
        android:width="110dp"
        android:text="下降"
        android:layout_alignTop="@+id/buttonBack"
        android:layout_toRightOf="@+id/buttonYawLeft"
        android:layout_width="75dp" />

    <Button
        android:id="@+id/buttonYawLeft"
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:text="左回転"
        android:layout_toRightOf="@+id/buttonLandOrTakeOff"
        android:layout_alignTop="@+id/buttonRollLeft" />
</RelativeLayout>

【国内正規品】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時点)


 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)