陳芳琪,林子鈺,黃凱鴻,周雨婧,趙建柱
(中國農業大學 工學院,北京 100083)
摘要:設計了一種基于Arduino開發板的紙幣整理、分類控制系統。該系統采用ArduinoMega2560單片機作為控制核心,結合步進電機驅動板、顏色傳感器、顯示屏、語音播放模塊等組成整套系統,實現了紙幣整理、分類、顯示、語音播報等功能。該系統利用Arduino IDE開發環境編寫控制程序,通過模擬人工整理紙幣過程實現紙幣整理,通過顏色傳感器采集數據以及算法控制,實現紙幣分類,并通過實驗證明了設計的可靠性、穩定性。
關鍵詞:紙幣整理;Arduino;紙幣分類;顏色識別
0引言
我國無人售票公交車的付費,相當一部分是由乘客使用小面額紙幣或硬幣自行投放,錢幣的清點工作是一個難題,特別是紙幣的分類需要大量的人工完成,缺少自動化的分選裝置,國外的紙幣清分機結構復雜、價格昂貴。本文提出了一種全自動紙幣整理分類一體機,可實現紙幣整理、分類、顯示等功能,具有良好的應用前景。
1系統方案設計
紙幣整理部分:模仿人工整理紙幣的過程:(1)將散亂的紙幣豎起;(2)用手指或者手掌將豎直或者傾斜的紙幣撥倒;(3)用手指或者手掌將撥倒的紙幣推整齊。該系統整理紙幣分4步完成:(1)紙幣順斜板滑下;(2)動板往復運動震動紙幣;(3)上撥針撥倒豎直或傾斜的紙幣;(4)下撥針將撥倒的紙幣推至左側。
紙幣分類部分:不同紙幣之間顏色存在明顯差異,通過顏色傳感器檢測每種紙幣不同的紅、綠、藍三通道的顏色值(RGB),分析和比較不同紙幣RGB的特性,實現紙幣分類。
2系統結構
2.1紙幣整理機構
紙幣順斜板滑下,進入豎直的兩板之間,其中一個為動板,另一個為定板。通過控制步進電機絲桿滑臺控制動板作水平往復直線運動,使兩板間距周期變化,紙幣在重力作用下繼續下落。動板往復運動的同時,上端步進電機帶動同步帶上的撥針將豎直的紙幣撥倒,下端步進電機帶動同步帶上的撥針將紙幣自右端推至左側。整理好的紙幣通過控制舵機軸的旋轉落入下面的紙幣分類機構。
2.2紙幣分類機構
紙幣上方顏色識別傳感器負責采集信號,不同面額的紙幣對應不同的RGB,采用8G4R4B二值化[1]進行RGB數值處理,使之產生顯著差別,從而實現不同紙幣的分類。通過控制步進電機轉動捻鈔輪,實現紙幣的單張輸出,每次識別到當前紙幣的面額之后,通過控制下方步進電機滑臺,帶動固定在滑臺上方的收集盒前進或后退,使不同的紙幣落入對應的收集盒中。該系統結構框圖如圖1所示。
3硬件部分
采用TCS3200顏色傳感器收集紙幣的RGB數據,ATmega2560芯片進行數據處理,Ramps1.4拓展板和a4988驅動板作為步進電機驅動拓展板,組成一個基于Ardunio Mega 2560控制的系統。通過控制各接口輸出的高低電平來控制各個部件,通過多個數字接口進行信號傳輸,按時序通過I/O接口控制各部件工作狀態。對在正常清點中各傳感器接收到的信號進行取樣、識別,并寄存起來,作為檢測的依據,同時根據比較算法得到該面值紙幣的特征信號。清點紙幣時,把顏色傳感器接收到的信號參數與原寄存起來的信號參數進行比較、判斷,發出指令,步進電機驅動絲桿滑臺移動,將不同紙幣分別傳送到對應的紙幣收集盒中。
3.1單片機單元
系統采用Arduino Mega2560作為核心電路板,其最大的特點就是具有多達54路數字輸入輸出,特別適合以Mega2560處理器為核心的需要大量I/O接口的設計,同時具有54路數字輸入/輸出口(其中16路可作為PWM輸出),16路模擬輸入,4路UART接口,1個16 MHz晶體振蕩器,1個USB口,1個電源插座,1個ICSP header和1個復位按鈕[2]。鑒于Arduino Mega 2560強大的功能,選擇其作為紙幣整理分類機的核心處理器。紙幣整理分類機包含多個部件,其中5路步進電機驅動板占用10個數字I/O接口,顏色傳感器占用一個中斷0引腳、4個數字I/O接口,語音模塊占用2個數字I/O接口,顯示屏占用2個數字I/O接口。Arduino Mega 2560可滿足該紙幣整理分類機的數據處理需求。系統所用主控板如圖2所示。
3.2顏色傳感器單元
TCS3200可編程的彩色光頻率轉換器適合于色度計測量應用領域,根據三原色感應原理,如果已知構成各種顏色的三原色值,即可知道所測物體的顏色。對于TCS3200 ,當選定一個顏色濾波器時,它只允許某種特定的原色通過,阻止其他原色通過[3]。例如,當選擇紅色濾波器時,入射光中只有紅色可以通過,藍色和綠色都被阻止,這樣就可以得到紅色光的光強;同理,選擇其他濾波器就可以得到藍色光或綠色光的光強。通過這三個值,就可以分析投射到TCS3200 傳感器上光的顏色。
通過顏色傳感器得到紙幣RGB值后,再經過8G4R4B二值化處理數據,并根據數據特征,進行紙幣分類。系統所用的顏色傳感器如圖3所示。
3.3顯示單元
系統選擇 LCD1602液晶顯示器,其具有微功耗、體積小、顯示內容豐富、超薄輕巧的諸多優點,可以顯示字符和數字,顯示容量為 2行16個字。在系統中,將第一行的16個字分為“1yuan 5jiao zong”,同時將不同紙幣的數量、總金額對應到第二行的16個字。在數據通信方面,采用兩條雙向的串行線來實現數據的傳輸(I2C協議),極大地簡化了電路,使整個系統簡單而不失功能。
3.4語音播放單元
本系統選擇mini voice M3語音播放模塊,該語音播放模塊體積小、集成度高、音量大、可靠穩定,可以通過單片機單元選擇播放存入存儲卡內的指定音頻[4],如發送指令“play,0001,$ ”便播放0001號文件,具有操作簡單、可控性高的優點。該系統采用異步串口通信UART接口2傳輸數據[4],實現語音提示、語音播報總數量的功能。
3.5拓展板單元
Ramps1.4 連接強大的Arduino MEGA平臺,并擁有充足的擴展空間。除了步進電機驅動器接口外,Ramps 1.4提供了大量其他應用電路的擴展接口,是一款更換零件方便,擁有強大的升級能力和擴展模塊化設計的Arduino擴展板。除五路步進電機的脈沖寬度調制(PWM)信號接口外,自定義LCD1602屏、顏色傳感器、mini voice M3語音播放模塊的數字I/O接口,將所有接口集中在Ramps1.4拓展板上實現了裝置一體化、自動化。
3.6步進電機驅動單元
A4988是一款帶轉換器和過流保護的DMOS微步驅動器,該產品可在全、半、1/4、1/8及1/16步進模式時操作雙極步進電動機,輸出驅動性能可達35 V及2 A,A4988包括一個固定關斷時間電流穩壓器,該穩壓器可在慢或混合衰減模式下工作。系統所用步進電機驅動如圖4所示。
系統利用Arduino IDE開發環境編寫控制程序。該開發環境基于C語言,主要的參數功能都已經函數化,直接調用函數,方便實現各模塊的功能[5]。該程序采用模塊化編程,程序由系統主程序、初始化子程序、PWM步進電機調速子程序、LCD1602液晶顯示子程序、語音提示子程序和顏色傳感器識別子程序組成。
主系統程序流程圖如圖5所示。
5結論
本文提出了一種可對紙幣進行整理和分類的實現方法。通過動板往復運動,上撥針撥倒紙幣,下撥針推齊紙幣實現紙幣的整理,通過顏色傳感器測得紙幣RGB值,通過8G4R4B二值化處理數據,并根據二值化數據特征進行紙幣分類。該紙幣整理分類裝置結構簡單,成本低,可減少人力物力的消耗,達到較佳的紙幣分類效果,具有良好的應用前景。
參考文獻
?。?] 蔡世捷.基于MATLAB的樹木圖像分割研究[D]. 南京:南京林業大學,2005.
[2] 崔陽,張維華,白云峰.一種基于Arduino的智能家居控制系統[J].電子技術應用,2014,40(4):123-125.
[3] 張菁,楊應平,章金敏,等.基于TCS3200D的顏色再現與分類[J]. 武漢大學學報(工學版),2013,46(2):257-260.
?。?] 馬光.單片機原理及應用[M].北京:機械工業出版社,2006.
?。?] 程晨.Arduino 開發實戰指南:AVR 篇[M].北京:機械工業出版社,2012.