博舍

安卓手机蓝牙控制智能小车 android程序设计 安卓手机智能机器人怎么使用教程视频

安卓手机蓝牙控制智能小车 android程序设计

项目名称:安卓手机控制智能小车本文主要介绍手机端程序设计源码托管在地址:github.com/cyang812/Bluetooth_Car

开发平台:win10;开发软件:AndroidStudio2.1

在开发的过程中,软件版本有过几次更新,本文重点讲述更新逻辑及实现过程。一、Bluetooth_Demo(通过按钮控制)

1、这是最早开发的版本,通过连接蓝牙后,可实现通过按钮(Button)控制小车运动。2、主要代码:Version1.0监听按钮的点击事件

……publicvoidonClick(Viewv){switch(v.getId()){caseR.id.imagebutton1:message[0]=(byte)0x41;//设置要发送的数值vibrator();//振动器Toast.makeText(this,"前进",Toast.LENGTH_SHORT).show();bluesend(message);//发送数值Log.d("cy08",""+message[0]);break;caseR.id.imagebutton2:message[0]=(byte)0x44;vibrator();Toast.makeText(this,"左转",Toast.LENGTH_SHORT).show();bluesend(message);Log.d("cy08",""+message[0]);break;……

Version1.0Bug点击前进后,便会不停向前,直到接受到下一个控制信号。其他按钮也是如此,这样小车运行就没办法停止。这个问题的原因是,从手机程序的角度说,点击一个按钮后,程序判断这个按钮的意图,例如前进,则发送一个预设的数值,比如‘A’,当然这需要转换成ASCII码值,并采用十六进制发送,具体会在蓝牙通信原理部分讲述。也就是说,点击一次按钮,仅发送一次数据。从单片机程序讲,蓝牙模块接受完一个数据,通过串行口请求中断,单片机根据接收到的数据控制输出,以实现对小车的控制。所以按一个按钮仅发送一个数据的方式实际上就造成了小车运动不灵活,无法停止。

Version1.1添加停止按钮

caseR.id.imagebutton5:message[0]=(byte)0x40;vibrator();Toast.makeText(this,"停止",Toast.LENGTH_SHORT).show();bluesend(message);Log.d("cy08",""+message[0]);break;

这个版本添加停止按钮,通过发送一个不同的数值,蓝牙将该数值传输给单片机后,单片机对电机的输出端变为低电平,之后小车停止运动。这个按钮实际上解决了问题,只不过在每次想要停止时还要按下按钮不是一种符合交互逻辑的方式。更好的方式应该是按下按钮小车运动,放开按钮小车停止。这也就是Version1.2

Version1.2部分代码监听按下和放开的事件

classButtonListenerimplementsView.OnTouchListener{publicbooleanonTouch(Viewv,MotionEventevent){switch(v.getId()){caseR.id.imagebutton1:if(event.getAction()==MotionEvent.ACTION_UP){//放开事件message[0]=(byte)0x40;//设置要发送的数值bluesend(message);//发送数值Log.d("cy08",""+message[0]);}if(event.getAction()==MotionEvent.ACTION_DOWN){//按下事件message[0]=(byte)0x41;//设置要发送的数值bluesend(message);//发送数值Log.d("cy08",""+message[0]);}break;

这段代码实现了监听按钮的按下和放开事件。按下和放开发送不同的数值,用以实现不同的控制。按下前进,发送数值,单片机进入中断程序,放开发送新的数值,单片机又一次中断。这个版本删除了V1.1中的停止按钮,因为已经不需要了,放开任意按钮就会发送停止运行的数据。

二、Gsensor(通过手机传感器控制)

1、手机调用传感器判断手机方位,通过连接蓝牙后发送数据,控制小车运动。2、主要代码:Version1.0

if(y

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇