基于STM32 的智能共享指纹储物柜
2020-04-13杨荣兴
杨荣兴
(西北民族大学,甘肃 兰州 730030)
1 设计背景
如今,在共享概念的渗透下,越来越多的“共享+”开始涌现。同时,随着嵌入式电子技术的飞速发展,电子技术的相关产品在日常生活中的应用也日益增多。其中储物柜由于自身的方便性在超市、购物中心等公共场普遍应用。但现在储物柜的应用大多是在超市、学校、公司等固定场合,由于自身的局限性无法满足共享的要求。现在的储物柜大多为打印条形码或者使用IC 卡存储方法,IC 卡存在丢失的可能性,如若丢失会造成诸多的麻烦,而且IC 卡储物柜限制了使用范围,通用性差;而打印条形码的存储方法在每次存储所产生的条形码纸会导致浪费和污染环境,且条形码极其容易丢失。基于此,本文研究了基于指纹识别的共享智能储物柜,通过扩展功能实现储物柜在各种公共场所得以使用[1]。
2 工作流程
当管理员将控制系统启动后,各个模块初始化完成并进入工作模式。使用者可以根据GPS 定位找到自己所需要的区域的储物柜,且可通过远程进行控制。LED 显示屏会显示实时储物柜的满空状态,使用者可以通过按键或触屏进行选择自己所需柜子的型号和位置,然后将自己的指纹通过指纹识别器存储到系统中,而且在存储过程中会有相应的语音提醒,当使用者存好物品,关上柜门后,显示屏会自动显示存储成功,当需要取出物品时,只需要通过指纹识别,就会打开起初所存储指纹的对应柜门。
3 设计过程
在整个系统的控制上,使用处理速度更快、硬件资源更丰富的Cortex-M3 内核的STM32F1 系列芯片。Cortex-M3 内核的芯片使用ARM 架构,该架构设计的合理性使微控制器的功能非常强大,同时还可以满足功耗低的要求,正好符合本系统的需求:在供电上STM32F1 微控制器只需要5 V 电源便可以进行驱动,使用非常方便;在程序编写上,STM32F1 可以使用C 语言进行编程。因此,对于本系统来说,采用Cortex-M3内核的STM32F1系列芯片是最好的选择[2-3]。
3.1 硬件结构的设计
本系统中使用Cortex-M3 内核的STM32F1 系列微控制器对整个系统进行控制。本系统中由于要实现的功能较多,所以使用到了很多模块。而不同模块使用的通信协议不同,所以在电路设计上要根据不同模块所需要的不同硬件资源将其接在合适的IO 口上,以实现硬件资源的合理使用。为保证整个系统的稳定性,需将整个硬件结构设计的相对准确,如各个模块所处位置等。
3.1.1 指纹采集设计
本系统采用了光学指纹识别传感器。它主要是利用光的折射和反射原理,光从底部射向三棱镜,并经棱镜射出,射出的光线在手指表面指纹凹凸不平的线纹上折射的角度及反射回去的光线明暗就会不一样,CMOS 或者CCD 的光学器件就会收集到不同明暗程度的图片信息,从而完成指纹的采集。指纹图像预处理的计算公式如下:
图像的平均值和方差:
其中,W、H表示图像的大小。
归一化的图像G:
其中,I(i,j)、G(i,j)分别表示源图像和规格化后图像的第i行和第j列像素点对应的灰度值;Var和M对应图像G的方差和均值,Var0和M0是期望方差和期望均值。
3.1.2 定位模块的设计
采用导航型接收机,此类型接收机主要用于运动载体的导航,它可以实时给出载体的位置。这类接收机一般采用C/A 码伪距测量,单点实时定位精度较低,一般为±10 m,有SA 影响时为±100 m。这类接收机价格便宜,应用广泛。而本系统的储物柜需要为使用者提供实时导航和具体位置,所以此类型的接收机适用。
3.1.3 语音播报模块
使用以KTC603C 语音芯片为基础的PTUFIFS 语音模块实现语音播报功能,通过简单的串口指令即可完成播放指定的语音以及如何播放语音等功能。
3.1.4 可拆卸的机械臂
柜门的打开和闭合可利用LeArm 机械臂进行控制,此种机械臂有高精度数字舵机,因而能够精确的控制柜门。
3.1.5 显示屏
显示屏采用TFTLCD 液晶屏。
3.2 软件程序的设计及优化
在本系统中使用到的功能有IO 口复用、IIC 通信、PWM 波的输出、串口通信、定时器中断、外部中断、定时器等,使用的编程语言是C 语言,使用的编译器为Keil5。Keil5 编译器支持使用C 语言对STM32 系列芯片的驱动,该编译器功能非常强大,支持在线仿真功能,可以更加直观的看到程序设计时出现的错误并及时改正,对于程序的调试非常有帮助[4]。
3.2.1 程序整体设计
程序编写时使用模块化编程,把不同模块的初始化及驱动过程封装在不同的.c 文件中,在main.c 文件中只实现调用的过程,不同文件中函数的调用通过对相应.h 文件的引用来实现。模块化编程最大的好处就是程序的可阅读性比较强,编程思路的体现更加清晰,对于程序的分模块调试以及程序修改也非常方便。通过代码编写控制各个模块相互协调以实现系统所需要的功能。
3.2.2 对系统进行试验调试和优化
模拟储物柜投放各个场所时的取物场景,通过实际检验观测系统各功能相互配合所呈现的情况。在调试过程中出现问题时先根据现象进行分析,然后根据分析进行代码修改、硬件改装,以找到问题所在并解决问题。这使得该系统能更好的适应市场,适合人们的使用。
4 结 论
针对现今市场上传统储物柜的材料浪费、缺乏安全性、使用过程繁琐等问题,本文设计了一款智能共享指纹储物柜。该储物柜具有多种功能,方便了人们的使用。