皮盼资讯网移动版

皮盼资讯网 > 潮流时尚 >

NovelCart智能购物车系统关键技术研究(3)

STM32F103RCT6协处理器采用8M无源晶振作为时钟输入,经过内部锁相环倍频,工作在72MHz主频。P1接口引出了与DWM1000通信相关的引脚,通过排线与DWM1000模块相连;P2接口引出了与ARM主处理器通信相关的引脚,通过排线与ARM主处理器电路板相连。协处理器部分电路还保留了启动模式选择接口BOOT0,用于下载程序和后期维护、调试。电源使用AMS1117-3.3稳压芯片将5V输入电源转换为3.3V。

UWB模块天线的位置会影响定位的精度。为了保证定位性能,尽可能减少NovelCart上其他电子元器件的干扰,DWM1000并未和协处理器设计在一块电路板上,而是采用了一块单独的电路板,通过排线和协处理器部分电路相连,以便把DWM1000模块布设在最利于定位的位置。

协处理部分和DWM1000模块的PCB设计和实物图如图3-4所示:

3.2 UWB定位基站硬件设计

3.2.1 UWB室内定位原理

NovelCart采用单边双向测距(Single-sided two-way ranging, SS-TWR)方向计算购物车与UWB定位基站之间的距离。SS-TWR定位方式的原理如图3-5所示:

3.2.2 UWB基站设计

UWB基站采用了与NovelCart系统主体硬件相似的设计。UWB基站需要安装在超市中,所以要尽可能的小巧、美观。所以在UWB基站上只保留了定位所需的相关最小电路。UWB基站硬件系统框图如图3-6所示:

其中电路的设计与主体硬件设计中所介绍的基本一致,在此不做赘述

UWB基站的PCB基站实现了尽可能的小型化,大小仅35mm×45mm:

第四章 软件设计

4.1图形界面设计

NovelCart搭载的用户图形界面(GUI)是基于Kivy设计开发的。Kivy是一套 Python语言下的跨平台快速应用开发框架,对于多点触控有着良好的支持。Kivy 依据允许商业使用LGPLv3协议发布,支持Linux、Windows、MacOS X、Android 和iOS平台,原生支持包括多点触控的各个平台的输入设备协议,其图形核心围绕OpenGL ES2构建,可以充分利用目标平台的GPU进行加速。

在使用Kivy设计NovelCart用户交互GUI的过程中,模块化与抽象化的思想至关重要。NovelCart的软件构架把各种基本的任务进行抽象,比如打开窗口、显示图像和文本、拼写校正等等。

Kivy使NovelCart的GUI具有着极高的可扩展性与可移植性。Kivy的API接口调用简单,扩展容易,通过简单的代码一面与操作系统间进行通信,另一方面与接口完成信息交互,可以实时而高效率地调用各个硬件组成部分以及存储当中的数据信息,完成所需的任务;Kivy在运行过程中,所使用的API皆用自各运行平台所提供的API,同一端程序可以编译后在不同操作系统下的运行,也使得NovelCart的GUI在不同设备上的移植能力,以便后续升级。

NovelCart搭载的GUI共有八个界面:等待界面、主界面(如图4-2所示)、地图界面、推荐界面、购物车界面以及提醒界面、警报界面、和支付界面。其主要关系结构与业务逻辑线程之前的关系如图4-3所示。

4.2 RFID标签的EPC解算

产品电子代码(EPC编码)是下一代产品标识代码,它可以对供应链中的对象(包括物品、货箱、货盘、位置等)进行全球唯一的标识。EPC存储在RFID标签上,这个标签包含一块硅芯片和一根天线。NovelCart识别购物车内物品的原理就是通过RFID模块接收购物车内RFID标签的信号,解算出各个RFID标签的EPC,根据EPC查询数据库从而获取购物车内所有商品的各种信息。

(责任编辑:admin)