《智能循跡避障機(jī)器人論文打印特制材料》由會(huì)員分享,可在線閱讀,更多相關(guān)《智能循跡避障機(jī)器人論文打印特制材料(11頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、
智能循跡避障機(jī)器人
設(shè)計(jì)論文
院系班級(jí):
學(xué) 號(hào):
姓 名:
指導(dǎo)教師(職稱):
完成時(shí)間:
智能循跡避障機(jī)器人
摘 要:利用紅外對管檢測黑線與障礙物,并以STC89C52單片機(jī)為控制芯片控制機(jī)器人小車的速度及轉(zhuǎn)向,從而實(shí)現(xiàn)自動(dòng)循跡避障的功能。其中小車
2、驅(qū)動(dòng)由L298N驅(qū)動(dòng)電路完成,速度由單片機(jī)輸出的PWM波控制。
關(guān)鍵詞:智能;STC89C52單片機(jī); L298N;紅外對管
1.機(jī)器人小車的構(gòu)成
它可以分為三大組成部分:傳感器檢測部分、執(zhí)行部分、CPU。機(jī)器人要實(shí)現(xiàn)自動(dòng)避障功能,還可以擴(kuò)展循跡等功能,感知導(dǎo)引線和障礙物??梢詫?shí)現(xiàn)小車自動(dòng)識(shí)別路線,選擇正確的行進(jìn)路線,并檢測到障礙物自動(dòng)躲避?;谏鲜鲆?,傳感檢測部分考慮到小車一般不需要感知清晰的圖像,只要求粗略感知即可,所以可以舍棄昂貴的CCD傳感器而考慮使用價(jià)廉物美的紅外反射式傳感器來充當(dāng)。智能小車的執(zhí)行部分,是由直流電機(jī)來充當(dāng)?shù)?,主要控制小車的行進(jìn)方向和速度。單片機(jī)驅(qū)動(dòng)直流
3、電機(jī)由軟件模擬PWM輸出調(diào)制,需要占用單片機(jī)資源,難以精確調(diào)速,但單片機(jī)型號(hào)的選擇余地較大。
2.機(jī)器人小車功能
機(jī)器人要實(shí)現(xiàn)自動(dòng)導(dǎo)引功能和避障功能,要感知導(dǎo)引線和障礙物,感知導(dǎo)引線相當(dāng)給機(jī)器人一個(gè)視覺功能。
3.1主板設(shè)計(jì)框圖如圖3.1
Stc89c52
循跡紅外對管
時(shí)鐘電路
復(fù)位電路
報(bào)警電路
電機(jī)驅(qū)動(dòng)
避障紅外對管
圖3.1 主板設(shè)計(jì)框圖
3.2驅(qū)動(dòng)電路
電機(jī)驅(qū)動(dòng)一般采用H橋式驅(qū)動(dòng)電路,L298N內(nèi)部集成了H橋式驅(qū)動(dòng)電路,從而可以采用L298N電路來驅(qū)動(dòng)電機(jī)。通過單片機(jī)給予L298N電路PWM信號(hào)來控制小車的速度,起停。其引
4、腳圖如3.2,驅(qū)動(dòng)原理圖如圖3.3。
圖3.2 L298N引腳圖
圖3.3 電機(jī)驅(qū)動(dòng)電路
3.3信號(hào)檢測模塊
小車循跡原理是小車在畫有黑線的白紙 “路面”上行駛,由于黑線和白紙對光線的反射系數(shù)不同,可根據(jù)接收到的反射光的強(qiáng)弱來判斷“道路”—黑線。筆者在該模塊中利用了簡單、應(yīng)用也比較普遍的檢測方法——紅外探測法。
紅外探測法,即利用紅外線在不同顏色的物理表面具有不同的反射性質(zhì)的特點(diǎn)。在小車行駛過程中不斷地向地面發(fā)射紅外光,當(dāng)紅外光遇到白色地面時(shí)發(fā)生漫發(fā)射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,則小車上的接收管接收不到信號(hào),再通
5、過LM324作比較器來采集高低電平,從而實(shí)現(xiàn)信號(hào)的檢測。避障亦是此原理。電路圖如圖3.4。
市面上有很多紅外傳感器,在這里我選用TCRT5000型光電對管。
圖3.4循跡原理圖
3.4主控電路
本模塊主要是對采集信號(hào)進(jìn)行分析,同時(shí)給出PWM波控制電機(jī)速度,起停。以及再檢測到障礙報(bào)警等作用。其電路圖如圖5。
圖3.5 主控電路
4.1主程啟動(dòng)
循跡
是否檢測到停止線
停止
是否檢測到障礙
N
Y
避障
Y
N
序框圖:
4.2電機(jī)驅(qū)動(dòng)程序
void goahead()
{
s1=1;
s2=0;
s3=1;
s4=0;
}
voi
6、d goback()
{
s1=0;
s2=1;
s3=0;
s4=1;
}
void turnleft()
{
s3=1;
s4=0;
}
void 開始
前進(jìn)
掃描I/O口,是否檢測到黑線
Y
左邊 右邊
左轉(zhuǎn)
右轉(zhuǎn)
N
turnright()
{
s1=1;
s2=0;
}
void stop()
{
en1=0;
en2=0;
}
4.3循跡模塊
循跡框圖:
循跡程序:
void xunji()
{
if((left_red==1)&(right_red==1))
{
en1=1;
en2=1;
go
7、ahead();
delay(150);
en1=0;
en2=0;
delay(50);
}
else if((left_red==0)&(right_red==1))
{
en1=0;
en2=1;
P0_0=!P0_0;
turnleft();
delay(150);
en1=1;
en2=0;
delay(50);
}
else if((left_red==1)&(right_red==0))
{
en1=1;
en2=0;
P0_1=!P0_1;
turnright();
delay(150);
en1=0;開始
后退
8、一點(diǎn),報(bào)警
后退
左轉(zhuǎn)
前進(jìn)
右轉(zhuǎn)
Y
左轉(zhuǎn)
是否檢測到障礙
前進(jìn)
N
en2=1;
delay(50);
}
else
{
stop();
}
}
4.4避障模塊
避障框圖:
避障程序:
void bizhang()
{
en1=1;
en2=1;
goback();
mid_red=0;
baojing();
goback();
for(i=0;i<8;i++)
{
en1=1;
en2=1;
delay(150);
en1=0;
en2=0;
delay(50);
}
stop();
9、
delay(10);
turnleft();
for(i=0;i<11;i++)
{
en1=0;
en2=1;
delay(130);
en2=0;
delay(50);
}
stop();
delay(10);
goahead();
for(i=0;i<22;i++)
{
en1=1;
en2=1;
delay(130);
en1=0;
en2=0;
delay(50);
}
stop();
delay(10);
turnright();
for(i=0;i<18;i++)
{
en1=1;
e
10、n2=0;
delay(130);
en1=0;
delay(50);
}
xun: if((left_red==1)&(right_red==0))
{
loop: turnleft();
en1=0;
en2=1;
delay(30);
turnright();
en1=1;
delay(50);
en1=0;
delay(50);
en2=0;
delay(50);
if((left_red==1)&(right_red==1))
{
;
}
else
{
goto loop;
}
}
else
{
en1=1;
en2=1;
11、
goahead();
delay(80);
en1=0;
en2=0;
delay(50);
goto xun;
}
}
參考文獻(xiàn)
[1]郭惠,吳迅.單片機(jī)C語言程序設(shè)計(jì)完全自學(xué)手冊[M].電子工業(yè)出版社,2008.10:1-200.
[2]王東鋒,王會(huì)良,董冠強(qiáng). 單片機(jī)C語言應(yīng)用100例[M]. 電子工業(yè)出版社,2009.3:145-300.
[3]韓毅,楊天. 基于HCS12單片機(jī)的智能尋跡模型車的設(shè)計(jì)與實(shí)現(xiàn)[J].學(xué)術(shù)期刊,2008,29(18):1535-1955.
[4] 王曉明. 電動(dòng)機(jī)的單片機(jī)控制[J]. 學(xué)術(shù)期刊,2002,13(15):1322-1755.
11
clb借鑒