- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Android的无线遥控汽车的设计与优化.doc
基于Android的无线遥控汽车的设计与优化
摘 要:基于Android平台的远程遥控小车,可以使用智能手机通过蓝牙(或wifi)发出指令。该车可以躲避障碍物,实时视频传输,可用于在发生自然灾害时执行搜索任务。经过相关参数的测试,实验表明该智能小车性能稳定、操控性好,视频传输稳定。通过对各部件电流消耗的分析,提出了优化方案。
关键词:蓝牙;wifi;遥控小车;Android设备
1 概述
随着手机移动技术迅速发展,智能手机的功能越来越强大,从单一通话和收发短信,发展到可进行移动搜索、全球定位导航、手机电视、实时视频通信等其它强大功能。Android是一种以linux为基础的开源操作系统,基于此平台的手机应用渗透到生活的方方面面。基于Android平台的无线遥控汽车,通过蓝牙(或wifi)发出指令。该车可以躲避障碍物,实时视频传输,可用于在发生自然灾害时执行搜索任务,具有一定的实际意义。
2 系统概述
该系统是由一个遥控小车单元和一个运行在Android智能手机的应用程序组成。
总体方案设计:
总体硬件框图如图1所示。
主板采用Arduino公司的Mega开发板,它是一个开源的单板机控制器,采用了基于开放源代码的软硬件平台,构建于开放源代码 simple I/O 接口版,并且具有使用类似Java,C 语言的Processing/Wiring开发环境。Arduino Mega是一块以ATmega2560为核心的微控制器开发板,提供54个数字输入/输出引脚(其中6可以作为PWM输出)8个模拟输入,2个UART(硬件串口),一个16 MHz的晶体振荡器,一个USB连接,输入电压6-12V 。主板产生1 前进/后退,左/右脉冲,通过直流伺服电机控制小车运行。
副板采用Arduino 公司的UNO板,微处理器是ATmega328,具有14路数字输入/输出口(其中6路可作为PWM输出),6路模拟输入,一个16MHz晶体振荡器,一个USB口,一个电源插座,一个ICSP header和一个复位按钮。副板连接一个距离传感器,距离传感器提供2-400厘米的非接触式测量功能,精度可达到3毫米。
一个VGA摄像头连接到路由器模块,该装置安装在主控板后面。由摄像头拍摄的视频输入到路由器通过wifi连接到Android设备,该视频实时显示在Android应用程序。
3 下位机软件设计
主程序流程:
本系统的软件完成以下功能:
(1)系统初始化:包括I/O口工作模式、串口、中断、PWM的初始化,同步手机应用程序等。
(2)接受上位机android设备的控制命令。
(3)控制电机的运转方向和速度。
副板上安装有距离传感器,ATmega 328微处理器通过计算距离传感器发出脉冲和接受信号之间的间隔时间来确定与障碍物的距离,如果此距离小于20厘米,将产生中断,中断命令将被发送到主板的atmega2560微处理器上,主板将关闭伺服电机,避免可能出现的碰撞。如果计算出的距离大于20厘米,不产生中断,小车继续前进。
4 基于Android智能手机应用程序开发
4.1 Android系统架构
Android系统架构由5部分组成,分别是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。
4.2 方向控制
首先我们创建一个传感器管理器和一个传感器监听器,管理器用来管理传感器以及创建各种各样的传感器,监听器用来监视传感器的变化并且进行相应的操作
private SensorManager sensorManager;private MySensorEventListener mySensorEventListener;
mySensorEventListener= new MySensorEventListener();
这个监听器当然是我们自己定义的,在方向感应器感应到手机方向有变化的时候,我们可以采取相应的操作。
private final class MySensorEventListener implements SensorEventListener{
public void onSensorChanged(SensorEvent event) {
if(event.sensor.getType()==Sensor.TYPE_ORIENTATION){
float x = event.values[SensorManager.DATA_X];
float y = event.va
原创力文档


文档评论(0)