资源描述
成 绩 评 定 表
学生姓名
班级学号
专 业
电子信息科学与技术
课程设计题目
基于Android
蓝牙小车
评
语
组长签字:
成绩
日期
3月 日
课程设计任务书
学 院
信息科学与工程学院
专 业
电子信息科学与技术
学生姓名
班级学号
课程设计题目
基于Android蓝牙小车
实践教学规定与任务:
基于Android蓝牙小车设计功能:
1.可以实现蓝牙连接。
2.能通过手机蓝牙客户端操控小车迈进、后退、左转、右转、停止。
工作筹划与进度安排:
3月23日: 布置任务, 查找资料
3月24-25日: 画电路原理图、焊接硬件
3月26-27日: 编程调试,撰写报告
3月28日: 验收答辩
指引教师:
年3月 日
专业负责人:
年 3月 日
学院教学副院长:
年 3月 日
摘 要
阐述一种通过手机蓝牙遥控小车行走软、硬件设计。手机蓝牙作为客户端,小车上蓝牙 模块HC-05作为服务端。客户端采用Eclipse开发环境,J2ME编程,服务端采用单片机控制。双方通过串口仿真合同进行通信,单片机驱动直流电机控制小车行动。实验成果表白,小车可以接罢手机遥控信号并灵活地进行前行、倒退、左转、右转和停止等功能。
核心词: 89c52,hc-05,遥控小车,Andriod
目录
1引言 1
1.1课题设计目及意义 1
1.1.1设计目 1
1.1.2设计意义 2
2 方案比较与论证 2
2.1无线单元方案与比较 2
3 硬件电路设计 4
3.1 总体设计 4
3.2 单片机模块 4
3.2.1 STC89C52简介 4
3.2.2 L298N驱动模块及原理简介 5
3.2.3 蓝牙模块 6
4 软件设计 7
4.1 智能车运动控制程序 7
4.2 Android蓝牙客户端设计与实现 8
4.2.1 客户端界面设计 9
4.2.2 BluetoothCar类设计 9
4.2.3 单片机C语言代码 9
5 实验成果及分析 15
6 心得体会 16
参照文献 16
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.1 STC89C52简介
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.2 L298N驱动模块及原理简介
蓝牙小车采用直流电机驱动采用L298N驱动模块,其原理图如下:
L298N驱动模块原理图
L298N驱动模块采用ST公司原装全新L298N芯片,采用SMT工艺稳定性高,采用高质量铝点解电容,使电路温度工作。可以直接驱动两路3-16V直流电机,并提供了5V输出接口(输入最低只要6V),可以给5V单片机电路供电(低纹波系数),支持3.3V MCUARM控制,可以以便控制电流电机速度和方向,是智能小车必备利器。
驱动状态编码
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.2 Android蓝牙客户端设计与实现
蓝牙客户端是顾客控制智能车一种手段。智能车蓝牙控制客户端是基于Android平台开发应用程序。客户端选取在Eclipse和Android SDK组合下使用Java语言进行开发。客户端开发重要涉及到客户端界面设计和功能代码编写。
4.2.1 客户端界面设计
依照智能车实际状况,客户端选取设计成类似赛车类游戏界面。界面通过XML来标记和存储资源。
4.2.2 BluetoothCar类设计
BluetoothCar类重要实现访问安卓手机蓝牙设备和发送智能车运动指令。
4.2.3 单片机C语言代码
#include<reg51.h>
#include<intrins.h>
unsigned int tmp;
unsigned int c=0;
sbit EN_left_wheel=P2^0;
sbit EN_right_wheel=P2^1;
sbit left_wheel_go_ahead=P2^2;
sbit left_wheel_go_back=P2^3;
sbit right_wheel_go_ahead=P2^4;
sbit right_wheel_go_back=P2^5;
void init();
void ctrl();
void turn_left();
void turn_right();
void go_ahead();
void go_back();
void stop();
void main(){
init();
while(1){
if(RI==1){
RI=0;
tmp=SBUF;
ctrl();
}
}
}
void init(){
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;
}
void ctrl(){
switch(tmp){
case 0x01:
turn_left();
break;
case 0x02:
turn_right();
break;
case 0x03:
go_ahead();
break;
case 0x04:
go_back();
break;
case 0x05:
stop();
default:
break;
}
}
void turn_left(){
left_wheel_go_ahead=0;
left_wheel_go_back=1;
right_wheel_go_ahead=1;
right_wheel_go_back=0;
}
void turn_right(){
left_wheel_go_ahead=1;
left_wheel_go_back=0;
right_wheel_go_ahead=0;
right_wheel_go_back=1;
}
void go_ahead(){
left_wheel_go_ahead=1;
left_wheel_go_back=0;
right_wheel_go_ahead=1;
right_wheel_go_back=0;
}
void go_back(){
left_wheel_go_ahead=0;
left_wheel_go_back=1;
right_wheel_go_ahead=0;
right_wheel_go_back=1;
}
void stop(){
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] 张齐 朱宁西 《单片机应用系统技术》北京:电子工业出版社,
[2] 雷夫容 张小林《51单片机惯用模块设计》北京:清华大学出版社,
[3] 黄鑫 马善农《基于CPLD电子琴研究与设计》北京:科技广场,
[4] 赵亮 侯国锐《单片机C语言编程与实例[M]》北京:人民邮电出版社,
[5] 徐新艳《单片机原理、应用与实践[M]》北京:高等教诲出版社,
展开阅读全文