朱貴憲,馬 聰
(安陽工學(xué)院計(jì)算機(jī)科學(xué)與信息工程學(xué)院,河南 安陽 455000)
為保障騎行者的人身安全,近年來交通管理部門出臺(tái)規(guī)定,要求電動(dòng)車騎行人必須佩戴頭盔,以保護(hù)其生命安全。目前,評(píng)價(jià)頭盔質(zhì)量的優(yōu)劣主要是考慮其結(jié)實(shí)程度即耐受多大的撞擊力;少數(shù)頭盔帶有太陽板,對(duì)安裝在它上面的電風(fēng)扇提供電能支持,起到一定的降溫作用;基于成本因素,智能化程度普遍較低,因此迫切需要設(shè)計(jì)一款智能化的頭盔裝置,集行車暫停提醒、左右轉(zhuǎn)向指示、夜間照明功能于一體,以便更好地滿足市場(chǎng)需求。
硬件系統(tǒng)由發(fā)送系統(tǒng)和接收系統(tǒng)兩部分組成,無論是發(fā)送系統(tǒng)還是接收系統(tǒng),其關(guān)鍵芯片都是兩個(gè),分別是STC89C52RC單片機(jī)和無線收發(fā)送模塊nRF24L01,其中STC89C52RC起核心控制作用,nRF24L01起無線信號(hào)的收發(fā)作用。
STC89C52RC單片機(jī)簡(jiǎn)介:STC89C52RC是STC公司生產(chǎn)的一種低功耗、高性能的微控制器,使用經(jīng)典的MCS-51內(nèi)核,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,能夠?yàn)榍度胧娇刂茟?yīng)用系統(tǒng)提供靈活有效的解決方案[1]。具有以下標(biāo)準(zhǔn)功能:8 k字節(jié)Flash,512字節(jié)RAM,32位I/O口線,看門狗定時(shí)器,內(nèi)置4 KB EEPROM,MAX810復(fù)位電路,3個(gè)16位定時(shí)器/計(jì)數(shù)器,4個(gè)外部中斷,一個(gè)7向量4級(jí)中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級(jí)中斷結(jié)構(gòu)),全雙工串行口。
nRF24L01無線收發(fā)器芯片簡(jiǎn)介:nRF24L01由NORDIC公司生產(chǎn),工作在2.4 GHz~2.5 GHz、ISM頻段的單片無線收發(fā)器芯片。常應(yīng)用于無線門禁、安防系統(tǒng)、遙控裝置、遙感勘測(cè)等領(lǐng)域。芯片采用低功耗設(shè)計(jì),當(dāng)工作在發(fā)射模式下發(fā)射功率為0 dBm時(shí),電流消耗為11.3 mA,接收模式時(shí)電流消耗為12.3 mA。內(nèi)設(shè)4線SPI通訊端口,通訊速率最高可達(dá)8 Mbps,輸出功率頻道選擇和協(xié)議的設(shè)置可以通過SPI接口進(jìn)行設(shè)置,適合與各種MCU連接,實(shí)現(xiàn)無線數(shù)據(jù)傳送工作。
與自行車測(cè)速儀安裝方法類似,發(fā)送系統(tǒng)安裝在車把手位置,其結(jié)構(gòu)框圖如圖1所示,發(fā)送系統(tǒng)由STC89C52RC單片機(jī)、無線發(fā)送模塊nRF24L01和3個(gè)按鍵組成。3個(gè)按鍵與單片機(jī)的P0口連接,它們分別是左轉(zhuǎn)向按鍵、右轉(zhuǎn)向按鍵和行車暫停按鍵。在某一時(shí)刻,單片機(jī)只能接收某一按鍵發(fā)出的信號(hào)(比如右轉(zhuǎn)向按鍵按下),經(jīng)過單片機(jī)識(shí)別判斷,再通過無線發(fā)送模塊nRF24L01發(fā)送無線信號(hào)(內(nèi)含右轉(zhuǎn)向信息)到安裝在頭盔上面的接收系統(tǒng)。
圖1 發(fā)送系統(tǒng)框圖
發(fā)送模塊共設(shè)置K1、K2、K3 3個(gè)按鍵,分別對(duì)應(yīng)左轉(zhuǎn)向按鍵、右轉(zhuǎn)向按鍵和行車暫停按鍵,每個(gè)按鍵中都配置LED指示燈及限流電阻,如圖2所示,3個(gè)按鍵的其中一端與地相接,另一端分別連接單片機(jī)的P0.0、P0.1、P0.2口[2]。
圖2 發(fā)送端按鍵模塊與單片機(jī)的連接
本設(shè)計(jì)直接采用nRF24L01成品模塊實(shí)現(xiàn)與單片機(jī)的連接,從單片機(jī)控制的角度來看,除了電源和地的連接,我們只需關(guān)注nRF24L01集成模塊的6個(gè)控制和數(shù)據(jù)信號(hào),它們分別是:CE、CSN、SCK、MOSI、MISO、IRQ,單片機(jī)與nRF24L01集成模塊的連接如圖3所示。
圖3 單片機(jī)與nRF24L01集成模塊的連接
接收系統(tǒng)(包括指示燈)安裝在頭盔的合適位置,其組成框圖如圖4所示,接收系統(tǒng)由STC89C52RC單片機(jī)、無線接收模塊nRF24L01和4個(gè)指示燈組成,其中夜間照明指示燈主要用于夜間行車照明,安裝在頭盔的正前方,采用手動(dòng)開關(guān)方式控制,另外3個(gè)指示燈分別是左轉(zhuǎn)向指示燈、右轉(zhuǎn)向指示燈和行車暫停指示燈,安裝在頭盔的正后方,并采用單片機(jī)進(jìn)行控制,當(dāng)無線接收模塊nRF24L01接收到來自發(fā)送端發(fā)送的無線信號(hào)(比如是右轉(zhuǎn)向信號(hào)),經(jīng)過單片機(jī)分析判斷,根據(jù)騎行人不同的需求,驅(qū)動(dòng)3個(gè)指示燈當(dāng)中的一個(gè)發(fā)光(比如點(diǎn)亮右轉(zhuǎn)向指示燈)。
圖4 接收系統(tǒng)框圖
對(duì)于接收系統(tǒng),單片機(jī)通過P1端口實(shí)現(xiàn)與nRF24L01無線接收模塊的連接,其連接方式如前面圖3所示,與發(fā)送模塊的引腳連接方式相同。
接收系統(tǒng)里面的左轉(zhuǎn)向指示燈、右轉(zhuǎn)向指示燈和行車暫停指示燈,分別與單片機(jī)的P2.7口、P2.6口和P2.5口連接[3],其連接電路如圖5所示,其中每個(gè)端口發(fā)光二極管的數(shù)目可根據(jù)亮度和指示箭頭形狀的需要做適當(dāng)調(diào)整。
圖5 單片機(jī)與轉(zhuǎn)向指示燈的連接
本設(shè)計(jì)的軟件部分采用C51語言來編寫程序,以keil4軟件為開發(fā)平臺(tái),通過編譯生成擴(kuò)展名為“.hex”的文件[4],并通過STC-ISP下載到單片機(jī)系統(tǒng)運(yùn)行。軟件設(shè)計(jì)分為兩個(gè)部分,一是發(fā)送系統(tǒng)軟件設(shè)計(jì),二是接收系統(tǒng)軟件設(shè)計(jì)。
發(fā)送端程序流程圖如圖6所示,系統(tǒng)開機(jī)后,首先對(duì)STC89C52RC單片機(jī)和nRF24L01模塊初始化,把nRF24L01配置成PTX工作模式[5],然后進(jìn)行按鍵掃描。掃描行車暫停按鍵是否被按下,如果是,則通過nRF24L01模塊發(fā)送行車暫停按鍵信號(hào)到接收端;如果否,則檢查左轉(zhuǎn)向按鍵是否被按下,如果是,則發(fā)送左轉(zhuǎn)向按鍵到發(fā)送端;如果否,則檢查右轉(zhuǎn)向按鍵是否被按下,如果是,則發(fā)送右轉(zhuǎn)向按鍵到發(fā)送端;如果否,則回頭繼續(xù)進(jìn)行按鍵掃描。
圖6 發(fā)送端程序流程圖
接收系統(tǒng)開機(jī)后,首先對(duì)單片機(jī)進(jìn)行初始化,并把nRF24L01模塊配置成PRX工作模式,當(dāng)接收到發(fā)送端發(fā)來的數(shù)據(jù)后,nRF24L01產(chǎn)生接收中斷標(biāo)志,單片機(jī)從nRF24L01模塊讀取數(shù)據(jù)并進(jìn)行判斷,來決定點(diǎn)亮行車暫停指示燈、左轉(zhuǎn)向指示燈或右轉(zhuǎn)向指示燈當(dāng)中的一個(gè),接收端程序流程圖如圖7所示。
圖7 接收端程序流程圖
本設(shè)計(jì)采用STC89C52RC單片機(jī)與nRF24L01無線收發(fā)器模塊組建發(fā)送系統(tǒng)和接收系統(tǒng)。發(fā)送系統(tǒng)通過按鍵模塊發(fā)送行車暫停信號(hào)或左右轉(zhuǎn)向信號(hào),接收系統(tǒng)接收到信號(hào)后,通過頭盔上的LED指示燈顯示騎行者目前正在進(jìn)行行車暫停、左轉(zhuǎn)或者右轉(zhuǎn),這樣就可以實(shí)現(xiàn)電動(dòng)車在轉(zhuǎn)向過程中給后方跟進(jìn)車輛一個(gè)明顯的提醒信號(hào),避免后面車輛躲閃不及而引發(fā)追尾事故,從而起到保護(hù)騎行者安全的作用。