基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx

上传人:b****3 文档编号:6333453 上传时间:2023-05-09 格式:DOCX 页数:30 大小:190.90KB
下载 相关 举报
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第1页
第1页 / 共30页
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第2页
第2页 / 共30页
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第3页
第3页 / 共30页
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第4页
第4页 / 共30页
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第5页
第5页 / 共30页
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第6页
第6页 / 共30页
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第7页
第7页 / 共30页
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第8页
第8页 / 共30页
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第9页
第9页 / 共30页
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第10页
第10页 / 共30页
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第11页
第11页 / 共30页
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第12页
第12页 / 共30页
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第13页
第13页 / 共30页
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第14页
第14页 / 共30页
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第15页
第15页 / 共30页
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第16页
第16页 / 共30页
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第17页
第17页 / 共30页
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第18页
第18页 / 共30页
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第19页
第19页 / 共30页
基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx

《基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx(30页珍藏版)》请在冰点文库上搜索。

基于手机蓝牙的遥控小车的设计与制作毕业设计论文.docx

基于手机蓝牙的遥控小车的设计与制作毕业设计论文

 

《通信原理课程设计》任务书

 

设计题目:

基于手机蓝牙的遥控小车的设计与制作

 

《通信原理课程设计》任务书

1.课程设计的内容和要求(包括原始数据、技术要求、工作要求等):

(1)技术要求:

设计和制作基于手机蓝牙遥控小车行走的系统。

手机蓝牙作为客户端、制作小车的蓝牙模块,并将之作为服务端。

客户端采用Eclipse开发环境,J2ME编程,服务端采用单片机控制。

双方通过串口仿真协议进行通信,单片机驱动直流电机控制小车的前进、倒退,转向和停止的动作。

(2)工作要求:

①查阅参考文献,利用通信原理基本理论,分析系统工作原理,设计系统方框图;

②掌握计算机辅助设计方法,

③熟悉通信系统的利用Multisim等EDA软件进行仿真设计,具备独立设计能力;调试和测量方法;

④掌握电子电路安装调试技术,选择合适的元器件搭接实际电路,掌握电路的测试和故障排除方法,提高分析问题和解决问题的能力。

2.对课程设计成果的要求〔包括图表(或实物)等硬件要求〕:

设计系统方框图,对系统方框图进行仿真,分析实验结果。

撰写设计说明书,书写格式规范,语言流畅简洁,文字不得少于3000字。

要求图表清晰,分析通彻,有理有据。

 

3.主要参考文献:

[1]樊昌信.通信原理(第6版)[M].北京:

电子工业出版社,2012,12.

[2]樊昌信,曹丽娜 .通信原理教程(第3版)[M].北京:

国防工业出版社,2006,9.

[3]刘学勇 .详解MATLAB/Simulink通信系统建模与仿真[M].北京:

电子工业出版社,2011,11.

[4]张水英 ,徐伟强 .通信原理及MATLAB/Simulink仿真[M].北京:

人民邮电出版社,2012,9.

[5]赵鸿图,茅艳 .通信原理MATLAB仿真教程[M].北京:

人民邮电出版社,2010,11.

[6]赵静 ,张瑾 .基于MATLAB的通信系统仿真[M].北京:

北京航空航天大学出版社,2010,1.

[7]赵谦 .通信系统中MATLAB基础与仿真应用[M].西安:

西安电子科技大学出版社,2010,3.

[8]段吉海 ,黄智伟.基于CPLD/FPGA的数字通信系统建模与设计[M].北京:

电子工业出版社,2004,8.

[9]赵全利,肖兴达 .单片机原理及应用教程[M].北京:

机械工业出版,2007,6.

[10]金纯 ,林金朝.蓝牙协议及其源代码分析[M].北京:

国防工业出版社,2006,6.

[11]黄智伟 .基于NIMultisim的电子电路计算机仿真设计与分析(修订版)[M].北京:

电子工业出版社,2011,6.

[12]孙屹 ,戴妍峰   .SystemView通信仿真开发手册[M].北京:

国防工业出版社,2004,11.

[13]刘斌.JavaME使用详解——用Eclipse进行移动开发[M].北京:

电子工业出版社,2007,2.

4.课程设计工作进度计划:

序号

起迄日期

工作内容

1

2015.5.5

系统方案设计

2

2015.5.10

利用EDA软件进行仿真设计,软件设计

3

2.15.6.1

硬件设计、调试和测量,排除故障,分析实验结果

4

2015.6.25

整理设计报告

指导教师

李圣

日期:

2015年5月5日

 

附件:

《通信原理课程设计》设计说明书格式

一、纸张和页面要求

A4纸打印;页边距要求如下:

页边距上下各为2.5厘米,左右边距各为2.5厘米;行间距取固定值(设置值为20磅);字符间距为默认值(缩放100%,间距:

标准)。

二、说明书装订页码顺序

(1)任务书

(2)论文正文(3)参考文献,(4)附录

三、课程设计说明书撰写格式

见范例

范例

引言(黑体四号)

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆(首行缩进两个字,宋体小四号)

1☆☆☆☆(黑体四号)

正文……(首行缩进两个字,宋体小四号)

1.1(空一格)☆☆☆☆☆☆(黑体小四号)

正文……(首行缩进两个字,宋体小四号)

1.2☆☆☆☆☆☆、☆☆☆

正文……(首行缩进两个字,宋体小四号)

2☆☆☆☆☆☆(黑体四号)

正文……(首行缩进两个字,宋体小四号)

2.1☆☆☆☆、☆☆☆☆☆☆,☆☆☆(黑体小四号)

正文……(首行缩进两个字,宋体小四号)

2.1.1☆☆☆,☆☆☆☆☆,☆☆☆☆(楷体小四号)

正文……(首行缩进两个字,宋体小四号)

(1)……

①……

…………

图1.工作波形示意图(图题,居中,宋体五号)

5结论(黑体四号)

☆☆☆☆☆☆(首行缩进两个字,宋体小四号)

参考文献(黑体四号、顶格)

参考文献要另起一页,一律放在正文后,不得放在各章之后。

只列出作者直接阅读过或在正文中被引用过的文献资料,作者只写到第三位,余者写“等”,英文作者超过3人写“etal”。

几种主要参考文献著录表的格式为:

⑴专(译)著:

[序号]著者.书名(译者)[M].出版地:

出版者,出版年:

起~止页码.

⑵期刊:

[序号]著者.篇名[J].刊名,年,卷号(期号):

起~止页码.

⑶论文集:

[序号]著者.篇名[A]编者.论文集名[C].出版地:

出版者,出版者.出版年:

起~止页码.

⑷学位论文:

[序号]著者.题名[D].保存地:

保存单位,授予年.

⑸专利文献:

专利所有者.专利题名[P].专利国别:

专利号,出版日期.

⑹标准文献:

[序号]标准代号标准顺序号—发布年,标准名称[S].

⑺报纸:

责任者.文献题名[N].报纸名,年—月—日(版次).

附录(居中,黑体四号)

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆(首行缩进两个字,宋体小四号)

(另起一页。

附录的有无根据说明书(设计)情况而定,内容一般包括正文内不便列出的冗长公式推导、符号说明(含缩写)、计算机程序、整体仿真原理图、系统仿真结果图等。

 

引言

本设计是基于手机蓝牙的遥控小车的设计与制作,蓝牙选择的是android手机的蓝牙,使用的是Eclipse+androidSDKIDE开发环境,使用JAVA语言进行开发。

小车的控制是基于STM32控制器,通过串口接收指令来完成相应的控制。

1手机蓝牙软件设计

1.1简介

蓝牙:

是一种无线技术标准,可实现固定设备,移动设备和楼宇个人域网之间的短距离数据交换(使用2.4-2.485GHz的ISM波段的UHF无线电波)。

蓝牙技术最初由爱立信公司于1994年创立,当时是作为RS232数据线的无线替代方案,蓝牙可连接多个设备,克服了数据同步的难题。

1.2通信协议

电缆替代协议(RFCOMM)

RFCOMM是基于ETSI-07.10规范的串行线仿真协议。

它在蓝牙基带协议上仿真RS-232控制和数据信号,为使用串行线传送机制的上层协议提供服务。

点对点协议(PPP)

在蓝牙技术中,PPP位于PFCOMM上层,完成点对点的连接。

1.3基于android手机的蓝牙设计

对android操作系统,在进行蓝牙开发之前需要先获得蓝牙权限。

方法为在AndroidManifest.xml文件中添加

name="android.permission.BLUETOOTH_ADMIN"/>

name="android.permission.BLUETOOTH"/>

然后是对软件界面的开发,使用的是RelativeLayout排布方法;完成图如下

UI完成图

2STM32串口通信设计

2.1简介

通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。

USART利用分数波特率发生器提供宽范围的波特率选择。

它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIRENDEC规范,以及调制解调器(CTS/RTS)操作。

它还允许多处理器通信。

使用多缓冲器配置的DMA方式,可以实现高速数据通信。

2.2USART功能概述

接口通过三个引脚与其他设备连接在一起(见图248)。

任何USART双向通信至少需要两个脚:

接收数据输入(RX)和发送数据输出(TX)。

RX:

接收数据串行输。

通过过采样技术来区别数据和噪音,从而恢复数据。

TX:

发送数据输出。

当发送器被禁止时,输出引脚恢复到它的I/O端口配置。

当发送器被激活,并且不发送数据时,TX引脚处于高电平。

在单线和智能卡模式里,此I/O口被同时用于数据的发送和接收。

●总线在发送或接收前应处于空闲状态

●一个起始位

●一个数据字(8或9位),最低有效位在前

●0.5,1.5,2个的停止位,由此表明数据帧的结束

●使用分数波特率发生器——12位整数和4位小数的表示方法。

●一个状态寄存器(USART_SR)

●数据寄存器(USART_DR)

●一个波特率寄存器(USART_BRR),12位的整数和4位小数

●一个智能卡模式下的保护时间寄存器(USART_GTPR)

在同步模式中需要下列引脚:

●CK:

发送器时钟输出。

此引脚输出用于同步传输的时钟,(在Start位和Stop位上没有时钟脉冲,软件可选地,可以在最后一个数据位送出一个时钟脉冲)。

数据可以在RX上同步被接收。

这可以用来控制带有移位寄存器的外部设备(例如LCD驱动器)。

时钟相位和极性都是软件可编程的。

在智能卡模式里,CK可以为智能卡提供时钟。

在IrDA模式里需要下列引脚:

●IrDA_RDI:

IrDA模式下的数据输入。

●IrDA_TDO:

IrDA模式下的数据输出。

下列引脚在硬件流控模式中需要:

●nCTS:

清除发送,若是高电平,在当前数据传输结束时阻断下一次的数据发送。

●nRTS:

发送请求,若是低电平,表明USART准备好接收数据

2.3USART编程设计

串口设置的一般步骤可以总结为如下几个步骤:

1)串口时钟使能,GPIO时钟使能

2)串口复位

3)GPIO端口模式设置

4)串口参数初始化

5)开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)

6)使能串口

7)编写中断处理函数

其中,中断函数为本设计的关键,我们定义发送的指令以Q结尾,向左转为A,向右转为D,前进为W,后退为S,停止位P,所以下位机的程序流程图为:

3系统调试

3.1上位机的调试:

刚开始时,蓝牙APP发送的数据不对,经过检查,发现回调函数不对,更改后正常了。

3.2下位机的调试:

下载好程序进行硬件调试,在串口中断中设置了断点,可发现当有数据从手机中发送过来时,下位机程序进不到串口中断中,后来发现原来是串口通信的TX与RX线没有接对,刚开始时是天真的以为是TX与TX相连,RX与RX相连。

对调连线后,下位机程序正常了。

3.3系统总体调试:

一切正常,但由于实验空间有限,车子运行起来容易撞墙,所以后来又自己新添加了一个超声波测距模块,这样便能很好的防止车子很快就被损坏。

4总结

要有团队合作精神,这次课设能按标准完成就是团队合作很好的表现。

做任何事都要细心,特别是对于编程来说,你的任何一个不注意的错误可能会让你查一天都查不出来

主要参考文献:

[1]赵全利,肖兴达 .单片机原理及应用教程[M].北京:

机械工业出版,2007,6.

[2]樊昌信.通信原理(第6版)[M].北京:

电子工业出版社,2012,12.

[3]金纯 ,林金朝.蓝牙协议及其源代码分析[M].北京:

国防工业出版社,2006,6.

[4]刘斌.JavaME使用详解——用Eclipse进行移动开发[M].北京:

电子工业出版社,2007,2.

 

附实物图:

附上位机串口中断处理程序:

voidUSART1_IRQHandler(void)//串口1中断服务程序

{

u16set_speed;

u8Rx_lenth;

u8Res;

u8get_order;

#ifdefOS_TICKS_PER_SEC//如果时钟节拍数定义了,说明要使用ucosII了.

OSIntEnter();

#endif

if(USART_GetITStatus(USART1,USART_IT_RXNE)!

=RESET)//接收中断(接收到的数据是以Q结尾的)

{

Res=USART_ReceiveData(USART1);//(USART1->DR);//读取接收到的数据

if(Res=='Q')

{

Rx_lenth=USART_RX_STA;

if(Rx_lenth<2)

{

get_order=USART_RX_BUF[0];

if(get_order=='D')

{

if(dir<=1870)

{

dir+=5;

TIM_SetCompare1(TIM4,dir);

}

else;

//right

}

elseif(get_order=='A')

{

if(dir>=1830)

{

dir-=5;

TIM_SetCompare1(TIM4,dir);

}

else;

//left

}

elseif(get_order=='S')

{

if(speed<=3099)

{

speed+=500;

if(speed>0)

{

GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_5);

TIM_SetCompare3(TIM1,speed);

TIM_SetCompare4(TIM1,speed);

}

else

{

GPIO_SetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_5);

set_speed=-speed;

TIM_SetCompare3(TIM1,set_speed);

TIM_SetCompare4(TIM1,set_speed);

}

}

else;

//back

}

elseif(get_order=='W')

{

if(speed>=-3099)

{

speed-=500;

if(speed>0)

{

GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_5);

TIM_SetCompare3(TIM1,speed);

TIM_SetCompare4(TIM1,speed);

}

else

{

GPIO_SetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_5);

set_speed=-speed;

TIM_SetCompare3(TIM1,set_speed);

TIM_SetCompare4(TIM1,set_speed);

}

}

else;

//forward

}

elseif(get_order=='P')

{

speed=0;

GPIO_SetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_5);//急刹

TIM_SetCompare3(TIM1,3599);

TIM_SetCompare4(TIM1,3599);

//stop

}

else

{

USART_RX_STA=0;//接收数据错误,重新开始接收

}

}

else

{

USART_RX_STA=0;//接收数据错误,重新开始接收

}

}

else

{

USART_RX_BUF[USART_RX_STA]=Res;

USART_RX_STA++;

if(USART_RX_STA>(USART_REC_LEN-1))

{

USART_RX_STA=0;//接收数据错误,重新开始接收

}

}

}

附蓝牙程序源码:

xmlversion="1.0"encoding="utf-8"?

>

android="

android:

layout_width="match_parent"

android:

layout_height="match_parent"

android:

orientation="vertical">

android:

id="@+id/imageButton2"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

layout_below="@+id/imageButton3"

android:

layout_toRightOf="@+id/imageButton4"

android:

contentDescription="@string/down"

android:

src="@drawable/ic_down"/>

android:

id="@+id/imageButton3"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

layout_below="@+id/imageButton1"

android:

layout_toRightOf="@+id/imageButton2"

android:

contentDescription="@string/right"

android:

src="@drawable/ic_right"/>

android:

id="@+id/imageButton1"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

layout_alignParentTop="true"

android:

layout_marginTop="90dp"

android:

layout_toLeftOf="@+id/imageButton3"

android:

contentDescription="@string/up"

android:

src="@drawable/ic_up"/>

android:

id="@+id/imageButton6"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

layout_alignLeft="@+id/imageButton3"

android:

layout_below="@+id/imageButton2"

android:

layout_marginLeft="22dp"

android:

layout_marginTop="25dp"

android:

contentDescription="@string/stop"

android:

src="@drawable/ic_stop"/>

android:

id="@+id/imageButton5"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

layout_alignLeft="@+id/imageButton4"

android:

layout_alignTop="@+id/imageButton6"

android:

contentDescription="@string/bluetooth"

android:

onClick="onBluetoothButton"

android:

src="@drawable/ic_bluet"/>

android:

id="@+id/imageButton4"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

layout_alignParentLeft="true"

android:

layout_below="@+id/imageButton1"

android:

layout_marginLeft="43dp"

android:

contentDescription="@string/left"

android:

src="@drawable/ic_left"/>

获得本地蓝牙的句柄,从而操作手机的蓝牙设备

BluetoothAdaptermBtAdapter=BluetoothAdapter.getDefaultAdapter();

主要源码

publicclassMainActivityextendsActivity{

privatefinalstaticintREQUEST_CONNECT_DEVICE=1;

privatefinalstaticStringMY_UUID="00001101-0000-1000-8000-00805F9B34FB";

BluetoothSocket_Socket=null;

BluetoothDevice_device=null;

BluetoothSocket_socket=null;

boolean_discoveryFinished=false;

privateTextViewtext0;

//priv

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2