楊榮興
(西北民族大學(xué),甘肅 蘭州 730030)
如今,在共享概念的滲透下,越來越多的“共享+”開始涌現(xiàn)。同時(shí),隨著嵌入式電子技術(shù)的飛速發(fā)展,電子技術(shù)的相關(guān)產(chǎn)品在日常生活中的應(yīng)用也日益增多。其中儲(chǔ)物柜由于自身的方便性在超市、購(gòu)物中心等公共場(chǎng)普遍應(yīng)用。但現(xiàn)在儲(chǔ)物柜的應(yīng)用大多是在超市、學(xué)校、公司等固定場(chǎng)合,由于自身的局限性無法滿足共享的要求?,F(xiàn)在的儲(chǔ)物柜大多為打印條形碼或者使用IC 卡存儲(chǔ)方法,IC 卡存在丟失的可能性,如若丟失會(huì)造成諸多的麻煩,而且IC 卡儲(chǔ)物柜限制了使用范圍,通用性差;而打印條形碼的存儲(chǔ)方法在每次存儲(chǔ)所產(chǎn)生的條形碼紙會(huì)導(dǎo)致浪費(fèi)和污染環(huán)境,且條形碼極其容易丟失。基于此,本文研究了基于指紋識(shí)別的共享智能儲(chǔ)物柜,通過擴(kuò)展功能實(shí)現(xiàn)儲(chǔ)物柜在各種公共場(chǎng)所得以使用[1]。
當(dāng)管理員將控制系統(tǒng)啟動(dòng)后,各個(gè)模塊初始化完成并進(jìn)入工作模式。使用者可以根據(jù)GPS 定位找到自己所需要的區(qū)域的儲(chǔ)物柜,且可通過遠(yuǎn)程進(jìn)行控制。LED 顯示屏?xí)@示實(shí)時(shí)儲(chǔ)物柜的滿空狀態(tài),使用者可以通過按鍵或觸屏進(jìn)行選擇自己所需柜子的型號(hào)和位置,然后將自己的指紋通過指紋識(shí)別器存儲(chǔ)到系統(tǒng)中,而且在存儲(chǔ)過程中會(huì)有相應(yīng)的語(yǔ)音提醒,當(dāng)使用者存好物品,關(guān)上柜門后,顯示屏?xí)詣?dòng)顯示存儲(chǔ)成功,當(dāng)需要取出物品時(shí),只需要通過指紋識(shí)別,就會(huì)打開起初所存儲(chǔ)指紋的對(duì)應(yīng)柜門。
在整個(gè)系統(tǒng)的控制上,使用處理速度更快、硬件資源更豐富的Cortex-M3 內(nèi)核的STM32F1 系列芯片。Cortex-M3 內(nèi)核的芯片使用ARM 架構(gòu),該架構(gòu)設(shè)計(jì)的合理性使微控制器的功能非常強(qiáng)大,同時(shí)還可以滿足功耗低的要求,正好符合本系統(tǒng)的需求:在供電上STM32F1 微控制器只需要5 V 電源便可以進(jìn)行驅(qū)動(dòng),使用非常方便;在程序編寫上,STM32F1 可以使用C 語(yǔ)言進(jìn)行編程。因此,對(duì)于本系統(tǒng)來說,采用Cortex-M3內(nèi)核的STM32F1系列芯片是最好的選擇[2-3]。
本系統(tǒng)中使用Cortex-M3 內(nèi)核的STM32F1 系列微控制器對(duì)整個(gè)系統(tǒng)進(jìn)行控制。本系統(tǒng)中由于要實(shí)現(xiàn)的功能較多,所以使用到了很多模塊。而不同模塊使用的通信協(xié)議不同,所以在電路設(shè)計(jì)上要根據(jù)不同模塊所需要的不同硬件資源將其接在合適的IO 口上,以實(shí)現(xiàn)硬件資源的合理使用。為保證整個(gè)系統(tǒng)的穩(wěn)定性,需將整個(gè)硬件結(jié)構(gòu)設(shè)計(jì)的相對(duì)準(zhǔn)確,如各個(gè)模塊所處位置等。
3.1.1 指紋采集設(shè)計(jì)
本系統(tǒng)采用了光學(xué)指紋識(shí)別傳感器。它主要是利用光的折射和反射原理,光從底部射向三棱鏡,并經(jīng)棱鏡射出,射出的光線在手指表面指紋凹凸不平的線紋上折射的角度及反射回去的光線明暗就會(huì)不一樣,CMOS 或者CCD 的光學(xué)器件就會(huì)收集到不同明暗程度的圖片信息,從而完成指紋的采集。指紋圖像預(yù)處理的計(jì)算公式如下:
圖像的平均值和方差:
其中,W、H表示圖像的大小。
歸一化的圖像G:
其中,I(i,j)、G(i,j)分別表示源圖像和規(guī)格化后圖像的第i行和第j列像素點(diǎn)對(duì)應(yīng)的灰度值;Var和M對(duì)應(yīng)圖像G的方差和均值,Var0和M0是期望方差和期望均值。
3.1.2 定位模塊的設(shè)計(jì)
采用導(dǎo)航型接收機(jī),此類型接收機(jī)主要用于運(yùn)動(dòng)載體的導(dǎo)航,它可以實(shí)時(shí)給出載體的位置。這類接收機(jī)一般采用C/A 碼偽距測(cè)量,單點(diǎn)實(shí)時(shí)定位精度較低,一般為±10 m,有SA 影響時(shí)為±100 m。這類接收機(jī)價(jià)格便宜,應(yīng)用廣泛。而本系統(tǒng)的儲(chǔ)物柜需要為使用者提供實(shí)時(shí)導(dǎo)航和具體位置,所以此類型的接收機(jī)適用。
3.1.3 語(yǔ)音播報(bào)模塊
使用以KTC603C 語(yǔ)音芯片為基礎(chǔ)的PTUFIFS 語(yǔ)音模塊實(shí)現(xiàn)語(yǔ)音播報(bào)功能,通過簡(jiǎn)單的串口指令即可完成播放指定的語(yǔ)音以及如何播放語(yǔ)音等功能。
3.1.4 可拆卸的機(jī)械臂
柜門的打開和閉合可利用LeArm 機(jī)械臂進(jìn)行控制,此種機(jī)械臂有高精度數(shù)字舵機(jī),因而能夠精確的控制柜門。
3.1.5 顯示屏
顯示屏采用TFTLCD 液晶屏。
在本系統(tǒng)中使用到的功能有IO 口復(fù)用、IIC 通信、PWM 波的輸出、串口通信、定時(shí)器中斷、外部中斷、定時(shí)器等,使用的編程語(yǔ)言是C 語(yǔ)言,使用的編譯器為Keil5。Keil5 編譯器支持使用C 語(yǔ)言對(duì)STM32 系列芯片的驅(qū)動(dòng),該編譯器功能非常強(qiáng)大,支持在線仿真功能,可以更加直觀的看到程序設(shè)計(jì)時(shí)出現(xiàn)的錯(cuò)誤并及時(shí)改正,對(duì)于程序的調(diào)試非常有幫助[4]。
3.2.1 程序整體設(shè)計(jì)
程序編寫時(shí)使用模塊化編程,把不同模塊的初始化及驅(qū)動(dòng)過程封裝在不同的.c 文件中,在main.c 文件中只實(shí)現(xiàn)調(diào)用的過程,不同文件中函數(shù)的調(diào)用通過對(duì)相應(yīng).h 文件的引用來實(shí)現(xiàn)。模塊化編程最大的好處就是程序的可閱讀性比較強(qiáng),編程思路的體現(xiàn)更加清晰,對(duì)于程序的分模塊調(diào)試以及程序修改也非常方便。通過代碼編寫控制各個(gè)模塊相互協(xié)調(diào)以實(shí)現(xiàn)系統(tǒng)所需要的功能。
3.2.2 對(duì)系統(tǒng)進(jìn)行試驗(yàn)調(diào)試和優(yōu)化
模擬儲(chǔ)物柜投放各個(gè)場(chǎng)所時(shí)的取物場(chǎng)景,通過實(shí)際檢驗(yàn)觀測(cè)系統(tǒng)各功能相互配合所呈現(xiàn)的情況。在調(diào)試過程中出現(xiàn)問題時(shí)先根據(jù)現(xiàn)象進(jìn)行分析,然后根據(jù)分析進(jìn)行代碼修改、硬件改裝,以找到問題所在并解決問題。這使得該系統(tǒng)能更好的適應(yīng)市場(chǎng),適合人們的使用。
針對(duì)現(xiàn)今市場(chǎng)上傳統(tǒng)儲(chǔ)物柜的材料浪費(fèi)、缺乏安全性、使用過程繁瑣等問題,本文設(shè)計(jì)了一款智能共享指紋儲(chǔ)物柜。該儲(chǔ)物柜具有多種功能,方便了人們的使用。