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