關(guān)鍵詞:硬幣識別;光電開關(guān)傳感器;電渦流檢測法;自學(xué)習(xí);最小系統(tǒng)
0 引言
隨著現(xiàn)代社會的不斷發(fā)展,硬幣在生活中愈發(fā)重要,面對硬幣巨大的流通使用以及銀行等特殊行業(yè)需要統(tǒng)一高效對數(shù)量龐大的硬幣進(jìn)行計數(shù)、分類、包裝等,傳統(tǒng)人工處理存在著勞動量大、效率相對低下、處理精度差等問題[1-2]。一些無人售賣機(jī)也需要實現(xiàn)對各種硬幣組合的識別清分,目前市面上大部分的無人售賣機(jī)依然只針對同一種類的貨幣對應(yīng)一個投幣渠道。針對目前硬幣識別系統(tǒng)存在的缺陷,結(jié)合我國國情和貨幣特點(diǎn),從精準(zhǔn)識別、成本控制等多方面出發(fā),本文采用STM32結(jié)合多傳感器實現(xiàn)盲盒中硬幣類別的自主識別。
1 系統(tǒng)構(gòu)成及原理
硬幣盲盒識別系統(tǒng)由單片機(jī)主控模塊、光電開關(guān)傳感模塊、電渦流傳感模塊及OLED顯示模塊等部分組成,系統(tǒng)總體設(shè)計框如圖1所示。系統(tǒng)由STM32主控模塊完成對數(shù)據(jù)的變換、編輯和存儲等處理,通過渦流傳感器模塊完成對檢測區(qū)域中的硬幣特征值感知;光電開關(guān)傳感模塊完成對檢測區(qū)域中的盲盒進(jìn)行光學(xué)判別,判斷有無盲盒;OLED顯示模塊完成對檢測區(qū)域盲盒和硬幣情況的實時文字形式顯示,實現(xiàn)人機(jī)交互。按鍵輸入可實現(xiàn)在不同情景系統(tǒng)學(xué)習(xí)記憶新出現(xiàn)幣種的各種特征,提高系統(tǒng)識別魯棒性和實現(xiàn)自學(xué)習(xí)功能。
系統(tǒng)整體實物電路連接方式如圖2所示。包括單片機(jī)開發(fā)板、電渦流傳感器、光電開關(guān)傳感器、OLED 顯示屏,該系統(tǒng)具備小巧、低功耗等優(yōu)勢。
2 系統(tǒng)硬件設(shè)計
2.1 STM32最小系統(tǒng)
STM32F103x8其內(nèi)核為ARM 32位的Cortex-M3CPU處理器,擁有最高72MHz工作頻率,還有極高的運(yùn)算能力和中斷響應(yīng)能力,具有性能高、速度快、功率小、性價比高、可調(diào)試、支持?jǐn)?shù)模轉(zhuǎn)換、開發(fā)方便、現(xiàn)場編程等特點(diǎn),整個系統(tǒng)效率高、功耗降低、可拓展性好[3]。圖3 是STM32F103x8 最小系統(tǒng)。與傳統(tǒng)的STC89C52相比具有更快的運(yùn)算能力,使用性能更高,功耗更小等優(yōu)點(diǎn)。
2.2 電渦流傳感器
此硬幣盲盒識別系統(tǒng)選擇電渦流傳感器作為主體傳感部分。目前主流的對硬幣行為進(jìn)行識別的有效方法有圖像對比識別法、稱重法和渦流傳感檢測法。渦流傳感檢測具有無須接觸、結(jié)構(gòu)簡單、成本低、檢測有效、易做到實時性連續(xù)測量、抗干擾性強(qiáng)。對于臟污幣、造假幣、非電感材質(zhì)填充物等干擾因素都能做到有效且正確的檢測[4]。
電渦流傳感器基于電渦流效應(yīng)利用磁路磁阻變化引起傳感線圈電磁感應(yīng)的變化來檢測非電量裝置。當(dāng)電流通過電渦流傳感器時,會產(chǎn)生周圍的電磁場。導(dǎo)體通過變化的磁場時,會產(chǎn)生電渦流,其會產(chǎn)生一個新的磁場,與傳感器磁場方向相反。這兩者相互作用,導(dǎo)致電感量產(chǎn)生變化。不同硬幣具有不同的硬度、面值、大小和密度,因此具有不同的磁導(dǎo)率,從而引起不同程度的電感量變化。這些信號的變化量運(yùn)算放大電路之后傳輸給主控模塊,再通過與主控模塊中存儲器中對幣種的預(yù)設(shè)范圍進(jìn)行對比實現(xiàn)系統(tǒng)部分功能[5]。電渦流傳感器的電路圖如圖4所示。
運(yùn)算放大電路采用LM358的設(shè)計電路。該電路使用了常用的低功率雙運(yùn)算放大器LM358,其內(nèi)部包含兩個獨(dú)立的、高增益、內(nèi)部頻率補(bǔ)償?shù)倪\(yùn)算放大器,專門設(shè)計用于在寬電壓范圍內(nèi)由單電源供電。其電源電壓范圍適用廣泛,可在單電源模式和雙電源模式下工作。在適合的工作條件下,其電源電流與電源電壓無關(guān)。該器件的應(yīng)用范圍涵蓋傳感放大器、直流增益模組、工業(yè)控制、DC增益部件以及其余需要單電源供電的運(yùn)算放大器應(yīng)用場合。LM358有內(nèi)部頻率補(bǔ)償、低輸入偏流、低輸入失調(diào)電壓和失調(diào)電流、直流電壓增益高(約100dB)、單位增益頻帶寬(約1MHz)、低功耗電流,適合于電池供電等特性[6]。LM358的引腳圖及引腳功能如圖5所示。內(nèi)部電路原理圖如圖6所示。
2.3 OLED 顯示模塊
為實現(xiàn)對檢測區(qū)域盲盒和硬幣情況的實時文字形式顯示。本系統(tǒng)采用了IIC 接口的OLED 顯示屏。OLED在正常通電下即可實現(xiàn)發(fā)光。OLED液晶屏的尺寸和厚度較薄,外觀結(jié)構(gòu)尺寸約為LCD1602的一半,但其可以獨(dú)立顯示內(nèi)容。通過修改顯示單元寄存器上的地址,可以單獨(dú)驅(qū)動部分背光點(diǎn)亮,從而具有更優(yōu)秀的節(jié)能特性。此外,像素點(diǎn)顏色切換時間即灰階響應(yīng)時間極短,畫面切換和變更時不會產(chǎn)生明顯的拖影[7]。
OLED使用前須進(jìn)行初始化,然后設(shè)置顯示的字符串即可控制顯示屏顯示預(yù)期結(jié)果。此顯示屏內(nèi)部集成了存儲器,存儲器中存儲了英文字母、數(shù)字以及圖形等原始數(shù)據(jù),這些數(shù)據(jù)共同構(gòu)成了一個數(shù)據(jù)庫,調(diào)用庫中數(shù)值即可對顯示屏進(jìn)行編輯。但對于實現(xiàn)中文文字顯示需要借助取模工具,通過取模工具輸入文字獲得字符像素位置,添加在數(shù)據(jù)庫中來實現(xiàn)。圖7為IIC接口的OLED液晶顯示屏的電路原理圖。
2.4 光電開關(guān)傳感模塊
本系統(tǒng)對于視覺方面需求不高,使用光電開關(guān)傳感即可滿足功能需求,為使降低功耗,采用 E18- D80NK光電傳感器。E18-D80NK光電傳感器可以發(fā)射和接收脈沖,常用于測量距離,檢測物體的顏色和形狀等。其通過發(fā)射光束進(jìn)行信號傳輸,可以檢測距離、色彩、形狀等信息,并將該信號送至STM32內(nèi)計數(shù)[8]。圖8為光電傳感器實物圖。
3 系統(tǒng)軟件設(shè)計
本項目借助采用C語言編程,Keil uVision5開發(fā)工具實現(xiàn)系統(tǒng)功能。硬幣盲盒識別系統(tǒng)的具體流程為:當(dāng)硬幣盲盒放入待檢測區(qū)域時,光電開關(guān)傳感檢測到盲盒的存在,此時OLED屏幕顯示有盲盒字樣,主控模塊開始識別盲盒里的硬幣,通過連續(xù)重復(fù)多次采集再變換的數(shù)值與預(yù)設(shè)值范圍進(jìn)行對較,辨別幣種真?zhèn)危魹檎鎺?,OLED顯示模塊會顯示待測區(qū)域內(nèi)的詳細(xì)硬幣種類和數(shù)目。若是新幣種,可通過按鍵操作使系統(tǒng)進(jìn)入學(xué)習(xí)模式,學(xué)習(xí)新的預(yù)設(shè)值范圍并保存于存儲器中。系統(tǒng)程序流程如圖9所示。
4 系統(tǒng)測試
4.1 程序調(diào)試
該程序采用軟硬件結(jié)合通過KeilV5進(jìn)行的方式,對各個模塊進(jìn)行單獨(dú)測試并進(jìn)行參數(shù)調(diào)試和分析。隨后,整合各個模塊,完成功能和性能調(diào)試。在確認(rèn)各模塊的供電電壓是否正常的同時檢測異常情況。若發(fā)現(xiàn)異常,需要進(jìn)行原因分析。編譯簡單的程序進(jìn)行單項功能的確認(rèn),例如驗證光電傳感模塊是否正常工作,確認(rèn)是否按預(yù)期進(jìn)行盲盒識別,預(yù)設(shè)的字符是否在液晶屏幕進(jìn)行正常顯示等。對各個模塊的功能進(jìn)行逐個調(diào)試,具體可參考表1。
4.2 實驗結(jié)果
基于上文原理分析和介紹,我們基于硬幣盲盒識別系統(tǒng)設(shè)計了對1元、5角、1角硬幣單獨(dú)放置及其組合進(jìn)行測量的測試。
測量條件:在線圈上放置一個大小適當(dāng)?shù)拿ず欣锩娣胖么郎y硬幣,使線圈和硬幣之間保持1mm間距。同時,在線圈上做好標(biāo)記使得每一次放置硬幣的位置相同。
測量方法:首先進(jìn)入識別分析模式,每一種硬幣選出8枚(每種硬幣的年份不同),每枚硬幣隨機(jī)檢測200次,再將硬幣進(jìn)行隨機(jī)分組測試。然后通過寫入的學(xué)習(xí)模式將不同硬幣組合的特征值范圍記錄并保存下來,測試過程樣圖如圖10所示。
首先為單個硬幣的保存識別中特征值的記錄表。無盲盒狀態(tài)下初始特征值為4299,當(dāng)放置硬幣盲盒時特征值會減少,減少程度隨著硬幣組合的不同而不同。初步數(shù)據(jù)表如表2。其中文字組合先后順序表示硬幣的位置順序。如1元1角為1元在上方、1角在下方。
通過數(shù)據(jù)清洗和初步處理后的數(shù)據(jù)可以看出實際操作中會出現(xiàn)錯誤數(shù)據(jù),錯誤數(shù)據(jù)是由客觀和硬件因素引起的小幅度變化,此數(shù)據(jù)可以忽略,下面對處理后的數(shù)據(jù)再進(jìn)行深度挖掘可以得到不同組合對應(yīng)的標(biāo)準(zhǔn)值的均值,方差、標(biāo)準(zhǔn)差和標(biāo)準(zhǔn)差系數(shù),數(shù)據(jù)挖掘效果如表3所示。
通過標(biāo)準(zhǔn)差系數(shù)的計算可以看出每個硬幣組合的特征值大致處于某個小范圍波動,若將以這個范圍作為硬幣種類的識別范圍,在進(jìn)行硬幣檢測時可以得到較為準(zhǔn)確的識別結(jié)果。接下來將這些特征范圍通過學(xué)習(xí)模式寫入記錄并保存下來,然后對這些硬幣種類若干枚硬幣進(jìn)行識別測試,每種硬幣類型有10個樣本,重復(fù)測試20次。對實驗檢測結(jié)果進(jìn)行統(tǒng)計、識別結(jié)果記錄以及識別正確率記錄,檢測結(jié)果如表4所示。
由表4可知,最終實驗識別率最終都在92%以上,其中2種硬幣類型識別率達(dá)95%及以上,硬幣盲盒識別準(zhǔn)確率很高。后續(xù)將不斷優(yōu)化精度,使性能更好發(fā)揮。根據(jù)實驗得出的數(shù)據(jù)可視化折線圖如圖11所示。
5 結(jié)論
本硬幣盲盒識別系統(tǒng)以STM32單片機(jī)為主控,使用E18-D80NK光電開關(guān)傳感器、電渦流傳感器實現(xiàn)硬幣盲盒特征值的采集。由OLED液晶屏系統(tǒng)展示當(dāng)前數(shù)據(jù)。該系統(tǒng)通過硬件與軟件部分的設(shè)計與制作, 方法得當(dāng),達(dá)到實驗?zāi)繕?biāo)。該系統(tǒng)可以有效地識別大多數(shù)情況下的硬幣,在實際生活中具有重要意義。