基于STM32的智能轮滑系统的硬件设计

2018-03-29 09:03庄垚刘林真彭井花
数字技术与应用 2018年1期

庄垚 刘林真 彭井花

摘要:针对轮滑对运动场所的要求具有较高的标准,提出一种基于STM32的定位系统。通过集成GPS和GSM/GPRS的SIM928模块实现对轮滑滑行的定位,后台显示滑行轨迹,记录轮滑活动时间,获取轮滑速度,配合智能轮滑APP,分享轮滑轨迹,分享室外方便进行轮滑运动的场地,分享轮滑的质量、价格性价比等。经测试,系统较好地实现以上功能,且运行稳定。

关键词:智能轮滑;GPS模块;GPRS模块;SIM928

中图分类号:TP273.5 文献标识码:A 文章编号:1007-9416(2018)01-0141-02

轮滑是流行的户外运动,但想在户外找一个适合轮滑运动的场地较难查询,轮滑鞋价格从百元到千元不等,但是性价比怎样,缺少实际用户的真实评价,较多儿童也喜欢轮滑运动,而儿童安全意识薄弱,如何让家长放心做到实时监管呢?为解决上述问题,提出了智能轮滑。智能轮滑不进行现有轮滑的改变,贴上硬件模块,当轮滑开始滑行时,实时接收GPS的定位信息,并通过GPRS发给服务器,完成对轮滑运动各方位数据捕获和保存,进行限速、限时,还原“滑行”轨迹。本系统适用于轮滑爱好者轻松的在户外找一个适合轮滑运动的场地,轮滑初学者更有理智性去购买高质量轮滑鞋、儿童的安全问题更容易得以保障。

1 系统总体设计

本系统对于硬件的设计重点考虑单片机模块、GPS模块、GPRS模块。单片机模块采用由STM32F103RBT6,STM32含高性能ARM Cortex-M3 32位RISC内核,具有带唤醒功能的低功耗模式和强大的库函数。GPS、GPRS模块采用SIM928模块,SIM928是一款集成GPS导航技术的四频GSM/GPRS模块,准确定位<2.5米CEP。系统主程序流程图如图1所示。

主要完成如下功能:(1)GPS采集程序:等待定位灯闪烁,获取定位信息,按照NMEA[1]协议对定位信息进行解析,获取经纬度和速度参数。(2)GPRS数据传输:首先在PC机上建立好服务器,再利用手机卡注册好网络,去连接服务器对应IP和端口,进行数据发送。(3)报警处理程序:检测到超速、超时,单片机相应的I/O口产生不同高电平信号,驱动报警模块中的蜂鸣器工作,从而确认是超时还是超速。(4)信息检索处理程序:检索是否有信息,并检查信息是否按照标准格式发过来,如果是,修改对应速度上限、时间上限的值。

2 硬件电路描述

本系统硬件部分主要包含4个模块:主控模块、MAX3232模块、SIM928模块、报警模块;其中主控模块又分为:电源模块、串口模块、显示模块;MAX3232模块有三个,分别对应GPS、GPRS、STM32的TTL电平转换为232;SIM928模块有SIM卡模块、电源模块、串口模块;报警模块主要由蜂鸣器构成。主要实物如图2所示。

2.1 SIM928模块

SIM928的GPS外围电路为在引脚11外接了PPS灯,因为引脚11是脉冲输出引脚,可以判断定位状态,当PPS灯闪烁(1秒亮一秒灭)表示定位成功,常灭表示没有定位。并且在进行GPS测试时,最好是在空旷的地方,否则需要在IPX-SMA转接线外加天线,把黑面朝上,提高搜星速度。

SIM928的GPRS外围电路分为串口模块、SIM卡模块。天线采用外接天线,不需要太强信号即可实现GPRS入网,通常不需要接入;在开始通信前,需要检查模块正常运行与否。插上SIM卡后查看LED指示灯状态,如果网络指示灯,1秒亮后接着3秒灭,常亮RING指示灯,也是表明模块工作正常。备用电源采用的是CR1220,两个模块共用一个电池,也减少电路的复杂度。

2.2 报警模块

报警模块由外接无源蜂鸣器构成,该蜂鸣器模块板载8550三极管驱动,低电平有效,可以直接和单片机I/O控制,工作电压在5V,板子尺寸为22(mm)×12(mm)。检索接收到的特定信息内容,例如“set0304”,提取后4位数据,进行对应速度、时间上限的刷新,再判断是否超速、超时。超速的话,拉低对应蜂鸣器引脚1秒,拉高1秒,为报警模式1;超时的话,拉低引脚2秒,拉高1秒;同时超速、超时的话,就直接一直拉低蜂鸣器电平。

3 系统的实现

3.1 GPS信号解析

SIM928启动后,等待GPS模块的PPS灯闪烁,获取得到卫星信号,然后STM32对GPS信息进行提取,提取过程分为2个步骤:

(1)STM32 与 GPS 模块串口进行连接通信,获取定位信息,得到的定位信息严格按照NMEA协议来传输,提取其中帧头为$GPRMC的数据。(2)获取到的数据格式如下:$GPRMC,字段0,字段1,字段2,字段3,字段4,字段5,字段6,字段7,字段8…字段12。这些数据主要有协调定位时间UTC、经、纬度Longitude、速度Speed、海拔Altitude、捕获模式 Fix Mode等信息,按需获取指定数据。其中,通过分析数据协议以及与自身系统的需求,本系统仅仅提取字段3、4、5、6、7,分别对应为纬度、经度、速度参数。

3.2 GPRS数据传输

SIM928与大多数GPRS模块一样,只需通过发送 AT指令就可建立TCP /IP连接来进行数据的收发[3]。当SIM928的GPRS模块正常工作时,其RUN灯将2秒一闪,然后通过GPRS串口与STM32进行通信。

程序设计过程中需要注意,由于CPU响应较快,指令马上会得到回复,AT指令本身也会传到服务器,所以AT指令执行完,应给予较长的延时。

3.3 服务器搭建

为解决动态公网IP端口被屏蔽,无公网IP的问题,本系统使用新花生壳软件,实现自己搭建服务器。在服务器创建时,分别打开网络调试助手、新花生壳软件。先在网络调试助手里选择协议类型、填写端口号,点击连接。接着在花生壳上进行添加映射,在编辑端口映射信息时IP地址和端口号必须要与网络调试助手上的一样,即可映射完成,最终得到外网访问地址。检查映射是否成功,可通过域名诊断来检测。

4 硬件测试结果分析

将本系统应用到轮滑上,在操场上进行对定位 GPS 设备的接收、信号延时及成功率的测试和定位精确度测试。实验结果表明设备通信延时低而且成功率高,能满足一般的实时数据查询要求[3]。图3为向服务器发送的经纬度信息,前标的1代表为轮滑鞋的ID。

5 结语

根据智能轮滑的要求,提出了基于STM32的嵌入式GPS/GPRS定位系统,使用二合一的SIM928模块,系统安全稳定,而且定位精准有效,用户还可使用智能轮滑APP,查询适合轮滑的场所、轮滑轨迹和轮滑俱乐部举行的活动。虽然解决了上述问题,但还存在一些不足,比如:设备的体积有待改善、功耗还有所提升的空間、可增加语音模块使其更加智能等。该系统可以考虑采用MSP430系列单片机,并移植UC/OS-II 操作系统,将系统划分几个并行存在的任务,再根据任务的重要程度分配优先级,创建出功耗更低、运行更流畅的系统[4]。

参考文献

[1]斯亮.嵌入式 GPS/GIS 导航系统的研究与设计[D].哈尔滨:哈尔滨工业大学,2009.

[2]陈维维.嵌入式无线定位追踪系统的技术研究[D].南京:南京理工大学,2013.

[3]黄勇.基于STM32的车载GPS/GPRS定位系统设定[D].上海:上海理工大学,2017.

[4]任哲,房红征,曹靖.嵌入式实时操作系统 UC\OS原理及应用[M].北京:北京航空航天大学出版社,2014.