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