一、 項目概述 (介紹項目設計背景及目的) 隨著現在各種智能儀器的大量的普及和應用,人的參與越來越少,大量的產品都是智能化發展。在此也出現了許多的無人販貨機。本產品的目的就是為了給無人販售機提供支持。該系統可以準確的識別并計算出本次投幣的所有種類和個數,精確的在 顯示器上提示顧客已投的錢數和需要在投入的硬幣數。同時,如果顧客投幣時沒有投我們市面上流通的如1 角(新舊款)、五角(新舊款)、一圓(新舊款),我們會在顯示器提示顧客投入了假幣并發出相應的警告信息。另外本產品我們還設計了一個擴展應用,就是應用于公交車上的投幣箱內,這樣我們就可以省去大量的人力去清點一天所收入的硬幣數目。二、 項目系統框架圖 1. 軟件系統框架圖 file:///C:\Users\YUQ~1.Z\AppData\Local\Temp\ksohtml\wps_clip_image-19628.png 三、 工作原理介紹 本設計的突出點和創新點區別與以往的 機器視覺來實現識別硬幣,我們隊利用稱重來設計一個類似于 電子稱的一個整體完善的系統。 來前端用電子稱中常用的 電阻應變片來進行對所投硬幣的重量測量。之后在采集前端采用 AD620儀表放大器和LM358N來對電阻應變片輸出的微弱模擬信號進行兩級放大,保證我們的AD芯片可以清晰的分辨不同種類硬幣間的細微差別。便于軟件處理。然后采用ADS8332這種高精度低功耗16位SPI接口的芯片對模擬信號進行模數轉化,同時ADS8332的電壓基準源我們采用RFE5025和TI的軌對軌放大器來提供超高精度的電壓基準,保證了AD采集的精度。軟件設計方面,我們的主要算法是根據aX+bY+cZ=ALL,這個公式來進行推理的。這種算法就是根據總共我們得到的當前硬幣的總重量。同時我們也是已知了每一個硬幣的重量大致是多少,這樣這個三元一次方程組中我們就可以得到了X、Y、Z、ALL這四個已知量。這里我們預先在程序中定義幾個我們已知的硬幣重量相關參數,如果出現不符合這些參數的硬幣,我們既可以判斷出是假幣。這里我們為了減少誤差,提高精度,我們采用的硬幣都是假設沒有磨損,沒有污漬的硬幣。這樣可以稍微的簡化了一下我們的數學模型。當然在精度方面可能還是會有所改進。這樣剩下來的軟件部分只需要利用枚舉算法和窮舉算法來推導出符合條件的一組或幾組的a、b、c值。然后在通過選優算法,選出最大可能出現的數據來。然后通過我們外接的5110液晶液晶顯示出來。 四、 項目實現要點、難點分析 實現: 1、準確的識別單個硬幣的種類,即是1角,5角,1圓 2、準確的識別同一類別的多個硬幣的總數(有一個誤差上限,即硬幣到達一定個數會出現誤差)。 3、在誤差率為4%的情況下實現多種硬幣混合后,可以識別里面有多少個1角, 5角,1圓,并顯示總數。(PS:誤差率為100次中出現4次錯誤)。 4、如果有人投入不是市面上流通的硬幣,即為假幣,我們會用聲光電設備進行報警并提示。 難點分析: 由于硬幣之間的差別很微小,而我們采集到得信號誤差有限,所以在硬幣多的情況下誤差累積會對我們整個算法產生影響。影響我們得到準確的一組數據。同時該系統無法支持對大量硬幣的采集,因為數量越多,誤差越大。 五、 項目設計預計效果 預計可以實現上述的基本功能,可能在20個硬幣以內可以精確的測量識別出種類,硬幣過多的話誤差嚴重變大,難以實現多硬幣,跟我們系統的硬件設計和軟件優化有關。同時估計到交作品的截止期限我們可以最最大努力減少硬件帶來的系統誤差,進一步優化我們的軟件。讓我們的誤差率降低,并且可以測量更多的硬幣。我們最需要也是最難解決的就是精度問題。我們會慢慢攻克的!
|