android之蓝牙控制小四轴飞行器

本文介绍了一个app的改编应用,该app能够通过蓝牙控制小四轴飞行器或者蓝牙智能小车。用户需确保小四轴配备串口蓝牙模块,并可能需要修改飞控的通信协议。在使用过程中,安全注意事项尤为重要。app界面包含蓝牙连接、飞行器状态显示以及控制操作,提供实时飞行数据和控制功能。
摘要由CSDN通过智能技术生成

         本app基于匿名开源小四轴app( http://www.anotc.com/Product/Overview/8 )改编。匿名小四轴接上串口蓝牙模块后,可直接使用本app控制。其它飞控修改通信协议后方可使用。本app改编后可用于控制蓝牙智能小车,感兴趣的小伙伴可以试试看。使用飞行器测试时,请千万注意安全。


        蓝牙连接界面,需打开手机蓝牙才可进行下一步操作。上面文本框显示当前蓝牙连接状况;中间大图是我们的logo;左下蓝牙图标,单击可选择要连接的串口蓝牙设备;右下六边形图标,单击可跳转至下图飞行器控制界面。

        中上三个全表盘飞机图标,动画实时显示飞行器当前横滚角、航向角和俯仰角;中间半表盘指针图标,显示飞行器当前油门值;中下图标,单击可解锁飞控,再次单击可锁定飞控,如此反复;两侧文本框,实时显示飞控的加速度计和陀螺仪数值;左侧箭头图标,上下为油门加、减,左右控制横滚角;右侧箭头图标,上下控制俯仰角,左右控制航向角。

控制部分源码:

package com.example.seuxiaosi;
 
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.graphics.Paint;
importandroid.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.util.DisplayMetrics;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import android.annotation.SuppressLint;
 
 
 
public class MyControl extends Activity {
      
      
       //用于图像旋转的变量
       privateImageView mImageView_yaw;
       privateImageView mImageView_rol;
       privateImageView mImageView_pit;
       privateImageView mImageView_thr;
 
       privateMatrix mMatrix = new Matrix();
       privatefloat mAngle_thr = 0;
       BitmapmBitmap;
       Paintpaint = new Paint();
      
       privateint thrTF = 0;//
      
       //自定义按键监听事件类
       mImageListentermImageButtonListener = new mImageListenter();
      
       //设置油门, yaw,pit,rol的初始值
       privateint VAL_THR = 1000;
       privateint VAL_YAW = 1500, VAL_ROL = 1500, VAL_PIT = 1500;
      
       //数据显示
       TextView       acc_x_show , acc_y_show , acc_z_show ,
                            gyr_x_show , gyr_y_show , gyr_z_show ;
 
      
       //图片按钮变量
       privateImageButton image;
      
       //飞控解锁  LOCK=0——锁定,LOCK=1——解锁
       privateint LOCK = 0;
      
       //时间管理器
       Timersend_timer = new Timer();
      
       privatefinal Handler myHandler = new Handler();
       //handler可以分发Message对象和Runnable对象到主线程中
       //handler中的执行时间过长会出错!!!!!!!!!!
      
       privatefinal Runnable myRunable = new Runnable() {
             
              @Override
              publicvoid run() {
                     //TODO Auto-generated method stub
                      //0.1秒后调用此Runnable对象,用于控制数据的更新
                     myHandler.postDelayed(this,100);
                    
                    
                     //控制界面数据的更新              
                     acc_x_show.setText("X:" + MainActivity.VAL_ACC_X);                  
                     acc_y_show.setText("Y:" + MainActivity.VAL_ACC_Y);
                     acc_z_show.setText("Z:" + MainActiv
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值