李 蕓,李海偉,李慧慧,龐亞男,李澤華
(太原工業(yè)學(xué)院,山西 太原 030008)
隨著國民經(jīng)濟的快速發(fā)展,人們生活水平不斷提高,居民和工業(yè)領(lǐng)域的用電量不斷增加,隨之而來也造成了火災(zāi)事故的極易發(fā)生?;馂?zāi)一旦發(fā)生,會造成財產(chǎn)和人身極大損失[1]?;馂?zāi)發(fā)生后,消防員就需要進入伴隨高溫、濃煙的危險環(huán)境下?lián)岆U救災(zāi),甚至還會威脅到自身的生命安全。另外,單純依靠人力救火效率低,若不及時,經(jīng)常會錯過最佳滅火時間。針對以上問題,設(shè)計了一款智能滅火小車,可以在行進過程中自動循跡,自動感知火源,精準(zhǔn)到達預(yù)設(shè)目標(biāo),并控制滅火系統(tǒng)滅火。
本文設(shè)計的智能小車系統(tǒng)共有6個模塊:單片機控制模塊、尋跡模塊、驅(qū)動電機模塊、火焰?zhèn)鞲衅髂K、風(fēng)扇模塊、電源模塊。尋跡模塊由紅外傳感器組成,主控芯片采用STC89C51。
本設(shè)計選擇STC89C51單片機作為系統(tǒng)主控模塊,STC89C51單片機是一款低功耗、高性能的微控制器,擁有32個通用I/O口、2個異步串口、2個定時器模塊、AD采樣模塊等[2]。STC89C52單片機不僅價格便宜,還能滿足控制小車驅(qū)動和傳感器的要求。主控模塊引腳連接原理如圖1所示。
在L298N步進電機驅(qū)動模塊中,L298N可實現(xiàn)電機驅(qū)動及控制電機正反轉(zhuǎn)。單片機P1.4-P1.7、P2.2-P2.5接口與L298N的輸入引腳連接,四個直流電機與驅(qū)動芯片的8個OUT輸出口相連,從而驅(qū)動直流電機轉(zhuǎn)動,L298N電機驅(qū)動連接原理圖如圖2所示。
圖1 主控模塊引腳連接原理圖
圖2 L298N電機驅(qū)動連接原理圖
循跡系統(tǒng)采用紅外循跡法,即利用紅外線對黑、白色吸收作用不同的原理[3]。小車在行進過程中,紅外發(fā)射管不斷向地面發(fā)射紅外線。當(dāng)紅外線遇到白色場地時,發(fā)生漫發(fā)射,紅外線被反射,傳感器可以接收返回的數(shù)據(jù),經(jīng)變電電路比較器后輸出低電平,當(dāng)遇到黑色跑道時,紅外線被吸收,紅外傳感器接收不到返回的數(shù)據(jù),經(jīng)變電電路比較器后輸出高電平,單片機循跡模塊通過傳輸高低電平實現(xiàn)循跡功能[4]。本設(shè)計采用三個循跡模塊,循跡模塊端子2分別與單片機P1.0、P1.2、P1.3相連接,分別控制左、中、右循跡。
滅火系統(tǒng)由火焰?zhèn)鞲衅髂K和風(fēng)扇模塊組成,火焰?zhèn)鞲衅骼眉t外線對火焰敏感的特點,使用特制的紅外線接收管來檢測火焰,然后把火焰的亮度轉(zhuǎn)化為高低電平信號[5]。當(dāng)檢測到火焰時,火焰?zhèn)鞲衅飨騿纹瑱C傳入高電平,單片機驅(qū)動滅火裝置風(fēng)扇打開。
軟件主程序設(shè)計流程如圖3所示。
圖3 軟件主程序設(shè)計流程圖
定義小車驅(qū)動模塊輸入I/O口,如下代碼所示。要想實現(xiàn)小車左轉(zhuǎn)彎,就得令左電機向前轉(zhuǎn)而右電機向后轉(zhuǎn),小車右轉(zhuǎn)彎同理,如下代碼所示。
sbit a1=P1^4; //電機1驅(qū)動
sbit a2=P1^5;
sbit b1=P1^6;
sbit b2=P1^7;
sbit a3=P2^2; //電機2驅(qū)動
sbit a4=P2^3;
sbit b3=P2^4;
sbit b4=P2^5;
定義循跡模塊與單片機連接的I/O口,如下代碼所示。
sbit d1=P1^3; //循跡1 左 黑線高電平
sbit d2=P1^2; //循跡2 中
sbit d3=P1^0; //循跡3 右 黑線高電平
定義循跡模塊,當(dāng)左循跡模塊向單片機傳輸高電平時,小車左轉(zhuǎn);當(dāng)右循跡模塊向單片機傳輸高電平時,小車右轉(zhuǎn);當(dāng)中循跡模塊向單片機傳輸高電平,并且左、右循跡同時向單片機傳輸?shù)碗娖綍r,小車直行,如下代碼所示。
void xunjin()
{
Stop();
while(d1==0&&d2==1&&d3==0)
{
QianJin();
}
while(d1==1&&d2==0&&d3==0)
{
ZuoZhuan();DelayMs(30);
}
while(d1==1&&d2==1&&d3==0)
{
ZuoZhuan();DelayMs(30);
}
while(d1==0&&d3==1&&d2==0)
{
YouZhuan();DelayMs(30);
}
while(d1==0&&d3==1&&d2==1)
{
YouZhuan();DelayMs(30);
}
while(d1==0&&d2==0&&d3==0)
{
Stop();
}
}
void main()
{
while(1)
{
Stop();
while(d1==0&&d2==1&&d3==0)//左右兩邊尋跡檢測到白紙且中間尋跡檢測到黑線前進
{
QianJin();
f1=0;
f2=0;
}
while(d1==0&&d2==0&&d3==1)//右對管檢測到黑線右轉(zhuǎn)
{
YouZhuan();DelayMs(30);
}
while(d1==0&&d2==1&&d3==1)//右對管檢測到黑線右轉(zhuǎn)
{
YouZhuan();DelayMs(30);
}
while(d1==1&&d2==0&&d3==0)//左對管檢測到黑線左轉(zhuǎn)
{
ZuoZhuan();DelayMs(30);
f1=0;
f2=0;
}
while(d1==1&&d2==1&&d3==0)//左對管檢測到黑線左轉(zhuǎn)
{
ZuoZhuan();DelayMs(30);
f1=0;
f2=0;
}
while(d1==0&&d2==0&&d3==0)//兩個對管檢測到黑線停止
本設(shè)計定義火焰?zhèn)鞲衅髋c單片機P2.0接口相連,當(dāng)I/O口向單片機傳輸高電平時判斷有火焰產(chǎn)生,單片機發(fā)出命令驅(qū)動滅火裝置,滅火系統(tǒng)代碼如下:
sbit gz=P2^0; //定義火焰?zhèn)鞲衅?/p>
void Feng()
{
f1=1;f2=0;
DelayMs(5000); //風(fēng)扇轉(zhuǎn)5秒
}
本設(shè)計以亞克力底板作為支撐小車的框架,L298N步進電機直流電機作為車輪驅(qū)動,STC89C51單片機作為小車的主控單元,設(shè)計人員按照電路圖連接單片機與傳感器,成功組裝好智能滅火小車,如圖4所示。使用黑色膠帶在地上鋪設(shè)小車軌道,當(dāng)只有中間循跡檢測到黑線,小車直走;當(dāng)左邊循跡檢測到黑線,小車左轉(zhuǎn);當(dāng)右邊循跡檢測到黑線,小車右轉(zhuǎn);當(dāng)循跡都檢測不到黑線,小車停止;當(dāng)小車停止,檢測到火焰時,啟動風(fēng)扇進行滅火。
圖4 智能滅火小車圖
智能小車的試驗裝置設(shè)計完成后,經(jīng)調(diào)試運行,各功能系統(tǒng)運行狀態(tài)良好,其很好地完成了軌跡巡行、火焰檢測與滅火設(shè)備的開啟控制等功能。