基于蓝牙通信的三种应用_第1页
基于蓝牙通信的三种应用_第2页
基于蓝牙通信的三种应用_第3页
基于蓝牙通信的三种应用_第4页
基于蓝牙通信的三种应用_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华北电力大学实 验 报 告| 实验名称 综合设计 (蓝牙通信的三种应用) 课程名称 微计算机原理与嵌入式系统 | 专业班级:自动实1201 学生姓名:徐海洲 学 号:3 成 绩:指导教师:林永君 实验日期:2014/7/8 引言(Introduction)1高层次设计(High Level Design)2硬件(Hardware)3蓝牙部分3蓝牙模块规格3模式与指示灯3蓝牙无线模块设置方式:4蓝牙串口通信参数设置5蓝牙与单片机的连接6遥控车(智能车)部分6软件(Software)7遥控车部分7单片机下位机7手机遥控器(上位机)10智能车无线上位机部分11单片机下位机程序11MATLAB GUI上位机部分12手机玩电脑游戏放映PPT14利用手机放映PPT15远程桌面16手机玩极品飞车17结果(Results)17准确性17实用性17结论(Conclusions)1819引言(Introduction) 本设计利用蓝牙无线通信完成三项内容:1、基于Android的无线蓝牙遥控小车。2、基于MATLAB GUI的无线蓝牙智能车上位机。 3、利用蓝牙实现利用手机控制电脑,玩电脑游戏,放映PPT等功能。 蓝牙在我们生活和学习中的应用非常广泛,几乎每一部手机、电脑都有蓝牙功能。我们可以利用蓝牙进行近距离的文件传输。我们可以利用蓝牙把手机做成四轴飞行器的遥控器,从而省去高昂的遥控器的费用。可以利用蓝牙做智能车的无线上位机,从而高效的调节智能车控制系统的参数。能够利用好蓝牙可以为我们的学习生活带来很大的方便。因此本次综合设计,我利用蓝牙完成了上述三个内容。高层次设计(High Level Design)蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术。能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用“蓝牙”技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。本设计使用的蓝牙模块采用CSR Bluetooth 2.0核心芯片BC417设计,支持在通用异步串行通信协议(UART)下的数据透明传输,单片机通过UART协议使用蓝牙串口模块直接收发数据,不需要考虑模块初始化与通信协议。是最简单和最可靠使用的无线通讯方式。支持该协议通信接口的智能设备众多,例如:通用计算机(PC)上的COM口,飞思卡尔系列单片机的SCI接口,德州仪器(TI)MSP430系列单片机的UART接口等等。本模块利用蓝牙通信作为物理层代替传统异步串行通信中的TX和RX导线,从而实现无线异步串行通信。任何原先使用UART串口的设备,以及可以使用虚拟串口的设备都可以使用本蓝牙串口模块实现透明无线数据通信。常用领域如下:飞思卡尔智能车竞赛中数据监控与参数设置,便于调试与测试。各种电子设计惊呆挑战杯等比赛中的调试与测试无线蓝牙遥控器设计无线PowerPoint操作笔设计硬件(Hardware) 蓝牙部分 蓝牙模块规格模式与指示灯上图现实了蓝牙串口模块的上半部分,即拨动式开关和指示灯部分,拨动式开关的主要作用是设置蓝牙串口的工作模式,工作模式分为AT和BT模式。AT模式用于配置蓝牙串口模块的各项参数,例如蓝牙名称、蓝牙配对秘药、通信波特率,也用于主机模式下的主动搜索。BT模式用普通串口串行通信,无论是各种连接形式,如果用于异步串行通信的话,都是在BT模式下进行。蓝牙无线模块设置方式: 蓝牙模块指示灯对应模式和状态示意图蓝牙串口通信参数设置 在蓝牙串口在蓝牙串口模块的通信设置中,有三个重要的参数:UART速率,停止位与校验。UART速率指的就是使用蓝牙串口模块通信的两个设备的异步通信的波特率。由于异步通信没有时钟引脚,因此需要约定好通信速率才能进行通信。常见的波特率有:4800bps、9600bps,38400bps,57600bps,bps。停止位是一个字节数据通信完毕的标准,通常是1位,也可以设置为2位。校验是奇偶校验,Odd为奇校验,Even是偶校验。通常设置为不校验。蓝牙与单片机的连接蓝牙与MCU相连时,只需将VCC、GND接上,再将蓝牙的TX与MCU的RX相连,蓝牙的RX与MCU的TX相连。连接51时蓝牙的TX与P30口相连,RX与P31口相连.连接MC9S12XS128时将TX与PS0口相连,RX与PS1口相连. 遥控车(智能车)部分 本设计使用的是我去年校内智能车竞赛的光电组线性CCD车模,在原有硬件和程序的基础上,增加蓝牙遥控,蓝牙上位机功能,通过第一位拨码开关进行自动寻线与手机遥控的切换。单片机采用飞思卡尔公司的MC9S12XS128单片机。软件(Software) 遥控车部分单片机下位机: MC9S12XS128内置的SCI模块是全双工、波特率可编程设置、可编程选择8位数据位或9位数据位的串行通讯接口(简称串口)。串口相关程序如下:/-/ 函数功能:UART0_Init初始化/ 形式参数: 无/ 函数返回值:无 /-void UART0_Init(void) SCI0CR1 = 0x00; SCI0CR2 = 0x2C; /接收中断使能,发送接收使能 SCI0BD = 0x34; /波特率配置成38400 /When IREN = 0 then /SCI baud rate = SCI bus clock / (16 x SBR12:0) /-/ 函数功能:SCI0中断服务子程序/ 形式参数: 无/ 函数返回值:无 /-#pragma CODE_SEG _NEAR_SEG NON_BANKEDinterrupt VectorNumber_Vsci0 void SCI0_ISR(void) /Receive data register full interruptif(SCI0SR1_RDRF) g_SCI0_int_RDRF_flag=1;g_REV_DATA=SCI0DRL;if(SCI0SR1_TC) ;/-/ 函数功能:SCI0发送一个字节数据/ 形式参数: byte ch:发送的一个字节数据/ 函数返回值:无 /-void UART0_SendByte(byte ch) while(!(SCI0SR1&0x80); SCI0DRL = ch; /-/ 函数功能:SCI0发送字符串数据/ 形式参数: byte *pBuff 发送缓冲区/ int Length 发送字节的长度 / 函数返回值:无 /-void UART0_SendPacket(byte *pBuf,int pBuf_Length) int i; for(i=0;ipBuf_Length;i+) while(!(SCI0SR1&0x80); SCI0DRL=*(pBuf+i); 主函数中判断部分如下: if(yaokong=1) /模式判断 if(g_SCI0_int_RDRF_flag) g_SCI0_int_RDRF_flag=0; if(g_REV_DATA=0x01) /前进 PWMDTY3=0; PWMDTY5=30; if(g_REV_DATA=0x02) /后退 PWMDTY3=30; PWMDTY5=0; if(g_REV_DATA=0x04) /左转 PWMDTY01= 1700; if(g_REV_DATA=0x03) /右转 PWMDTY01= 1500; if(g_REV_DATA=0x05) /打正 PWMDTY01= 1610; 手机遥控器(上位机)手机上位机控制界面如下控制协议如下:前进:发送01;后退:发送02;左转:发送04;右转:发送03;停止:发送05;智能车无线上位机部分单片机下位机程序/-/ 函数功能:蓝牙发送模块,发送智能车相关数据/ 形式参数: 无/ 函数返回值:无 /-void bluetooth(void) int i; UART0_SendByte(0xFF); /起始标志for(i=(64-WINDOW_WIDTH/2); i(64+WINDOW_WIDTH/2); i+) /遇到0xFF用0xFE代替 if(gPixeli=0xFF) gPixeli = 0xFE; UART0_SendByte(gPixeli); UART0_SendByte(THRESHOLD); UART0_SendByte(abs); UART0_SendByte(leftbreak); UART0_SendByte(rightbreak); UART0_SendByte(center_line); UART0_SendByte(PWMDTY5); UART0_SendByte(PWMDTY01/250); UART0_SendByte(PWMDTY01%250); UART0_SendByte(tspeed/250); UART0_SendByte(tspeed%250); UART0_SendByte(spd1/250); UART0_SendByte(spd1%250);MATLAB GUI上位机部分 网上也有现成的上位机,但是并不能按照自己的需要显示相应的参数,而自己做的上位机能够随意改动想要的参数。利用MATLAB GUI制作的上位机如下,图中可显示赛道情况以及智能车的基本参数。主要代码如下:global g;global model;k=1;t=1:128;CCD(1:128)=0;b18=25;val(1:128)=0;while(1) datas=fread(g) for i=1:170 if datas(i)=255 m=i; l=1; yz=datas(m+134); for i=m+1:m+128 CCD(l)=datas(i); val(l)=yz; l=l+1; end left= datas(m+130); right= datas(m+131); ren=datas(m+132); center= datas(m+133); yz=datas(m+134); dj=datas(m+135)*250+datas(m+136); mubiaospeed=datas(m+137)*250+datas(m+138); speed=datas(m+139)*250+datas(m+140); zhankong=datas(m+141); ab= center-64; set(handles.ABS,string,num2str(ab); set(handles.yuzhi,string,num2str(yz); set(handles.mbspeed,string,num2str(mubiaospeed); set(handles.dangqiansudu,string,num2str(speed); set(handles.zhankongbi,string,num2str(zhankong); set(handles.centerline,string,num2str(center); set(handles.leftbreak,string,num2str(left); set(handles.rightbreak,string,num2str(right); set(handles.saidaopanduan,string,num2str(ren); set(handles.duojidajiao,string,num2str(dj); break; end end axes(handles.tuxiang1) plot(t,CCD,t,val,linewidth,2); grid; axis(1 128 0 256) end使用蓝牙上位机时首先需要将蓝牙电脑端插入USB口中,再利用BlueSoleil将蓝牙模块相连,并选择蓝牙串行端口服务,如图:完成后在打开MATLAB GUI打开相应端口,即可实时读取智能车数据。手机玩电脑游戏放映PPT利用MONECT这一软件实现通过蓝牙控制电脑。 远程桌面 在手机上触控你的windows 投影仪 将你的手机内容显示在电脑上 飞行模式 通过重力感应玩如皇牌空战之类的游戏 幻灯片同步 直接在手机上显示PPT的图片,注释等,可以选择,播放,圈圈点点 赛车模式 使用手机上的重力感应来玩电脑上的赛车游戏,完美支持各种赛车游戏,如极品飞车系列,尘埃系列等。 触控板 模拟触摸板, 使你的电脑增加一个类似笔记本的触摸板,并且支持多点触摸,就像苹果的trackpad一样! 我的电脑 直接在您的手机上浏览,修改,删除您的电脑文件! 摇杆手柄 虚拟出一个无线电脑手柄,可以轻松玩街霸,三国无双等游戏. 射击模式 使用3D陀螺仪来瞄准目标,就像真的射击一样!利用手机放映PPT远程桌面手机玩极品飞车结果(Results)准确性 通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论