殷佳寶 , 韓四滿 , 祁學(xué)祥 , 朱永琪
(寧夏工商職業(yè)技術(shù)學(xué)院,寧夏 銀川 750021)
目前,學(xué)校各類工科類專業(yè)實(shí)訓(xùn)室工具存放多以工具箱為主,然而工具箱內(nèi)并未對各類工具進(jìn)行明確的區(qū)域劃分,致使工具箱中工具多是雜亂無章的[1],對于學(xué)校的工具管理員來說是一項(xiàng)繁重的工作。為了解決企業(yè)和學(xué)校當(dāng)中煩瑣的發(fā)放和收納管理工具的問題,項(xiàng)目小組設(shè)計(jì)了一種基于Arduino 開源電子原型平臺的智能工具箱。通過壓力傳感器、RC522射頻傳感器、按鍵模塊、顯示模塊、蜂鳴器等,實(shí)現(xiàn)智能工具箱的密碼開鎖、工具檢測、工具缺失報(bào)警等功能。
系統(tǒng)總體設(shè)計(jì)方案如圖1所示。本系統(tǒng)主要由Arduino UNO開發(fā)板、傳感器(壓力傳感器、RC522射頻傳感器)、按鍵模塊、顯示模塊、繼電器、電磁鎖、蜂鳴器組成[2]。系統(tǒng)供電有三種方式:1)電源插座供電;2)由外部電池供電,電池連接電源連接器的GND和VIN引腳;3)USB接口供電。當(dāng)外部直流電源接入電源插座時,可以通過VIN向外部繼電器和電磁鎖供電;也可以通過此引腳向UNO開發(fā)板直接供電;VIN有電時將忽略從USB或者其他引腳接入的電源。通過主板與壓力傳感器、RC522射頻傳感器、按鍵模塊相連,實(shí)現(xiàn)工具的重量檢測和密碼設(shè)置。工具使用者通過按鍵模塊輸入密碼,打開工具箱獲得使用權(quán)限。當(dāng)工具使用完畢閉合工具箱后,通過顯示模塊顯示工具箱內(nèi)工具是否齊全,若工具有缺失則有蜂鳴報(bào)警聲,便于提醒工具管理者檢查工具情況。
圖1 系統(tǒng)總體設(shè)計(jì)方案
工具箱只允許有權(quán)限的人打開。此功能有利于追蹤使用工具箱的人,若工具有損壞則可以確定目標(biāo)。
通過設(shè)定工具箱內(nèi)部工具類型、工具位置、工具數(shù)量,在特定位置安裝檢測元件,用于檢測工具的特征點(diǎn),用于檢測工具是否按要求歸位、是否齊全。若工具缺失或者擺放不到位,關(guān)閉工具箱時報(bào)警,不允許關(guān)閉,顯示缺失工具類型。通過警報(bào)聲提醒工具使用者及管理員,管理人員只需處理有報(bào)警情況的工具箱,便于管理人員監(jiān)管工具,減輕管理人員的工作強(qiáng)度,同時減少工具的丟失,實(shí)現(xiàn)工具的精細(xì)化管理,并更加有效地提高了工具損壞后的追查效率。
本研究選用Arduino UNO開源平臺作為核心部件,其主要優(yōu)勢在于性價比高、便捷靈活、方便上手,配合外圍器件傳感器、控制開關(guān)、LED屏等,任何稍有電子電路基礎(chǔ)的人都可以基于這個平臺快速搭建出具有各種有趣功能的實(shí)用電子電路。Arduino UNO開發(fā)板以ATmega328 MCU控制器為基礎(chǔ),有6個模擬輸入,14個數(shù)字輸入/輸出管腳,可以由程序自己定義為輸入或者輸出,還可以外接各種擴(kuò)展板,連接各種功能的傳感器,可拓展性很大。Arduino UNO集成開發(fā)環(huán)境為Arduino IDE,使得編寫代碼以及將代碼上傳到板上非常容易。
為了簡化硬件接線,選用開發(fā)板配套的傳感器擴(kuò)展板 V7.1,把Arduino的端口擴(kuò)展成直插3P傳感器模塊,14個數(shù)字口(6個PWM口),6個模擬口,豐富的通信和存儲模塊,外部電源擴(kuò)展為Arduino開發(fā)板負(fù)載持續(xù)供電,擴(kuò)展板角落接線柱為主控器和擴(kuò)展板供電,中部接線柱為數(shù)字口上的舵機(jī)供電[3]。圖2為Arduino主板。
圖2 Arduino主板
壓力傳感器選擇電阻應(yīng)變片式壓力傳感器。它是通過粘貼在彈性敏感元件上的應(yīng)變片的阻值變化來測量壓力值的,這樣就把彈性的機(jī)械力轉(zhuǎn)化為電阻應(yīng)變片的阻值變化[4]。把4個電阻應(yīng)變片按照四臂全橋的方式進(jìn)行連接,兩輸入端施加一定的電壓值,兩輸出端輸出的共模電壓隨著橋路上電阻阻值的變化增加或者減小,找到壓力變化和輸出共模電壓變化的對應(yīng)關(guān)系,就可以通過測量共模電壓得到壓力值,再由HX711模數(shù)轉(zhuǎn)換器將采集到的模擬信號轉(zhuǎn)換為數(shù)字信號交給Arduino UNO板進(jìn)行處理,對其他外部元件進(jìn)行控制[5]。圖3為 HX711數(shù)模轉(zhuǎn)換傳感器。
圖3 HX711數(shù)模轉(zhuǎn)換傳感器
在開鎖的選型上采用了密碼輸入和身份驗(yàn)證兩種方式開鎖。密碼輸入解鎖工具箱時需要權(quán)限輸入,在保證滿足功能的前提下選擇性價比更高的4×4矩陣鍵盤模塊,需占用8個標(biāo)準(zhǔn)的I/O口,用于連接Arduino UNO主板的4~11數(shù)字串口,實(shí)現(xiàn)開發(fā)板與按鍵間的通信,完成工具箱的解鎖功能;身份驗(yàn)證則采用射頻傳感器進(jìn)行身份ID認(rèn)證進(jìn)行開鎖,當(dāng)ID磁卡進(jìn)入到磁場后,接收讀寫器發(fā)出的射頻信號,憑借感應(yīng)電流所獲得的能量發(fā)送出存儲在芯片中的產(chǎn)品信息,讀寫器讀取到信息并解碼后,送至處理單元進(jìn)行數(shù)據(jù)處理,將處理完成的身份信息發(fā)送給Arduino UNO板,主板在得到認(rèn)證成功的信息后,再對電磁鎖進(jìn)行開鎖動作[6]。圖4為本系統(tǒng)使用的RC522射頻傳感器。
圖4 RC522射頻傳感器
使用Fritzing 軟件繪制系統(tǒng)電路圖。圖5為系統(tǒng)電路圖,該電路圖只以一種工具的檢測、報(bào)警為例繪制,為了接線方便、清晰,使用面包板完成,并加入二極管使實(shí)驗(yàn)現(xiàn)象更加直觀。
圖5 系統(tǒng)電路圖
系統(tǒng)軟件設(shè)計(jì)流程如圖6所示。系統(tǒng)上電開機(jī)后,首先需要進(jìn)行初始化,然后進(jìn)入待機(jī)模式,紅色指示燈亮,當(dāng)使用者需要打開工具箱時,輸入身份賬號或者刷身份卡,認(rèn)證成功后電磁鎖打開并亮起綠色指示燈,則可以取用工具;若認(rèn)證失敗則電磁鎖不會開啟,閃爍黃色指示燈并發(fā)出警報(bào)。當(dāng)歸還工具后合上工具箱蓋子時需輸入1,工具箱進(jìn)行自檢,確認(rèn)工具是否全部歸還,若未全部歸還則亮紅色指示燈并發(fā)出警報(bào),管理員利用權(quán)限再次打開工具箱檢查工具,如出現(xiàn)誤報(bào)警的情況,只需管理員復(fù)位即可;若出現(xiàn)丟失,及時查找追回或者記錄,實(shí)現(xiàn)工具的精細(xì)化管理。
圖6 系統(tǒng)軟件設(shè)計(jì)流程
在Arduino程序運(yùn)行時首先要調(diào)用setup()函數(shù),用于初始化變量、設(shè)置針腳的輸出輸入類型、配置串口、引入類庫文件等。本系統(tǒng)定義了波特率、監(jiān)視管腳、工具最大重量、指示燈接口、繼電器接口等,每次Arduino 上電或重啟后,setup()函數(shù)只運(yùn)行一次[7]。圖7為部分主程序。
圖7 部分主程序
在主程序setup()函數(shù)中初始化和定義變量,然后在圖8所示的循環(huán)運(yùn)行程序中執(zhí)行l(wèi)oop()函數(shù)。loop()函數(shù)在程序運(yùn)行過程中不斷地循環(huán),通過該函數(shù)將數(shù)值動態(tài)反饋給Arduino主程序[8]。循環(huán)程序主要是用于壓力傳感器檢測工具,當(dāng)幾個檢測點(diǎn)檢測到工具,并達(dá)到設(shè)定工具的重量時檢測成功,若未檢測到工具或者工具重量不滿足要求,則檢測失敗[9-10]。
圖8 循環(huán)運(yùn)行程序
智能工具箱系統(tǒng)搭建完成后,通過試驗(yàn)可實(shí)現(xiàn)工具箱的解鎖、工具檢測、報(bào)警等功能。本系統(tǒng)設(shè)計(jì)的工具箱按照不同功能和工具箱中
固定位置存放指定工具,如要改變工具箱的功能,需要重新調(diào)整工具箱內(nèi)部結(jié)構(gòu),調(diào)整重量。該系統(tǒng)設(shè)計(jì)思路可復(fù)制、可遷移,可為相關(guān)產(chǎn)品設(shè)計(jì)人員提供思路。