基于Android的蓝牙遥控小车设计.docx
- 文档编号:4711817
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:13
- 大小:535.92KB
基于Android的蓝牙遥控小车设计.docx
《基于Android的蓝牙遥控小车设计.docx》由会员分享,可在线阅读,更多相关《基于Android的蓝牙遥控小车设计.docx(13页珍藏版)》请在冰豆网上搜索。
基于Android的蓝牙遥控小车设计
成绩评定表
学生姓名
班级学号
专业
电子信息科学与技术
课程设计题目
基于Android
的蓝牙小车
评
语
组长签字:
成绩
日期
2015年3月日
课程设计任务书
学院
信息科学与工程学院
专业
电子信息科学与技术
学生姓名
班级学号
课程设计题目
基于Android的蓝牙小车
实践教学要求与任务:
基于Android的蓝牙小车的设计功能:
1.能够实现蓝牙连接。
2.能通过手机蓝牙客户端操控小车前进、后退、左转、右转、停止。
工作计划与进度安排:
2015年3月23日:
布置任务,查找资料
2015年3月24-25日:
画电路原理图、焊接硬件
2015年3月26-27日:
编程调试,撰写报告
2015年3月28日:
验收答辩
指导教师:
2015年3月日
专业负责人:
2015年3月日
学院教学副院长:
2015年3月日
摘要
阐述一种通过手机蓝牙遥控小车行走的软、硬件设计。
手机蓝牙作为客户端,小车上的蓝牙模块HC-05作为服务端。
客户端采用Eclipse开发环境,J2ME编程,服务端采用单片机控制。
双方通过串口仿真协议进行通信,单片机驱动直流电机控制小车行动。
实验结果表明,小车可以接收手机遥控信号并灵活地进行前行、倒退、左转、右转和停止等功能。
关键词:
89c52,hc-05,遥控小车,Andriod
1引言
1.1课题设计目的及意义
1.1.1设计的目的
遥控小车起源于美国,由于政府对无线遥控小车研发的资助以及相关资助的推动作用,日本、美国、德国等工业大国在遥控小车技术上占据着明显优势。
我国的无线遥控小车研究工作始于20世纪中后期,在国家的863、973等技术发展计划的重点支持下,国内已大范围地进行无线遥控小车的研究。
在研发应用方面取得了重要发展,但是与国际先进还存在一定的差距。
无线遥控实现方法包括蓝牙、红外、射频几种,其中蓝牙技术具有一定优势。
目前在信息家电方面应用正在铺。
遥控小车起源于美国,由于政府对无线遥控小车研发的资助以及相关资助的推动作用,日本、美国、德国等工业大国在遥控小车技术上占据着明显优势。
我国的无线遥控小车研究工作始于20世纪中后期,在国家的863、973等技术发展计划的重点支持下,国内已大范围地进行无线遥控小车的研究。
在研发应用方面取得了重要发展,但是与国际先进还存在一定的差距。
无线遥控实现方法包括蓝牙、红外、射频几种,其中蓝牙技术具有一定优势。
目前在信息家电方面应用正在铺开。
各种家电共用遥控,并可组网与公众互联网相接,共享有用信息。
目前蓝牙技术实现无线遥控的短板在于传输距离短和芯片价格高方面。
随着科技发展,这些问题正在逐步得以解决。
无线遥控机器人有着广阔的应用前景,但是目前国内的无线系统在传输可靠
性、传输速度、抗干扰能力等方面仍有不足,亟待提高。
1.1.2设计的意义
随着家用电器的越来越普及和人们生活节奏的加快,人们对电器的依赖性进一步提高,对电器的功能要求也进一步增大。
现有每个普通家庭中的遥控器包括空调遥控器、电视遥控器、DVD遥控器、汽车遥控器、门窗遥控器等,门类繁多且不通用,而另一方面,手机已成为人人必备的工具,如果可以用我们必备的手机去遥控所有这些家用电器,可摆脱将来对专用红外遥控面板的依赖,一机在手,万物尽在掌握之中。
因此,本论文先设计一种手机对智能遥控车的控制方案,利用本系统的控制模块可扩展至对所有家电的控制。
2方案比较与论证
2.1无线单元方案与比较
无线控制是为了能够实现对智能车的远程遥控,使小车可以在遥控状态下代替人类完成一些危险项目。
目前短距离无线数据传输技术主要有两大类,一类是基于IrDA红外无线通信技术,另一类是基于ISM(Industrial Scientific Medical)频段射频通信技术。
较为主流的几种通信技术之间既存在着相互竞争,但又在某些实际应用领域内相互补充、相互配合,究竟选择何种技术更优越,需要由具体的工作环境来决定。
表1-3所示为四种短距离无线通讯技术主要性能参数。
蓝牙技术
红外技术
WiFi技术
ISM射频技术
通信距离
<100m
<10m
<300m
<1000m
通信速率
<10Mb/s
<16Mb/s
<16Mb/s
<500kb/s
通信频率或波长
2.4GHz
0.75um-24um
2.4GHz
315、433.868、915和2400MHz
频率申请
否
否
否
否
开发难度
易
难
难
易
模块成本
较低
很低
较低
低
结论:
通过表格可以看出,他们在近距离通讯领域都可以提供可靠的通信服务,但是同时他们的应用有着各自的技术架构的限制。
在以上的几种中,我最终选择了蓝牙无线传输方式。
3硬件电路设计
3.1总体设计
智能车主要现实远程来控制智能车的运动。
其主要模块为:
单片机模块、无线通讯模块、电机驱动模块。
其主要结构框图如下图所示。
总体仿真电路图:
3.2单片机模块
3.2.1STC89C52简介
STC89C52是一种带8K字节闪烁可编程可擦除只读存储器(FPEROM-Flash Program able and Erasable Read Only Memory)的低电压,高性能COMOS8的微处理器。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
STC89C52特性:
通用I/O口,复位后为:
P1/P2/P3/P4是准双向口/弱上拉(普通8051传统I/O口);P0口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需要加上拉电阻;ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成;具有EEPROM功能;具有看门狗自动复位功能;共有3个16位定时器/计数器,其中定时器0还可以当成2个八位定时器使用;外部中断4路,下降沿中断或低电平触发中断,PowerDown模式可由外部中断低电平触发中断方式唤醒。
单片机最小系统原理图
3.2.2L298N驱动模块及原理介绍
蓝牙小车采用直流电机的驱动采用L298N驱动模块,其原理图如下:
L298N驱动模块原理图
L298N驱动模块采用ST公司原装全新的L298N芯片,采用SMT工艺稳定性高,采用高质量铝点解电容,使电路温度工作。
可以直接驱动两路3-16V直流电机,并提供了5V输出接口(输入最低只要6V),可以给5V单片机电路供电(低纹波系数),支持3.3VMCUARM控制,可以方便的控制电流电机速度和方向,是智能小车必备利器。
驱动状态编码
3.2.3蓝牙模块
蓝牙模块支持短距离无线传输,可以通过手机与蓝牙模块的配对实现对小车的无线控制。
本小车采用的是HC-05蓝牙芯片,在HC-05芯片里已经将蓝牙协议封装好,只需要通过串口通信实现上位机(手机)与下位机(51单片机)的无线通信。
蓝牙模块中蓝牙芯片的TXD与RXD分别于单片机的RXD与TXD相接,VCC与单片机电源,GND与单片机GND相连。
HC-05使用R1114作为稳压芯片,将单片机提供的5V电压转换为3.3V的低电压,为蓝牙芯片供电。
蓝牙芯片应用范围:
可用于GPS导航,水电煤气抄表系统,工业现场控制,与移动设备无线连接。
4软件设计
4.1智能车运动控制程序
在本次设计中,主程序主要是在单片机的控制下,对蓝牙模块输入的信息进行存储分析,来控制电机驱动,以达到控制小车的前进、后退、左转、右转。
在这个过程中,单片机首先进行初始化,包括设置单片机各个端口的方向,各个变量的初始化,以及单片机振荡频率的校准等。
单片机定时对蓝牙模块串口读数据,如果串口的数据读出,则对读出的数据进行分析,读出的数据如果为0x01、0x02、0x03、0x04、0x05则分别对应小车的前进、后退、左转、右转、停止。
主程序流程图
4.2Android蓝牙客户端设计与实现
蓝牙客户端是用户控制智能车的一种手段。
智能车蓝牙控制客户端是基于Android平台开发的应用程序。
客户端选择在Eclipse和AndroidSDK组合下使用Java语言进行开发。
客户端的开发主要涉及到客户端界面的设计和功能代码的编写。
4.2.1客户端界面设计
根据智能车的实际情况,客户端选择设计成类似赛车类游戏的界面。
界面通过XML来标记和存储资源。
4.2.2BluetoothCar类设计
BluetoothCar类主要实现访问安卓手机蓝牙设备和发送智能车运动指令。
4.2.3单片机C语言代码
#include
#include
unsignedinttmp;
unsignedintc=0;
sbitEN_left_wheel=P2^0;
sbitEN_right_wheel=P2^1;
sbitleft_wheel_go_ahead=P2^2;
sbitleft_wheel_go_back=P2^3;
sbitright_wheel_go_ahead=P2^4;
sbitright_wheel_go_back=P2^5;
voidinit();
voidctrl();
voidturn_left();
voidturn_right();
voidgo_ahead();
voidgo_back();
voidstop();
voidmain(){
init();
while
(1){
if(RI==1){
RI=0;
tmp=SBUF;
ctrl();
}
}
}
voidinit(){
ES=0;
SCON=0x50;
TMOD=0x20;
TH1=0xFD;
TL1=0xFD;
PCON&=0x71;
TR1=1;
TI=1;
RI=0;
ES=1;
EN_left_wheel=1;
EN_right_wheel=1;
left_wheel_go_ahead=0;
left_wheel_go_back=0;
right_wheel_go_ahead=0;
right_wheel_go_back=0;
}
voidctrl(){
switch(tmp){
case0x01:
turn_left();
break;
case0x02:
turn_right();
break;
case0x03:
go_ahead();
break;
case0x04:
go_back();
break;
case0x05:
stop();
default:
break;
}
}
voidturn_left(){
left_wheel_go_ahead=0;
left_wheel_go_back=1;
right_wheel_go_ahead=1;
right_wheel_go_back=0;
}
voidturn_right(){
left_wheel_go_ahead=1;
left_wheel_go_back=0;
right_wheel_go_ahead=0;
right_wheel_go_back=1;
}
voidgo_ahead(){
left_wheel_go_ahead=1;
left_wheel_go_back=0;
right_wheel_go_ahead=1;
right_wheel_go_back=0;
}
voidgo_back(){
left_wheel_go_ahead=0;
left_wheel_go_back=1;
right_wheel_go_ahead=0;
right_wheel_go_back=1;
}
voidstop(){
left_wheel_go_ahead=0;
left_wheel_go_back=0;
right_wheel_go_ahead=0;
right_wheel_go_back=0;
}
5实验结果及分析
用Keil编写程序编译运行通过后,通过串行下载口把BluetoothCar.hex文件下载到单片机中,通过手机客户端发送信息,蓝牙小车实现前进,后退,左转,右转,停止功能。
实物连接图如下:
以上是蓝牙小车静止时的图片,当手机客户端按下前进按钮后,小车两个轮子都前进;当手机客户端按下后退按钮时,小车两个轮子都后退;当手机客户端按下左转按钮后,小车做轮后退右轮前进;当手机客户端按下右转按钮时,小车左轮前进右轮后退。
6心得体会
通过这一次做蓝牙小车,我收获了很多。
开始对单片机串口通信不够了解,在使用HC-05芯片后,对SBUF寄存器有了深入了解。
实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。
通过本次课设,我学会了遇到问题多查多问,综合运用所学的一些基本理论、基本知识、基本技能,培养自己独立分析和解决实际问题的能力,通过试验推断结论;培养严肃、认真、科学的工作作风;注重团队合作精神,学会虚心听取他人的意见。
参考文献
[1]张齐朱宁西《单片机应用系统技术》北京:
电子工业出版社,2007
[2]雷夫容张小林《51单片机常用模块设计》北京:
清华大学出版社,2009
[3]黄鑫马善农《基于CPLD的电子琴研究与设计》北京:
科技广场,2008
[4]赵亮侯国锐《单片机C语言编程与实例[M]》北京:
人民邮电出版社,2008
[5]徐新艳《单片机原理、应用与实践[M]》北京:
高等教育出版社,2009
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 蓝牙 遥控 小车 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)