基于STM32F103VE的智能信箱系統(tǒng)的設(shè)計與實現(xiàn)
引言
為了解決傳統(tǒng)信箱容易發(fā)生的鎖孔堵塞、鑰匙丟失、信件丟失、浪費空間、垃圾廣告等問題,保護信件的安全、有效,我們設(shè)計了一個智能信箱系統(tǒng)。它采用封閉式管理和細化空間、動態(tài)分配的存儲理念,增加了安全性,提高了用戶數(shù)量。它還具有身份驗證、來信提示、網(wǎng)絡(luò)查詢等功能,可以廣泛應(yīng)用于小區(qū)、學(xué)校、醫(yī)院、企業(yè)等。
一、 整體構(gòu)架
智能信箱的系統(tǒng)構(gòu)架主要有兩部分,即控制系統(tǒng)與機械設(shè)備。控制系統(tǒng)用于保存和管理用戶與信件的信息,下達“存”或“取”的命令給機械設(shè)備,它包括主控芯片模塊、存儲器、觸摸屏、網(wǎng)絡(luò)接口、實時時鐘、電磁繼電器、步進電機驅(qū)動器等;機械設(shè)備則負責執(zhí)行控制系統(tǒng)下達的命令,完成信件的存取過程,它包括帶步進電機的線性十字滑軌以及用于存放信件的存儲陣列等。
二、 存/取信件的具體實現(xiàn)
存/取信件是系統(tǒng)的主要職能。用戶執(zhí)行存信或取信操作時,系統(tǒng)會進入存儲器中查詢相關(guān)的用戶信息和存儲信息,根據(jù)一系列算法,算出十字滑軌上滑臺的運動軌跡,用電機驅(qū)動滑臺按照軌跡執(zhí)行存/取信任務(wù),完成任務(wù)后,系統(tǒng)自動更新存儲器中的信息,保持與存儲陣列內(nèi)的情況一致。
2.1 線性十字滑軌
線性十字滑軌是信箱系統(tǒng)當中實施機械動作的部分,為了保證系統(tǒng)的精確性,我們采用了滾珠絲杠十字滑軌。它由兩副正交安裝的滾珠絲杠副和滑臺組成,水平滾珠絲杠副安裝在豎直滾珠絲杠副上,形成一個平面直角坐標系,信件就被存儲在這個坐標系里。每副滾珠絲杠副都由一個步進電機來驅(qū)動,通過控制輸出脈沖個數(shù)來控制角位移量,再通過滾珠絲杠副將角位移轉(zhuǎn)換為線性位移,達到準確定位的目的。
2.2 脈沖數(shù)控制算法
在脈沖輸出上,我們采用了PWM(Pulse Width Modulation)脈沖輸出。當系統(tǒng)進入存/取信件任務(wù)時,系統(tǒng)讀出目標單元格在存儲陣列中的橫縱坐標值,計算出兩幅滑軌的運行距離,從而確定每個步驟必須輸出的脈沖數(shù)量。脈沖數(shù)的計算公式:
其中P為脈沖數(shù),C為當前步驟操作的坐標值,D為單位坐標值的實際距離,S為滾珠絲杠的導(dǎo)程,α為步進電機的步進角,一般為1.9°,n為步進電機驅(qū)動器的細分數(shù)。
在編程實現(xiàn)上,我們使用了兩個定時器,其中TIM2作為脈沖計數(shù)器,TIM3作為PWM發(fā)生器,工作原理闡述如下:①將TIM3設(shè)置成PWM輸出模式,不斷地輸出PWM脈沖序列;②將TIM2設(shè)置成外部觸發(fā)模式,用作脈沖計數(shù)器;③將TIM3的PWM輸出連接到TIM2的脈沖輸入上,使能TIM3,就可開始記數(shù);④將TIM2的溢出值設(shè)定為步進電機所需的脈沖數(shù)P,一旦計得所需脈沖數(shù),立即進入中斷,關(guān)閉TIM3的使能,停止脈沖輸出,這個過程遠快于PWM的輸出頻率,可以實現(xiàn)精確控制輸出脈沖數(shù)。
2.3 空間管理方法
傳統(tǒng)信箱采用的是一人一格的平均分配方式,但每人信件數(shù)量往往不同,且當今網(wǎng)絡(luò)高速發(fā)展,信件數(shù)量大幅減少,傳統(tǒng)信箱的分配方式無疑造成了空間上的浪費。我們采用細化空間、動態(tài)分配的管理方式,將每一格尺寸縮小,以每日每戶平均來信數(shù)量為準,如有超過,則另行開辟空閑單元繼續(xù)存放,同時,自動記錄所存信件的用戶信息;因此信箱整體規(guī)??s小的同時,支持更多用戶的使用,便于信件的集中管理,解決傳統(tǒng)信箱分散、難管理的問題。[!--empirenews.page--]
2.4 存儲陣列設(shè)計
系統(tǒng)用存儲陣列來存儲信件,當中按行列分布了多個存儲單元,每個單元由兩部分空間組成,一部分存放信件,稱為存儲板,另一部分作為行運送軌道的一部分,排列在存儲板的正上方。圖1是系統(tǒng)的模型示意圖,根據(jù)它可以進一步說明如何實現(xiàn)信件的存儲。
存儲板和滑臺的形狀是相互耦合的,它們即能夠托載信件又能相互通過來實現(xiàn)信件的抬起和放下。這里以存儲信件為例,說明其具體過程,過程分為5步:①信件被放置在存/取信口的滑臺上,豎直滑軌帶動水平滑軌和滑臺通過運送通道向下移動到目標行;②水平滑軌帶動滑臺通過行運輸軌道來到目標存儲板上方;③確保到位后,豎直滑軌再次下移,滑臺穿過存儲板,將信件放置到了存儲板上;④滑軌帶動滑臺回到存/取信口。這樣,經(jīng)過兩組滑軌的輪流操作,就完成了一次存信操作,并開始等待下一次操作。同理可知,取出信件的過程正好為該過程的逆操作,這里不再贅述。
三、 控制系統(tǒng)
3.1 硬件構(gòu)成
本系統(tǒng)的主控芯片為STM32F103VE單片機,內(nèi)置IIC、SPI總線接口和512K閃存等,屬于ARM v7-M里的Cortex-M3系列。硬件部分還包括觸摸屏模塊、實時時鐘模塊、存儲器模塊、電機配置模塊、電源模塊、網(wǎng)絡(luò)接口等。觸摸屏采用7寸TFT電阻式觸摸屏,通過SPI1接口與單片機連接,由恒流源芯片PT4101為觸摸屏提供LCD背光源。
實時時鐘模塊采用DS1302芯片,通過IIC2接口接入單片機,為系統(tǒng)提供時間參考,實現(xiàn)定時提醒功能。存儲器采用SST25VF016B 2M FLASH,用于存放信件存儲信息和用戶賬號信息等。電機配置模塊主要由步進電機驅(qū)動器、繼電器和三極管組成,用于片選不同的電機驅(qū)動器,并對其控制端口進行配置,以實現(xiàn)對電機的控制。
網(wǎng)絡(luò)接口用于接入網(wǎng)絡(luò),將信箱內(nèi)的信息實上傳到網(wǎng)絡(luò)上,供用戶查看是否有信、修改密碼等,也方便管理員管理和修改信息。
3.2 μC/OS-II
μC/OS-II的任務(wù)主要包括兩部分,時鐘管理與任務(wù)調(diào)度。操作系統(tǒng)會以定時中斷服務(wù)程序的型式調(diào)用時鐘節(jié)拍函數(shù),實現(xiàn)對系統(tǒng)時鐘的管理。當新的時鐘節(jié)拍到來時,系統(tǒng)判斷各任務(wù)的優(yōu)先級,并按照優(yōu)先級高低將任務(wù)排入就緒隊列中。若當前最高優(yōu)先級任務(wù)滿足執(zhí)行條件,則直接運行,直到需要某種臨界資源時,任務(wù)會主動請求掛起,這時系統(tǒng)會調(diào)度就緒隊列中下一優(yōu)先級的任務(wù),使其獲得執(zhí)行權(quán)。
3.3 賬號管理
所有使用者都有賬號和密碼,作為操作權(quán)限的唯一憑據(jù)。賬號數(shù)量可以根據(jù)用戶數(shù)目自由添加或刪減,分配靈活。賬號的類型有三種,即用戶賬號、管理員賬號和投遞賬號,它們具有不同的操作權(quán)限。當輸入密碼錯誤時,系統(tǒng)不會響應(yīng)任何要求,因此可以有效杜絕信件丟失和垃圾廣告進入信箱占用空間等現(xiàn)象。
3.4 提醒功能
當系統(tǒng)收到來信時,系統(tǒng)會自動向網(wǎng)絡(luò)更新信息,主顯示屏?xí)L動顯示收到來信的用戶賬號。郵遞員將信件放入信箱時,系統(tǒng)會讀取當前日期,并計算出一個提醒日期,作為該信件的信息存儲在存儲器中。同時,系統(tǒng)會定期檢查當前日期是否超過所存信件的提醒日期,若超過,會發(fā)送信息至網(wǎng)絡(luò)和顯示屏,要求用戶及時取走信件,若用戶仍長期沒有取信,系統(tǒng)會通知管理員與用戶聯(lián)系。
四、 總結(jié)
該方案是針對目前信箱結(jié)構(gòu)上的一系列問題,提出的一種智能化、自動化解決方案,旨在提高資源利用率、保障信件安全和實時等。但由于缺乏實際使用中的統(tǒng)計數(shù)據(jù),因此仍可能存在一些問題,需要進一步研究。