李沛澤
(鄭州大學(xué)國際學(xué)院 河南省鄭州市 450000)
本文采用STC89C52作為多功能安全頭盔的主控制器,STC89C52屬于增強(qiáng)型51單片機(jī)。51系列單片機(jī)是一款應(yīng)用廣泛的8位單片機(jī),它提供了一套完整的按位操作系統(tǒng),同時(shí)具有乘法和除法指令,操作簡(jiǎn)單,容易上手。STC89C52相比于51單片機(jī),擁有更大的RAM和ROM存儲(chǔ)空間,增加了定時(shí)器數(shù)量和相應(yīng)的特殊功能寄存器和中斷功能更強(qiáng)大。
1.1.1 接聽功能
配置藍(lán)牙外耳機(jī),避免騎手以為佩戴入耳式耳機(jī),對(duì)周圍聲音喪失基本的判斷,減少意外情況的發(fā)生,且不影響騎手對(duì)基本語音通話的使用。
1.1.2 測(cè)距功能
先用MPU6050測(cè)得行駛的加速度,通過算法測(cè)得速度,當(dāng)速度達(dá)到15km/h以上觸發(fā)左后方和右后方超聲波測(cè)距模塊,當(dāng)超聲波模塊測(cè)距距離為2m以內(nèi)發(fā)出提示音提醒左后方或右后方有車,請(qǐng)注意安全。
1.1.3 事故報(bào)警功能
板子正常情況下是水平,一旦MPU6050檢測(cè)到板子不再水平即摔倒,蜂鳴器發(fā)出提示音,且摔倒的時(shí)間持續(xù)超過15秒后GSM模塊開始工作,向有關(guān)人員發(fā)送求救信息和GPS模塊得到的位置信息。
功能框圖如圖1所示。
(1)主控制器:STC89C52。
(2)測(cè)距功能:MPU6050,兩個(gè)HC_SR04,報(bào)警電路。
(3)事故報(bào)警功能:MPU6050,SIM800模塊,GPS模塊,報(bào)警電路。
(4)接聽功能:藍(lán)牙外耳機(jī)。
2.2.1 STC89C52
(1)屬于增強(qiáng)型8051單片機(jī),相比于傳統(tǒng)的8051單片機(jī),其功能更加強(qiáng)大。
(2)工作電壓:5.5V~3.3V(5V單片機(jī))/3.8V~2.0V(3V單片機(jī))。
(3)STC89C52共有32個(gè)I/O口,大多為弱上拉型,本系統(tǒng)需要兩個(gè)I/O口進(jìn)行IIC通信,3個(gè)I/O口分別連接指示燈和控制按鍵以及蜂鳴器,4個(gè)I/O口分別連接兩個(gè)HC-SR04,同時(shí)還需要若干I/O口連接LCD1602液晶顯示屏。
(4)STC89C52有一個(gè)串口,我們需要用串口實(shí)現(xiàn)與GSM/GPS模塊的通信。
(5)共3個(gè)16位定時(shí)器/計(jì)數(shù)器。即定時(shí)器T0、T1、T2,我們用到了T0和T1定時(shí)器,T1定時(shí)器進(jìn)行定時(shí),T0定時(shí)器用于測(cè)距模塊。
圖1:功能框圖
2.2.2 HC-SR04超聲波測(cè)距模塊
(1)使用電壓:DC—5V。
(2)靜態(tài)電流:小于2mA。
(3)電平輸出:高電平5V。
(4)電平輸出:低電平0V。
(5)感應(yīng)角度:不大于15度。
(6)探測(cè)距離:2cm-450cm。
(7)高精度可達(dá)0.2cm。
2.2.3 MPU6050
(1)尺寸:4*4*0.9mm。
(2)封裝:QFN。
(3)支持電壓:2.5v 5%,3.0v 5%,3.3v 5%。
(4)陀螺儀可測(cè)范圍:250,500,1000,2000 /秒。
(5)加速度計(jì)可測(cè)范圍:2,4,8,16g。
2.2.4 SIM800模塊
(1)尺寸:24*24*3mm。
(2)重量:3.1g。
(3)通過AT命令控制(GSM 07.07,07.05 and SIMCOM增
強(qiáng)AT命令集)。
(4)供應(yīng)電壓范圍:3.4~4.4V。
(5)操作溫度范圍:-40℃~85℃。
2.2.5 GPS模塊
(1)5Hz定位更新速率。
(2)精確度:定位2.5MCEP,SBAS:2.0mCEP。
(3)捕獲冷啟動(dòng)29s。
(4)溫啟動(dòng)27s。
(5)輔助啟動(dòng)<3s。
(6)熱啟動(dòng)<1s。
(7)支持AssistNow Online及AssistNow Oラine。
(8)速度515m/s(1000節(jié))。
(9)模塊輸入電壓:5V。
圖2:原理圖
圖3:主程序流程圖
2.3.1 mpu6050陀螺儀/六軸加速度傳感器
電路板位于頭盔的頂端,水平放置,正常情況下傾角為0度。MPU6050用于測(cè)量x方向和y方向的加速度以及電路板的傾角,正常情況下,mpu6050測(cè)得的傾角為0,同時(shí)兩個(gè)方向的加速度在正常的范圍內(nèi)。當(dāng)加速度的絕對(duì)值出現(xiàn)特別大的值(發(fā)生碰撞),之后傾角不為0(摔倒)且十五秒后不恢復(fù)0值,便觸發(fā)GSM模塊和報(bào)警模塊工作。
2.3.2 GSM/GPS模塊
GSM模塊采用SIM800A,其接收端與單片機(jī)串口的發(fā)送端相連用于接收單片機(jī)發(fā)送的信息并發(fā)送給對(duì)應(yīng)的手機(jī)。GPS模塊用于測(cè)量經(jīng)緯度信息并發(fā)送給單片機(jī),在事故發(fā)生后,單片機(jī)將求救信息以及事故發(fā)生的經(jīng)緯度信息通過串口發(fā)送給GSM模塊,GSM模塊發(fā)送給相應(yīng)的手機(jī)。
2.3.3 由加速度計(jì)算速度的算法設(shè)計(jì)
假設(shè)y方向?yàn)檎胺?,由MPU6050測(cè)得y方向的加速度a,用定時(shí)器1做定時(shí),以每100ms為間隔,讀取每個(gè)間隔的中間值作為a的值,然后累加10次,則 得到速度的值。
2.3.4 HC-SR04超聲波測(cè)距模塊
超聲波測(cè)距模塊用于測(cè)量在電動(dòng)車高速運(yùn)動(dòng)時(shí)距離后方車輛的距離,當(dāng)速度超過15km/h,啟動(dòng)左后方和右后方的超聲波測(cè)距模塊,當(dāng)測(cè)的距離小于兩米時(shí),啟動(dòng)提醒/報(bào)警電路進(jìn)行提醒。
2.3.5 報(bào)警/提醒電路
該電路由蜂鳴器和二極管電路組成,當(dāng)高速狀態(tài)下測(cè)距小于兩米時(shí),電路發(fā)出間隔為1s的滴答聲進(jìn)行提醒,當(dāng)檢測(cè)到事故發(fā)生時(shí),發(fā)出長(zhǎng)時(shí)間的報(bào)警聲。
2.3.6 LCD1602液晶顯示屏
LCD1602用于顯示mpu6050測(cè)得的加速度和傾角的數(shù)值以及通過算法計(jì)算出的速度值以及左后方和右后方兩個(gè)HC-SR04測(cè)得的距離。用于進(jìn)行調(diào)試,可以去掉。
2.4.1 引腳設(shè)計(jì)
(1)MPU6050的SCL時(shí)鐘線接單片機(jī)P21引腳,SDA數(shù)據(jù)線接單片機(jī)P20引腳,實(shí)現(xiàn)與單片機(jī)的IIC通信。
(2)單片機(jī)P22引腳通過三極管接蜂鳴器。
圖4:GSM模塊、GPS模塊子程序流程圖
圖5:定時(shí)器1、串口接收中斷服務(wù)函數(shù)流程圖
(3)GPS模板TXD輸出引腳連接單片機(jī)RXD串口輸入引腳RXD,向單片機(jī)發(fā)送位置信息。
(4)單片機(jī)TXD串口輸出引腳連接GSM模塊RXD輸入引腳TXD,控制GSM模塊向手機(jī)發(fā)送短信。
(5)兩個(gè)超聲波測(cè)距模塊的TX發(fā)送引腳分別接P10,P16引腳,接收引腳RX接單片機(jī)P11,P17引腳。
(6)LCD1602數(shù)據(jù)端接單片機(jī)P00到P07引腳,使能端接P27引腳,讀寫端接P26引腳,使能端P25引腳。
2.4.2 引腳設(shè)計(jì)特色
由于STC89C52只有一個(gè)串口,而GSM和GPS模塊都需要與串口進(jìn)行通信,我們可以將單片機(jī)串口的接收端與GPS模塊的發(fā)送端相連,同時(shí)單片機(jī)串口的發(fā)送端與GSM模塊的接收端相連,實(shí)現(xiàn)了一個(gè)串口與兩個(gè)模塊的通信。
2.4.3 原理圖
原理圖如圖2所示。
本產(chǎn)品采用的開發(fā)環(huán)境為Keil5_C51,Keil集編輯、編譯、到連接、調(diào)試為一體,提供了一套完整的軟件開發(fā)流程。用Keil軟件對(duì)程序進(jìn)行編譯形成HEX文件,將HEX文件用STC-ISP軟件和CH340通過串口燒錄到STC89C52,從而對(duì)整個(gè)系統(tǒng)實(shí)現(xiàn)控制。
主程序主要分為兩個(gè)部分,測(cè)距功能和事故報(bào)警功能。首先通過MPU6050和HC-SR04以及各種算法得到行駛時(shí)加速度,速度,傾角,距離等狀態(tài)。然后通過這些狀態(tài)判斷是否處于危險(xiǎn)狀態(tài)或是否有事故發(fā)生,進(jìn)而打開或關(guān)閉報(bào)警/提醒電路。報(bào)警電路可以通過按鍵進(jìn)行取消。具體流程圖如圖3。
3.3.1 GSM模塊子程序(GSM_PROC())
GSM模塊用于向手機(jī)發(fā)送求救信息和GPS模塊測(cè)得的經(jīng)緯度信息,使用GSM模塊首先需要單片機(jī)通過串口向GSM模塊發(fā)送相關(guān)的協(xié)議,之后才可以發(fā)送對(duì)應(yīng)的手機(jī)電話號(hào)碼以及求救信息和位置信息,GSM模塊接收到單片機(jī)發(fā)送的這些信息之后,進(jìn)而通過短信形式發(fā)送到相應(yīng)的手機(jī)。
3.3.2 GPS模塊子程序(GPS_PROC())
GPS模塊用于獲取駕駛員的經(jīng)緯度信息,GPS模塊的原始信息通過串口接收中斷函數(shù)獲得,GPS模塊的子程序主要用于處理GPS獲得的原始信息進(jìn)而轉(zhuǎn)化成位置信息,及經(jīng)緯度信息。之后通過串口把經(jīng)緯度信息發(fā)送給GSM模塊。
GSM模塊、GPS模塊子程序流程圖如圖4所示。
3.3.3 超聲波測(cè)距模塊子程序(Wave_PROC())
超聲波測(cè)距模塊用到了兩個(gè)HC-SR04,用于同時(shí)測(cè)量左后方和右后方的距離。超聲波測(cè)距子程序用到了定時(shí)器0,通過定時(shí)器0完成了波的發(fā)送以及距離的測(cè)量,最終返回兩個(gè)模塊較小的距離。
3.4.1 定時(shí)器1中斷服務(wù)函數(shù)(Timer1_Routine()interrupt 3)
定時(shí)器1的周期為1ms,定時(shí)器1中斷服務(wù)函數(shù)用于對(duì)各個(gè)模塊進(jìn)行一定周期的掃描,同時(shí)在中斷服務(wù)函數(shù)中含有速度的算法,用于通過加速度計(jì)算速度。是一個(gè)比較重要的中斷服務(wù)函數(shù)。
3.4.2 串口接收中斷服務(wù)函數(shù)(USART_Routine()interrupt 4)
單片機(jī)串口的接收端連接GPS模塊的發(fā)送端,GPS模塊所得到的原始信息通過單片機(jī)的串口接收中斷服務(wù)函數(shù)獲得,我們通過GPS模塊發(fā)送的協(xié)議獲取相應(yīng)的原始信息,具體通過接收到的逗號(hào)次數(shù)判斷接收數(shù)據(jù)的類型,進(jìn)而將原始信息放在相應(yīng)的數(shù)組中。
定時(shí)器1、串口接收中斷服務(wù)函數(shù)流程圖如圖5所示。
基于51單片機(jī)的多功能安全頭盔可以在現(xiàn)代交通行業(yè)得到廣泛的應(yīng)用,可以進(jìn)一步提高摩托車、電動(dòng)車騎乘人員和駕乘人員的安全防護(hù)水平。多功能安全頭盔擁有接聽、測(cè)距、事故報(bào)警三大功能,結(jié)構(gòu)簡(jiǎn)單,功能強(qiáng)大,成本低廉,可靠性強(qiáng),具備較大的應(yīng)用空間。