王 超,王金聰,劉曉麗,李海朋,張曙光
(1.東北林業(yè)大學(xué) 機(jī)電工程學(xué)院,哈爾濱 150040;2.安徽工程大學(xué) 電氣工程學(xué)院,安徽 241000)
近年來,隨著我國汽車工業(yè)的發(fā)展,人們的出行條件得到了很大的改善,但是由此引發(fā)的交通安全問題也越來越嚴(yán)峻,連續(xù)多年因交通事故死亡人數(shù)達(dá)十萬人左右。發(fā)生交通事故后如何采取有效手段來降低事故帶來的人身傷亡和財產(chǎn)損失成為亟待解決的問題,我們將交通事故分為碰撞類交通事故、落水類交通事故、縱火類交通事故。針對上述3類交通事故最有效的逃生手段就是破窗逃生,現(xiàn)如今破窗手段最常見的就是安全錘,但是安全錘實用性太弱,5 mm厚的鋼化玻璃需6~12次才能擊破。對于老幼婦孺人群來說,使用安全錘進(jìn)行破窗難度太大。同時公共交通中安全錘丟失情況嚴(yán)重,導(dǎo)致關(guān)鍵時刻車輛被困人員無計可施。并且使用安全錘破窗還需要一定的發(fā)揮空間,如發(fā)生交通事故導(dǎo)致車內(nèi)被困人員空間狹小等情況,使用安全錘破窗具有一定難度。
基于目前交通事故逃生手段的不足,本文設(shè)計了一種基于Arduino平臺的智能破窗逃生系統(tǒng)。該系統(tǒng)能夠自動感知外界環(huán)境信息,如發(fā)生上述交通事故時,能夠自動迅速破窗,有效降低交通事故對人身安全造成的傷害。
本系統(tǒng)有3個工作區(qū),分別對應(yīng)處理3種交通事故。
沖撞事故工作區(qū)本系統(tǒng)對于沖撞事故的處理采取與汽車安全氣囊相結(jié)合的處理方式。當(dāng)發(fā)生沖撞事故時,一旦汽車的安全氣囊電子控制模塊ECU判斷汽車撞擊滿足氣囊爆破要求,微處理器通過串行通訊總線SPI發(fā)送爆破命令給氣囊爆破控制器件,本系統(tǒng)通過檢測ECU微處理器硬件接口數(shù)字信號,當(dāng)檢測到爆破命令,本系統(tǒng)發(fā)送指令給車窗破碎裝置進(jìn)行破窗[1]。
縱火事故工作區(qū)本系統(tǒng)通過煙霧傳感器實時采集煙霧信息,經(jīng)過Arduino內(nèi)部的A/D轉(zhuǎn)換模塊轉(zhuǎn)換為數(shù)字量,當(dāng)煙霧濃度超過預(yù)先設(shè)定的煙霧濃度危險閾值時,對超過時間進(jìn)行計時,當(dāng)超過時間大于設(shè)定時間則發(fā)送破窗指令給破窗裝置進(jìn)行破窗。
落水事故工作區(qū)本系統(tǒng)對于落水事故的處理與對于縱火事故的處理工作原理相同,水壓傳感器采集水壓信息,通過Audrino對水壓信息進(jìn)行分析處理作出決策,判斷是否進(jìn)行破窗操作。
本系統(tǒng)硬件部分包括傳感器模塊、主控制器模塊、繼電器模塊、機(jī)械破窗模塊、電源管理模塊。電源管理模塊與各個模塊相連,提供給各個模塊合適的工作電壓與工作電流。Arduino內(nèi)部設(shè)置有信號輸入端和信號輸出端,信號輸入端與傳感器模塊相連,信號輸出端與繼電器模塊相連。繼電器模塊與機(jī)械破窗模塊相連,控制機(jī)械破窗模塊的工作。系統(tǒng)整體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)硬件結(jié)構(gòu)Fig.1 System hardware structure
本系統(tǒng)采用Arduino作為控制模塊,Arduino是一款使用方便的開源電子原型平臺,開發(fā)界面簡約、下載程序簡單方便,可簡單地與傳感器、各式各樣的電子元件連接,十分方便上手。
Arduino單片機(jī)采用Atemga328微處理器,同時具有14路數(shù)字輸入/輸出口(其中6路可作為PWM輸出),6路模擬輸入,1個16 MHz晶體振蕩器,1個USB口,1個電源插座,1個ICSP header和1個復(fù)位按鈕[2]。
本系統(tǒng)采用12 V蓄電池作為總電源,12 V穩(wěn)定直流電壓給機(jī)械破窗模塊供電,使用降壓電路產(chǎn)生5 V穩(wěn)定直流電壓給繼電器模塊供電,同時電源管理模塊還包括繼電器驅(qū)動電路。
如圖2所示,降壓電路選用LM7805降壓模塊,輸入電壓12 V經(jīng)電容濾波進(jìn)入LM7805后經(jīng)穩(wěn)壓濾波輸出穩(wěn)定的5 V電壓,用于給主控制器模塊以及繼電器模塊供電。
圖2 降壓電路Fig.2 Step-down circuit
Arduino單片機(jī)的引腳最大輸出電流不超過40 mA,輸出電流能力有限,達(dá)不到驅(qū)動繼電器的電流,圖3為繼電器驅(qū)動電路,在繼電器模塊中我們所選用繼電器的工作吸和電流為65 mA,三極管S8050的直流放大倍數(shù)取100,因此:
基極電流=繼電器工作電流/放大倍數(shù)=65 mA
為工作穩(wěn)定實際基極電流取為計算值的2倍,即1.3 mA。因此:
基極電阻=(5 V-0.7 V)/基極電流≈4.4 kΩ
當(dāng)三極管由導(dǎo)通變?yōu)榻刂箷r,繼電器繞組會產(chǎn)生一個較大的自感電壓,其與電源電壓疊加后加到三極管發(fā)射極、集電極兩極上,可能導(dǎo)致發(fā)射極被擊穿。為了消除感生電動勢的有害影響,在繼電器線圈兩段反向并聯(lián)一個保護(hù)二極管,通過保護(hù)二極管導(dǎo)通形成的環(huán)流將感生電動勢釋放掉,保證三極管的安全。
本系統(tǒng)使用MQ-2型煙霧傳感器用于對火災(zāi)信息的監(jiān)測。如圖4所示,煙霧傳感器模塊核心是MQ-2型傳感器,加入運(yùn)放電路。模塊具有雙路信號輸出(模擬量輸出AOUT和TTL電平輸出DOUT)[3],在本系統(tǒng)設(shè)計中只使用模塊的模擬量輸出,其TTL電平輸出引腳閑置。
圖3 繼電器驅(qū)動電路Fig.3 Relay drive circuit
圖4 煙霧傳感器模塊電路Fig.4 Smoke sensor module circuit
本系統(tǒng)使用MPXV5004G集成硅壓力傳感器用于對水壓信息的監(jiān)測。MPXV5004G內(nèi)部帶有放大器,輸出電壓0~4.9 V,可直接連接至Arduino單片機(jī)的模擬輸入通道。如圖5所示,傳感器輸入端應(yīng)加去耦電容以濾除器件本身和電容所含的高頻信號干擾,信號輸出端應(yīng)加去耦電容以濾除輸出信號中的噪聲。
圖5 水壓傳感器模塊電路Fig.5 Hydraulic sensor module circuit diagram
本系統(tǒng)所采用的機(jī)械破窗裝置是將額定工作電壓為12 V的推桿電機(jī)和市面上存在的迷你破窗器相組合并進(jìn)行一些改裝。當(dāng)需要破窗時,繼電器導(dǎo)通,推桿電機(jī)工作,推動迷你破窗器,完成破窗動作。
本系統(tǒng)各個模塊的電路連接如圖6所示。煙霧傳感器模塊引腳AOUT接Arduino控制器的模擬輸入接口 A0,水壓傳感器模塊的引腳 AOUT接Arduino控制器的模擬輸入接口A1,安全氣囊ECU引腳接Arduino控制器的數(shù)字輸入輸出接口D9,Arduino控制器的信號輸出接口設(shè)置為D8。機(jī)械破窗模塊通過繼電器模塊連接12 V電源。
圖6 實際電路連接Fig.6 Actual circuit connection diagram
Arduino語法是建立在 C/C++基礎(chǔ)上的,以Setup()開頭,以Loop()作為主體的一個程序構(gòu)架[2],但使用Arduino設(shè)計項目只能實現(xiàn)單任務(wù)的處理,這在實際工程使用中有很大弊端,目前通過平臺移植多線程模型ProtoThreads可以實現(xiàn)多任務(wù)調(diào)度并取得成功應(yīng)用[4]。因本系統(tǒng)軟件設(shè)計中需要考慮同時對3類外界環(huán)境信息進(jìn)行監(jiān)控并處理,因此利用ProtoThreads實現(xiàn)Arduino多線程處理。
系統(tǒng)軟件設(shè)計分為3個任務(wù)函數(shù),任務(wù)一函數(shù)是通過煙霧傳感器對外界環(huán)境進(jìn)行監(jiān)測,以判斷是否發(fā)生火災(zāi)并執(zhí)行破窗操作;任務(wù)二函數(shù)是通過水壓傳感器對外界環(huán)境進(jìn)行監(jiān)測,以判斷是否發(fā)生車輛落水并執(zhí)行破窗操作;任務(wù)三函數(shù)是通過監(jiān)測安全氣囊ECU狀態(tài),以判斷是否發(fā)生嚴(yán)重車輛碰撞事故并執(zhí)行破窗操作,系統(tǒng)多線程流程如圖7所示,主函數(shù)循環(huán)執(zhí)行任務(wù)一、任務(wù)二、任務(wù)三。任務(wù)一中,煙霧傳感器實時采集煙霧信號,經(jīng)過信號調(diào)理電路傳至主控制器 Arduino的模擬信號輸入口,Arduino內(nèi)部自帶A/D轉(zhuǎn)換模塊,將模擬信號轉(zhuǎn)換為數(shù)字信號。將煙霧數(shù)字量與設(shè)定的危險閾值進(jìn)行比較,若高過危險閾值,則執(zhí)行一段延時程序后將再次得到的煙霧數(shù)字量與危險閾值進(jìn)行比較,若仍高出設(shè)定危險閾值則Arduino I/O口發(fā)送破窗指令,執(zhí)行破窗動作。任務(wù)二函數(shù)程序流程與任務(wù)一類似。任務(wù)三中,Arduino I/O口讀取安全氣囊ECU端口電平數(shù)值以判斷ECU是否執(zhí)行打開安全氣囊操作,如是則Arduino I/O口發(fā)送破窗指令,執(zhí)行破窗動作。
圖7 系統(tǒng)多線程流程Fig.7 Multi thread flow chart of system
利用Proteus軟件對系統(tǒng)進(jìn)行仿真,仿真接線如圖8所示。由于Proteus元件庫中沒有MQ-2煙霧傳感器,用一個可調(diào)電位器代替[5]。另外用開關(guān)加直流電源的形式模擬安全氣囊ECU模塊是否發(fā)出爆破命令。
圖8 系統(tǒng)仿真接線Fig.8 System simulation wiring diagram
Proteus 8.4版本不必像以前的版本一樣,需要在Arduino IDE編寫程序后再手工加載,它提供了Arduino的編程界面,只需要加載設(shè)置好編譯器就能直接仿真[6]。將已編寫好的程序進(jìn)行編譯,通過改變傳感器狀態(tài),觀察機(jī)械模塊狀態(tài)。
調(diào)試結(jié)果表明系統(tǒng)符合設(shè)計要求。各個模塊都能實現(xiàn)其相應(yīng)的功能,每個事故工作區(qū)運(yùn)行穩(wěn)定。利用ProtoThreads實現(xiàn)Arduino多線程處理能夠同時對3類外界環(huán)境信息進(jìn)行監(jiān)控并處理。
本文設(shè)計的基于Arduino平臺的智能破窗逃生系統(tǒng),依托Arduino平臺,通過對若干模塊的整合,設(shè)計出能夠自動檢測車輛所處的環(huán)境信息,如發(fā)生事故能夠自動破窗幫助乘客逃生的系統(tǒng)。試驗結(jié)果表明該系統(tǒng)能夠穩(wěn)定有效工作,實際使用中能夠降低交通事故造成的人身傷亡,對于本系統(tǒng)的機(jī)械破窗模塊還可以加以改進(jìn),如使用爆破方式進(jìn)行破窗操作,可以更節(jié)約空間而且反應(yīng)更加迅速。同時本文對于Arduino平臺在其他場合地廣泛應(yīng)用也有一定的參考價值。
[1] 楊林.汽車安全氣囊電子控制模塊ECU設(shè)計研究[D].江蘇:南京理工大學(xué),2007.
[2] 蔡睿妍.Arduino的原理及應(yīng)用[J].電子設(shè)計工程,2012,20(16):155-157.
[3] 王耕.基于Arduino Due智能家居控制系統(tǒng)設(shè)計[D].陜西:西北大學(xué),2015.
[4] 簡嘉欣.基于Arduino平臺和Protothreads系統(tǒng)的產(chǎn)品原型開發(fā)方法研究[D].廣東:華南理工大學(xué),2016.
[5] 李海娜,王翠,羅邵屏.基于單片機(jī)的火災(zāi)報警系統(tǒng)的設(shè)計[J].電子世界,2014(5):127
[6] 謝龍漢,莫衍.Protues電子電路設(shè)計及仿真[M].北京:電子工業(yè)出版社,2012.