基于sm32的室内二维定位系统设计_第1页
基于sm32的室内二维定位系统设计_第2页
基于sm32的室内二维定位系统设计_第3页
基于sm32的室内二维定位系统设计_第4页
基于sm32的室内二维定位系统设计_第5页
全文预览已结束

下载本文档

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

文档简介

基于sm32的室内二维定位系统设计

0gps信号在室内定位的衰减在当今社会,当gps软件用于导航时,它们会提示错误地区。我提供最便捷的路线。但是,gps信号在环境中衰减非常严重。如果找不到信号,室内定位将无法直接使用室外定位方法。1放置室内的方法室内定位主要有以下几种方法:蓝牙定位、超声波定位、WiFi定位等。1.1基于约束的定位信息蓝牙可以发送和接收2.4GHz的蓝牙信号,蓝牙定位主要是靠检测附近基站的接收信号强度指示(ReceivedSignalStrengthIndication,RSSI),获取被定位用户的位置信息。虽然蓝牙有着体积小、价格便宜、容易集成到应用设备的特点,但由于蓝牙通信距离较近以及蓝牙基站的不普及,而且蓝牙信号易受噪声信号的干扰,其稳定性较差,所以该技术只适用于小范围内定位,并且误差也很大。其定位误差范围一般在2~5m,所以现在很少把蓝牙运用于定位系统。1.2发生设备与接收设备的距离误差超声波定位一般由1个发生设备和3个接收设备构成,当整个系统开始启动时,发生设备先发送同步信号,然后再开始发送超声波脉冲信号,当接收设备收到同步信号后开启定时器进行计数,再记录下此刻接收设备收到脉冲信号时的计数器值,然后可以分别得到发生设备与接收设备之间的距离差,实现室内定位。1.3指纹库的建立WiFi定位主要靠检测周围WiFi信号强度,然后与室内位置建立一一对应的关系,这种关系被称为指纹库。被定位的标签只需要与指纹库中的参考点进行比对,就可实现目标物体的定位。2系统的设计2.1上位机软件设计本设计的主要目标是设计一套成本比较低廉的室内定位系统,目的是获取标签相对精确的位置信息,并能实时把定位到的坐标值通过无线数传模块传送到计算机上,然后在自主开发的上位机软件中对标签进行实时定位和轨迹绘制,通过观察PC端就能准确知道标签在什么位置。整个系统由硬件电路和上位机软件组成,第一部分由锚点与标签上的DWM1000模块用TOF算法算出距离值,然后标签对距离值通过求平均值处理。第二部分由微处理器STM32F411用三边定位算法算出标签的坐标值并及时显示到标签的OLED上,最后通过数据传输模块与计算机通信。上位机软件可及时更新坐标位置信息,绘制标签的轨迹。系统如图1所示。2.2锚点的使用注意事项为了让室内定位更加准确,减小误差,文章提出了以下的设计指标。(1)标签需配有OLED显示屏。如果没有OLED显示屏,佩带标签的人无法立即知道自己的位置信息,而只能通过PC端的上位机才知道自己的位置信息,所以这样会非常不方便。(2)在放置锚点位置时,尽量避免与大地和金属接触,因为发送出去的一部分脉冲信号很容易被它们吸收掉,从而影响定位的精度。(3)标签与锚点的供电最好采用锂电池,并且在测试的时候要将电池充满电,这样才能使DWM1000模块发射的功率一样,从而保证定位的精度。(4)由于一般遮挡会影响定位的精度,所以在放置基站的时候尽量避免遮挡物。3系统硬件电路设计3.1单天开电路的设计3.1.1电容的选择和工作原理标签和锚点上的MCU使用的是一款32位单片机STM32F411,完成了电源滤波电路的设计、16MHz的高速晶体振荡器的设计、复位电路的设计电源滤波电路的设计:电容C34和C35,选用的是容值为100pF的贴片电容,将它们分别与5V电源和3.3V电源串联,对电源进行滤波处理。16MHz的高速晶体振荡器的设计:需要将大小为16MHz的晶振接到STM32F411的XIN和XOUT的引脚上,两端的电容主要作用是辅助起振。复位电路的设计:复位电路的工作模式是上电后马上进行复位和手动进行复位。后者是当单片机程序跑飞后,为了让其继续正常工作,需要进行手动复位。电容的容值是10μF,电阻的阻值为10kΩ,起分压的作用。手动按下复位开关后,C1会进行放电,此时电阻R40两端产生压降,导致单片机复位。3.1.2a/v的输出本系统有两种供电方案:一种是用USB供电,另一种是用3.6V的锂电池供电。采取第一种供电方案,需要将USB的输出直接与LM1117-3.3模块的输入端相连,目的是使5V的电压变成3.3V。电容用来滤除电源中含有的高频和低频分量。选择USB还是锂电池供电是通过一个波动开关PW1控制的,这可以防止两种不同的方式同时进行供电时将系统烧坏。LED灯常亮则表示系统供电正常,通过电阻分压,防止通过LED的电流过大,烧坏LED灯。3.1.3dwm00模块发送超宽带脉冲信号的装置使用的是DecaWave公司生产的DWM1000模块,该模块符合IEEE802.15.4-2011标准,DWM1000模块主要完成收发时间戳的记录,通过循环的方式于各个锚点之间完成通信,从而得到标签与锚点之间的距离3.1.4bs模块无线数传模块的工作频段为433MHz,传输速率为19200bps,该模块的功能相当于通信距离增强版的蓝牙模块。之前采用的是蓝牙模块,但在系统测试时发现蓝牙模块对DWM1000模块干扰很大,而且不适合远距离传输,所以就替换成了无限数传模块3.1.5oled显示电路设计本部分的功能主要是实时显示位置信息,且在调试期间非常方便,所以电路采用了OLED显示屏。OLED屏幕与单片机之间的通信采用的是I2C协议,由一根SCL和一根SDA构成。在进行文字显示时还要通过汉字提取软件将汉字转换成对应的数组。3.2igner软件介绍电路板设计使用的是AltiumDesigner软件。对元器件进行合理布局和布线,在确保电路能够正常工作的前提下,尽量使元器件摆放美观、整齐,减小走线。4系统的设计过程在系统硬件设计完成之后,制作PCB电路板,在焊接时,一定要确保焊接到电路板上的元器件型号准确,不出现短路、虚焊、漏焊等情况,这样才能开始进行系统软件的设计。系统软件的设计主要由两个部分组成:一是下位机系统程序的设计;二是电脑上位机系统程序的设计。4.1定位功能的实现标签的程序设计:标签上的STM32F411单片机主要的功能是循环发送数据包给各个锚点,每个锚点收到数据包后产生一个应答信号返送给标签,标签与锚点之间的距离差可用TOF算法与光速的乘积算出,标签用三边定位算法可得到位置坐标值4.1.1开发环境对下位机程序的开发,笔者选用的是Keil5软件,因为它更简洁,集成了官方提供的库函数。4.1.2tof算法由于每一个DWM1000一上电就会马上产生一条独立的时间戳,此时标签发射超宽带脉冲的时刻为T4.1.3建立保护元件上的加标系统在放置锚点时,将3个锚点分别放置在坐标系(0,0)(0,5)(5,0)的位置上,建立笛卡尔坐标系,这样可以减少单片机的计算量。通过TOF算法可以分别得到D4.1.4平均值滤波算法:提高定位精度标签在移动的时候距离差会发生变化,为了减小定位的误差,提高定位的精度,所以本系统采用平均值滤波算法,该算法主要是将TOF算法得到的距离差求平均值。通过几组数据测试后,最后得出了每8次求一次平均值效果最好。4.2对于计算机的处理在确保下位机程序能够准确得到位置信息后,还需要将定位到的位置信息传送给计算机,然后在计算机上进行相关数据的处理。在满足上述这些设计的前提下,需要自行编写一个上位机软件,由于人们基本上使用的是Windows操作系统,故编写的软件能在Windows平台上运行。4.2.1直接使用的组件可以提高接口在进行串口通信时,使用的是微软提供的MSComm控件,直接使用这种控件的好处就是不用花费大量的时间去了解串口通信的详细过程,缩短了软件的开发周期。首先要在项目工程中插入MSComm控件,再为其添加成员变量4.2.2误码率的实现标签发送数据给电脑时是将位置信息先进行数据处理,打包后再进行发送,这样可以减小误码率,方便计算机对数据的处理。数据包的格式为:帧头+数据+帧尾。设置“A”作为帧头,“Z”作为帧尾。因为单片机发送的位置信息都是由数字构成的,所以利用帧头和帧尾可以将每个坐标值进行区分。5进行移动行驶按下标签和锚点的电源开关按钮,确保供电正常,然后将3个标签分别放置在预先建立的坐标系(0,0)(0,5)(5,0)位置上,将标签佩戴在身上进行移动行走。在上述步骤完成之后,打开上位机软件。上

温馨提示

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

评论

0/150

提交评论