王存娥 ,楊延寧 ,任新成 ,張 雄
(1.延安大學(xué)圖書(shū)館,陜西 延安 716000;2.延安大學(xué)物理與電子信息學(xué)院,陜西 延安 716000)
近年來(lái),隨著高校學(xué)生人數(shù)的急劇增加,學(xué)校的圖書(shū)閱覽室、自習(xí)室等地人潮擁擠[1]。在圖書(shū)館經(jīng)常能夠看到許多同學(xué)為尋找一個(gè)學(xué)習(xí)的座位,穿梭于各個(gè)樓層間。造成這種情況的原因一方面是閱覽室面積少,另一方面的原因是閱覽室的人數(shù)分布不均。有的閱覽室人滿為患,而有的閱覽室則空余座位較多。學(xué)生不了解當(dāng)前各個(gè)閱覽室的人數(shù)情況,往往浪費(fèi)了大量時(shí)間去尋找閱覽室的空余座位而影響了學(xué)習(xí)。傳統(tǒng)的視頻監(jiān)控通過(guò)在閱覽室中安裝攝像頭的方式來(lái)對(duì)讀者流量進(jìn)行統(tǒng)計(jì),但這種方式受人流量密集程度影響較大,只能達(dá)到監(jiān)控的目的,不能對(duì)室內(nèi)的讀者流量進(jìn)行統(tǒng)計(jì),而且成本較高,不適合廣泛應(yīng)用[2]。因此,有必要在閱覽室面積一定的條件下設(shè)計(jì)一套全新的閱覽室人流量監(jiān)測(cè)系統(tǒng)來(lái)自動(dòng)監(jiān)測(cè)閱覽室人數(shù),以提高閱覽室的管理效率[3]。
設(shè)計(jì)要求包括四個(gè)方面:①對(duì)進(jìn)入閱覽室的人數(shù)進(jìn)行統(tǒng)計(jì),并在液晶顯示屏(liquid crystal display,LCD)上顯示;②對(duì)離開(kāi)閱覽室的人數(shù)進(jìn)行統(tǒng)計(jì),并在LCD上顯示;③對(duì)閱覽室內(nèi)實(shí)時(shí)人數(shù)進(jìn)行統(tǒng)計(jì),并在LCD上顯示;④當(dāng)閱覽室內(nèi)人數(shù)超過(guò)所預(yù)定的人數(shù)時(shí),蜂鳴器報(bào)警。
本文設(shè)計(jì)的人流量計(jì)數(shù)器安裝在房屋的出入口處。當(dāng)傳感器探測(cè)到有人進(jìn)出時(shí),產(chǎn)生的低電平會(huì)在單片機(jī)內(nèi)部進(jìn)行脈沖計(jì)數(shù)。在單片機(jī)的驅(qū)動(dòng)下,LCD顯示進(jìn)出的人數(shù)和室內(nèi)實(shí)時(shí)的人數(shù)。當(dāng)閱覽室內(nèi)部的實(shí)時(shí)人數(shù)超過(guò)預(yù)設(shè)值時(shí),蜂鳴器就會(huì)報(bào)警。使用復(fù)位按鍵對(duì)LCD進(jìn)行清零。系統(tǒng)主要由單片機(jī)、報(bào)警電路、紅外光電傳感器、顯示電路、按鍵電路等模塊組成。系統(tǒng)設(shè)計(jì)原理如圖1所示。
圖1 系統(tǒng)設(shè)計(jì)原理圖
系統(tǒng)的核心控制單元選用STC89C52單片機(jī),按鍵電路用來(lái)設(shè)定系統(tǒng)的閥值,即報(bào)警值。時(shí)鐘電路與復(fù)位電路是單片機(jī)正常工作所不可或缺的。本文選用成熟的字符型顯示器LCD1602。與傳統(tǒng)的LED數(shù)碼管顯示相比,LCD1602機(jī)身薄,顯示信息量豐富,節(jié)省電力,占用系統(tǒng)I/O口少,能夠有效節(jié)約系統(tǒng)資源[4]。光電檢測(cè)模塊是本設(shè)計(jì)的關(guān)鍵。與對(duì)射式光電傳感器相比,反射式紅外傳感器的發(fā)射器與接收器集成,具有探測(cè)距離遠(yuǎn)、受可見(jiàn)光干擾小、易于裝配和使用方便等特點(diǎn)。因此,光電檢測(cè)模塊選擇反射式紅外傳感器E18-D50NK[5]。該傳感器具有監(jiān)測(cè)分辨率高、響應(yīng)時(shí)間短、非接觸等優(yōu)點(diǎn)。
硬件電路由電源電路、鍵盤(pán)電路、紅外檢測(cè)電路、單片機(jī)的復(fù)位電路和晶振電路、LCD顯示電路以及報(bào)警電路構(gòu)成。核心模塊為STC89C52單片機(jī),紅外發(fā)射與接收電路E18-D50NK、顯示模塊LCD1602。
將人流量計(jì)數(shù)器安裝在閱覽室的出入口處,E18-D50NK可以實(shí)現(xiàn)對(duì)進(jìn)入人員和離開(kāi)人員的檢測(cè)。當(dāng)傳感器探測(cè)到有人進(jìn)出時(shí),低電平會(huì)在單片機(jī)內(nèi)部進(jìn)行脈沖計(jì)數(shù)。E18-D50NK反射式紅外傳感器的發(fā)射器與接收器集成。當(dāng)有人從閱覽室出入口通過(guò)時(shí),發(fā)射器發(fā)出的紅外光束會(huì)被人體反射,然后被接收器接收。隨著光信號(hào)的變化,光電元件的電信號(hào)也會(huì)隨之改變,形成脈沖信號(hào)。該信號(hào)送到單片機(jī)STC89C52內(nèi)計(jì)數(shù)。LCD1602在單片機(jī)的驅(qū)動(dòng)下顯示人數(shù)信息,實(shí)現(xiàn)了人數(shù)的實(shí)時(shí)統(tǒng)計(jì)。工作前,通過(guò)復(fù)位電路使系統(tǒng)進(jìn)行初始化。與自動(dòng)復(fù)位電路相比,手動(dòng)復(fù)位不需要編寫(xiě)程序。當(dāng)系統(tǒng)電路在工作電壓下進(jìn)行正常工作時(shí),通過(guò)手動(dòng)方式使單片機(jī)系統(tǒng)復(fù)位。當(dāng)閱覽室的人數(shù)達(dá)到預(yù)先設(shè)置的報(bào)警值時(shí),系統(tǒng)會(huì)進(jìn)行報(bào)警。管理人員根據(jù)報(bào)警信息采取相應(yīng)的措施,限制閱覽室的人流量。
自然界中的太陽(yáng)光中存在一定量的紅外光線。除此之外,一些特定的人工光源也存在紅外光線,如篝火火焰、日光燈和廣告燈等。這些紅外線會(huì)干擾接收器的正常工作[6]。因此,必須盡可能地減小這些紅外光線的干擾。分析發(fā)現(xiàn),盡管雜散的紅外光線很多,但是其波長(zhǎng)卻有一定的差異。本文采用調(diào)制解調(diào)法來(lái)解決這個(gè)問(wèn)題。具體來(lái)說(shuō),就是用發(fā)射器發(fā)射頻率固定的紅外光束,然后再讓接收器來(lái)區(qū)分某一個(gè)頻率已知的紅外光束,最終解決了雜散光束的干擾[7]。
系統(tǒng)總流程如圖2所示[8]。
圖2 系統(tǒng)總流程圖
軟件控制程序主要由主程序、液晶顯示程序和設(shè)置計(jì)數(shù)報(bào)警程序三部分組成。它們主要實(shí)現(xiàn)計(jì)數(shù)加減、鍵盤(pán)掃描、LCD顯示以及設(shè)定超值就報(bào)警等功能。軟件編程部分包括對(duì)鍵盤(pán)電路的按鍵識(shí)別、報(bào)警人數(shù)的預(yù)設(shè)、LCD顯示內(nèi)容以及室內(nèi)人數(shù)超過(guò)預(yù)設(shè)值時(shí)報(bào)警等。
當(dāng)處于正常的工作電壓下時(shí),系統(tǒng)首先會(huì)進(jìn)行初始化操作。根據(jù)圖書(shū)閱覽室的實(shí)際情況,給系統(tǒng)設(shè)定閥值,即報(bào)警值。接著紅外光電傳感器檢測(cè)有無(wú)人進(jìn)出。若無(wú)人進(jìn)出,則繼續(xù)等待;如果有人進(jìn)出,則讀取進(jìn)出人數(shù)的數(shù)值。通過(guò)單片機(jī)的驅(qū)動(dòng)在LCD上顯示具體的數(shù)值,當(dāng)達(dá)到預(yù)設(shè)的報(bào)警值時(shí),系統(tǒng)就會(huì)報(bào)警。如果要使系統(tǒng)停止報(bào)警,可以按復(fù)位按鍵停止報(bào)警,主程序初始化,系統(tǒng)再次正常工作。系統(tǒng)主流程如圖3所示。
圖3 系統(tǒng)主流程圖
LCD1602液晶是字符型液晶,它內(nèi)部自帶有字符庫(kù),可以寫(xiě)兩行,每行16個(gè)字符。寫(xiě)顯示服務(wù)程序時(shí),要先寫(xiě)命令,然后設(shè)定字符的顯示,最后寫(xiě)數(shù)據(jù)。每寫(xiě)一次命令或數(shù)據(jù),都要判斷液晶是否忙。液晶顯示程序流程如圖4所示。
圖4 液晶顯示程序流程圖
系統(tǒng)設(shè)計(jì)由軟件和硬件兩部分組成,兩者相輔相成。調(diào)試是確保系統(tǒng)正常工作的關(guān)鍵步驟。系統(tǒng)的調(diào)試過(guò)程由三個(gè)階段組成,分別為硬件電路調(diào)試、軟件總體程序調(diào)試和軟硬件結(jié)合調(diào)試。
首先,進(jìn)行硬件電路調(diào)試。在蜂鳴器的供電端接+5 V的電壓,并在與單片機(jī)相連的一端加上低電平,蜂鳴器可以連續(xù)發(fā)出響聲,表明蜂鳴器能夠正常工作,報(bào)警電路正常。用萬(wàn)用表分別檢測(cè)復(fù)位電路、時(shí)鐘電路、程序下載接口以及電源各部分的連線是否有問(wèn)題,經(jīng)測(cè)試,一切正常。軟件調(diào)試是整個(gè)系統(tǒng)調(diào)試過(guò)程中不可缺少的一部分。只有當(dāng)軟件調(diào)試成功時(shí),系統(tǒng)才有可能實(shí)現(xiàn)其功能。在KEIL軟件中,用C語(yǔ)言編寫(xiě)程序;然后用KEIL的編譯功能編譯,來(lái)檢查程序是否有語(yǔ)法等錯(cuò)誤。根據(jù)編譯完的下方提示進(jìn)行分析,反復(fù)修改程序一直到編譯成功為止[9]。將編譯好的程序下載到PROTEUS仿真軟件中測(cè)試,仿真結(jié)果符合要求。在硬件電路和軟件調(diào)試都完成以后,最后對(duì)整個(gè)系統(tǒng)進(jìn)行整機(jī)軟硬件結(jié)合調(diào)試。
本文設(shè)計(jì)的閱覽室人流量監(jiān)測(cè)系統(tǒng)能夠準(zhǔn)確、快速地統(tǒng)計(jì)進(jìn)入和離開(kāi)閱覽室人數(shù)以及室內(nèi)的實(shí)時(shí)人數(shù)。當(dāng)超過(guò)預(yù)設(shè)值時(shí),蜂鳴器進(jìn)行報(bào)警。本設(shè)計(jì)還存在一些缺陷,比如不能準(zhǔn)確區(qū)分進(jìn)入室內(nèi)的物體和人。因此,有必要進(jìn)一步完善設(shè)計(jì),提高系統(tǒng)的抗干擾性,使系統(tǒng)更加適應(yīng)環(huán)境,擴(kuò)展應(yīng)用場(chǎng)合。