潘迪,齊慶堃,陳玉斌,薛佳雨,崔光浩
(桂林信息科技學(xué)院,廣西桂林,541004)
當(dāng)今社會的科技飛速發(fā)展,人們的生活中越來越多的物品正朝著更加智能化、人性化的方向發(fā)展?;ヂ?lián)網(wǎng)技術(shù)的興起和電子商務(wù)的普遍化也影響了硬幣和紙幣。雖然使用量和流通量都在下降,但人們在乘坐公交車、地鐵或購買小額的商品時,已經(jīng)習(xí)慣使用硬幣和紙幣來完成交易。
我們經(jīng)常面臨以下問題:想買一些小東西,但零錢不夠,須從存錢罐內(nèi)取錢。當(dāng)打開它時,發(fā)現(xiàn)很多零錢,有一元,五角,一角的硬幣和小面額紙幣非常零散,我們要找到自己所需的現(xiàn)金非常麻煩。所以硬幣和紙幣的存儲是非常重要的,但普通的存錢罐只有簡單存放硬幣的功能,卻沒有分揀和清點不同金額的功能。在這個項目中,設(shè)計的智能電子儲蓄存錢罐完成了多項功能,讓普通存錢罐變得更加智能化、多樣化。
與傳統(tǒng)存錢罐相比,本項目制作的智能電子儲蓄罐具有很多優(yōu)勢。普通存錢罐只有存放硬幣的功能,不能顯示硬幣和紙幣數(shù)量,但是本項目的存錢罐中的全部金額可以準(zhǔn)確顯示在液晶顯示屏上,讓用戶更容易知道自己存有多少錢。并且將不同面額的硬幣和紙幣分開儲存,還可以在屏幕上顯示幣種和數(shù)量。為了避免電量不足的問題,本設(shè)計不僅可以通過電池供電,還可以通過USB接口供電,電池也可以更換。
本設(shè)計的控制中心是STM32單片機,包括電源、硬幣識別、紙幣識別、顯示模塊和存儲模塊,組成的智能電子儲蓄存錢罐。面對我國目前流通的硬幣和紙幣,這款產(chǎn)品具有面額識別、存款金額統(tǒng)計、時間顯示、鬧鐘等基本功能,與傳統(tǒng)存錢罐相比,本項目制作的智能電子儲蓄罐具有更多優(yōu)勢。如外觀設(shè)計的多樣性,產(chǎn)品的多功能性和實用性等等,讓本產(chǎn)品在市面上有了更大的競爭力。
外觀通過3D建模設(shè)計,有別于市面上傳統(tǒng)的存錢罐采用陶瓷和塑料材質(zhì),該設(shè)計由樹脂材料制成,提高了產(chǎn)品的耐用性,并且區(qū)別于普通儲蓄罐單一的外觀,本設(shè)計可使用3D建模制作出不同的外觀,可根據(jù)不同人群的需求進行定制,滿足不同人群的喜好。
單片機處理信號、電機轉(zhuǎn)動運輸零錢、液晶屏顯示、硬幣和紙幣識別模塊的傳感器等功能都需要電源供電才能正常進行。本設(shè)計總電壓為5V,此電壓可以保證在供電安全的情況下使單片機和其他各功能正常使用。在線路方面,為了滿足各模塊的線路連接方便,在設(shè)計智能電子儲蓄罐時,預(yù)留了布線的空間,使布線整齊美觀。最后,本項目的供電方面采用的是可充電鋰電池,取代了一次性使用的干電池,充電方式采用目前很常見的USB口充電法,這大大提高了產(chǎn)品的環(huán)保性和實用性。
關(guān)于硬幣進行真假鑒別,不同于市面上相似產(chǎn)品采用的識別率高的辦法,像有圖像法或電渦流傳感器法,這些辦法成本高、系統(tǒng)復(fù)雜,對條件要求較高,不適合一些小項目使用。本項目通過利用硬幣本身的特性和紅外傳感器進行組合,設(shè)計出一種低成本的硬幣面值識別裝置。硬幣識別模塊是由一個帶有三個不同孔徑的滑道和紅外傳感器組成,硬幣經(jīng)過進入、識別到分類存儲的過程。在設(shè)計此模塊時,我們利用硬幣的慣性和直徑大小不同這一屬性,設(shè)計出一個帶有不同孔徑的滑道,讓硬幣在滑道上從不同大小的孔徑中滾落,以此實現(xiàn)硬幣識別的功能。此模塊在投幣口設(shè)有一段導(dǎo)軌,滑道的寬度為2mm,使用電動驅(qū)動器來驅(qū)動轉(zhuǎn)輪,隨著轉(zhuǎn)輪的轉(zhuǎn)動,投入的硬幣可以一個接一個地進入滑道,并準(zhǔn)確落入相應(yīng)的位置。19mm、20.5mm、25mm的開孔對應(yīng)1角、5角、1元這3種不同尺寸,滑道與地面的傾斜角度為61°,可將三種不同面值的硬幣分類在設(shè)定的收納盒內(nèi)。不同的硬幣在掉落時通過傳感器檢測區(qū)域。傳感器接收到信號后,會將傳感器產(chǎn)生的信號發(fā)送給單片機,單片機執(zhí)行計數(shù)并由顯示模塊顯示。
本模塊采用的是紅外對射式光電開關(guān)傳感器,由發(fā)射端發(fā)出紅外射線,接收端接收。光電開關(guān)是通過把光強度的變化轉(zhuǎn)換成電信號的變化來實現(xiàn)控制的。 光電傳感器有三部分構(gòu)成,它們分為:發(fā)送器,接收器和檢測電路。 發(fā)送器對準(zhǔn)目標(biāo)不間斷地發(fā)射光束,有物體經(jīng)過光線切斷,便輸出信號。通過檢測電路,濾出有效信號,以此實現(xiàn)對硬幣的檢測。
紙幣識別模塊不同于硬幣識別模塊,此模塊主體是由送鈔口、顏色傳感器組成,由電機完成向前或向后傳送紙幣。此模塊設(shè)計的槽口自動吞鈔,只需將鈔票的前緣插入吞幣口的前緣,它就會送至識別區(qū)域。兩個TCS3472顏色傳感器位于紙幣識別區(qū)域。每個人民幣顏色的不同,根據(jù)讀取識別出的RGB值,對比識別不同紙幣的RGB值。比如毛主席領(lǐng)口100元的標(biāo)準(zhǔn)RGB值是#be0f2d。檢測到的鈔票必須在一定范圍內(nèi)進行識別,以顏色識別的方式識別其面值,并統(tǒng)一收集。TB6612FBG 電機驅(qū)動模塊用于控制電機工作,通過H橋驅(qū)動電機前后運動,帶動鈔票進出。識別成功后,電機向前移動吞下鈔票;如果識別失敗,則向反方向移動吐出鈔票。
本模塊使用TCS3472顏色傳感器,通過連接LED,傳感器提供紅色,綠色,藍色(RGB)和清晰光感應(yīng)值的數(shù)字輸出。集成紅外阻擋濾光片可最大限度地減少入射光的紅外光譜成分,并可精確地進行顏色測量。具有高靈敏度,寬動態(tài)范圍和紅外阻隔濾波器。最小化 IR 和 UV 光譜分量效應(yīng),以產(chǎn)生準(zhǔn)確的顏色測量。并且?guī)в协h(huán)境光強檢測和可屏蔽中斷。通過 I2C 接口通信。
此模塊是實現(xiàn)人機交互的模塊,主要是由一個顯示屏構(gòu)成。由單片機控制,除正常顯示時間以及金額變動以外,可與其交互使用一些其他功能,增加了產(chǎn)品的功能。智能電子儲蓄存錢罐顯示與交互模塊,主要用于控制和展示儲蓄罐不同幣種數(shù)量以及儲蓄罐內(nèi)的總金額。屏幕無任務(wù)工作時,運行的是鬧鐘功能,顯示時間和日期,這很好地提升了本產(chǎn)品的實用性。當(dāng)進入訪問界面時,會看到當(dāng)前的存款金額。投幣時,屏幕會實時顯示增加的金額。每種貨幣對應(yīng)的提款時間表和提款金額將顯示在屏幕上,還可以在智能電子儲蓄存錢罐屏幕上看到不同面額的硬幣和硬幣的數(shù)量和總量。這種多樣的顯示方式,是本產(chǎn)品的特色之一,豐富使用者的體驗感。
此模塊由紫外線LED燈構(gòu)成,當(dāng)遇到無法識別的紙幣時,儲蓄罐會通過送鈔口吐出紙幣,可由使用者自行通過點亮紫外線LED燈后驗證紙幣上是否會產(chǎn)生金色水印,再在顯示屏上添加該紙幣,使系統(tǒng)進行計數(shù),用于統(tǒng)計總金額。
硬幣紙幣的存放容器在設(shè)計時,模仿日常生活中抽屜的形狀,設(shè)計出可推拉式的收納盒。項目設(shè)計的硬幣和紙幣存放在可拉出式收納盒中。硬幣一旦通過鑒別模塊并被識別,就會落入對應(yīng)硬幣的收納盒,然后按不同面額分類存放。當(dāng)紙幣通過轉(zhuǎn)移模塊和識別模塊,也會進入對應(yīng)的紙幣收納盒。而存放紙幣的收納盒尺寸略大于100元人民幣,滿足各種面額人民幣存放的需求,拉出抽屜后紙幣會整齊地排列在收納盒里。
本設(shè)計使用 C 作為軟件設(shè)計語言,C語言結(jié)構(gòu)優(yōu)良、可模塊化、易于修改,可以大大提高硬件實現(xiàn)效率。C 語言與其他語言相比,程序語言相對容易學(xué)習(xí),且遵循句子執(zhí)行算法。C語言還提供了許多功能,包括系統(tǒng)創(chuàng)建的和用戶定義, 編譯器提供的主要文件包含可用于程序開發(fā)的許多基本函數(shù)。在使用C語言設(shè)計單片機應(yīng)用系統(tǒng)程序的過程中,將程序模塊化、結(jié)構(gòu)化,對于每一層,它們可以在每個節(jié)點上進行定制,以優(yōu)化程序執(zhí)行效率。
圖形交互界面通過LVGL來執(zhí)行,LVGL集成了占用小、多平臺使用、移植簡單、操作簡單、開源免費等一系列特點。而且LVGL用C語言編寫,可以實現(xiàn)最大的兼容性(與C ++兼容),模擬器可在沒有嵌入式硬件的PC上啟動嵌入式GUI設(shè)計,同時LVGL作為一個圖形庫,它自帶著接近三十多種小工具可以供開發(fā)者使用。因此我們的應(yīng)用程序通過調(diào)用LVGL庫來創(chuàng)建GUI。它包含一個HAL(硬件抽象層)接口,用于注冊顯示和輸入設(shè)備驅(qū)動程序。驅(qū)動程序除特定的驅(qū)動程序外,它還有其他的功能,可驅(qū)動顯示器GPU、讀取觸摸板或按鈕的輸入。
圖形交互界面借助了LVGL框架。LVGL集成了占用小、多平臺使用、移植簡單、操作簡單、開源免費一系列特點。而且LVGL用C語言編寫,可以實現(xiàn)最大的兼容性(與C++兼容),它包含一個HAL(硬件抽象層)接口,用于注冊顯示和輸入設(shè)備驅(qū)動程序。除特定的驅(qū)動程序外,它還有其他的功能,可驅(qū)動顯示器GPU、讀取觸摸板或按鈕的輸入。此外還提供了模擬器可在沒有嵌入式硬件的網(wǎng)頁上啟動進行GUI的設(shè)計和測試。我們的應(yīng)用程序通過調(diào)用LVGL庫的基本按鈕、標(biāo)簽、圖片框、樣式等基本組件來搭建應(yīng)用界面。
程序初始化LVGL界面時,首先提供硬件相關(guān)的LCD顏色數(shù)據(jù)寫函數(shù)和LCD觸控數(shù)據(jù)讀函數(shù),以及界面的布局信息。進入主循環(huán)后,不斷調(diào)用LVGL組件層,由LVGL通過LCD觸控數(shù)據(jù)讀函數(shù)收集觸控信息,計算出點陣界面的顏色值,最后使用LCD顏色數(shù)據(jù)寫函數(shù)將界面更新到硬件上;同時調(diào)用觸控動作相應(yīng)的交互邏輯。LVGL組件、硬件、主循環(huán)和交互邏輯以及LCD數(shù)據(jù)讀寫函數(shù)的層級和界面更新序列圖如圖7所示。
硬幣面值分揀裝置,利用硬幣的直徑、質(zhì)量因面值不同而不同的特性,讓不同面值的硬幣在投入后,在滑道上滑行,在經(jīng)過不同尺寸的方孔時候,分別落入對應(yīng)的硬幣槽當(dāng)中,以此實現(xiàn)不同面額硬幣分類;同時當(dāng)硬幣槽的邊緣安裝的紅外感應(yīng)裝置被落入的硬幣遮擋后,會發(fā)送低電平信號至單片機。程序的輪詢檢測代碼的流程圖如圖8所示。
調(diào)試工作對于項目整個過程而言是必不可少的一環(huán),在針對目前市面上流行的一塊、五毛、一毛不同面值的硬幣,以及對當(dāng)下發(fā)行的不同面值人民幣,進行了逐個多次反復(fù)測試。首先我們根據(jù)3D建模設(shè)計出外殼,對智能電子儲蓄存錢罐進行組裝。在組裝的過程中發(fā)現(xiàn)有些位置需要一些調(diào)整,才能正常進行運行和調(diào)試。在普通實驗室環(huán)境下進行調(diào)試時,從逐個放入不同面值的硬幣開始,測試其能否完成不同面值硬幣的分類存儲和識別。在多次逐個測試之后,開始一次放入多枚相同、不同面值的硬幣進行測試。在不同面值硬幣被分類存儲之后,經(jīng)過紅外傳感器的感應(yīng),單片機接收到信號之后在屏幕上顯示出相應(yīng)的提示信息。在經(jīng)過上百次的測試之后,硬幣的錯誤基本在2%~3%之間,基本實現(xiàn)了硬幣的識別功能。在進行紙幣測試時,在逐個放入一塊、五塊、十塊、二十塊、五十塊、一百塊不同面值的紙幣之后,觀察不同面值紙幣的識別情況??梢酝ㄟ^記錄不同面值的識別、屏幕的顯示情況,在計算感應(yīng)所需要的時間之后,再對紙幣吸收器進行調(diào)整,保證每次放入的紙幣都可以被顏色傳感器感應(yīng)到,并對其進行總額計算,最后調(diào)整智能電子儲蓄存錢罐附加功能的正確運行,以保證智能電子儲蓄存錢罐各項功能運行正常。
表1 硬幣識別準(zhǔn)確率測試
智能電子儲蓄存錢罐旨在幫助使用者解決日常生活中零錢的整理與統(tǒng)計。本項目設(shè)計的產(chǎn)品具有實用性和功能多樣性,在保證存錢罐存錢基本的作用以外,我們添加了更多的功能、設(shè)計更加人性化。顯示屏無任務(wù)時的時間顯示,對不同面額硬幣的分類儲存等特色,這極大程度上增加了實用性,讓本項目相比較普通存錢罐有了更大的競爭力。智能電子儲蓄存錢罐優(yōu)化了儲蓄罐的功能,總體設(shè)計朝著更加智能化、多樣化的方向發(fā)展。
我們所設(shè)計的智能電子儲蓄存錢罐以STM32單片機為控制核心,設(shè)計出由電源模塊、紙幣識別、硬幣識別、顯示和交互模塊以及存儲模塊組成。根據(jù)程序的設(shè)計,智能電子儲蓄存錢罐可以通過分揀模塊和硬幣識別模塊將不同的硬幣送入到滑道上,之后掉入不同尺寸的方孔,使硬幣可以準(zhǔn)確地存放在儲蓄罐中。同時,智能電子儲蓄存錢罐屏幕會準(zhǔn)確及時地顯示不同幣種的金額和總金額。如果用戶需要取款,則有硬幣抽屜和紙幣抽屜可用。綜上所述,我們設(shè)計的智能電子儲蓄存錢罐具有自動識別金額、自動記錄存入金額、設(shè)置總金額顯示的功能。平時用戶可以將智能電子儲蓄存錢罐放置在顯眼的地方,通過顯示功能,時刻提醒著用戶,養(yǎng)成良好的金錢觀。
這種設(shè)計為那些需要滿足使用智能電子儲蓄存錢罐對零錢需求的人提供了一個清晰的思路。這種設(shè)計的優(yōu)點是用途廣泛,經(jīng)久耐用,方便人們在日常生活中統(tǒng)計和存取零錢。當(dāng)用戶在使用過程中,本產(chǎn)品設(shè)計的多種功能可以滿足用戶對智能儲蓄存錢罐的需求,給用戶帶來方便。