陳文澄 張輝 張晉滔
摘 要:基于STC89C52為核心設(shè)計(jì)了一款多功能智能小車(chē)。硬件部分用紅外傳感器作為循跡與紅外遙控的核心器件,同時(shí)搭載超聲波模塊及WIFI模塊用以拓展智能小車(chē)的超聲波避障功能與WIFI遙控功能。軟件設(shè)計(jì)部分通過(guò)PWM程序調(diào)制控制小車(chē)姿態(tài)調(diào)整。通過(guò)了Proteus的模擬與仿真,并落地實(shí)測(cè)。實(shí)驗(yàn)表明,設(shè)計(jì)方案可以很好地完成循跡,避障,遙控等功能,為進(jìn)一步研制智能化程度更高的機(jī)器小車(chē)提供了參考價(jià)值。
關(guān)鍵詞:紅外傳感器;循跡;避障;遙控
中圖分類(lèi)號(hào):TP23 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2095-2945(2019)04-0032-03
Abstract: A multifunctional intelligent car is designed based on STC89C52. In the hardware part, the infrared sensor is used as the core device of tracking and infrared remote control. At the same time, the ultrasonic module and the WIFI module are used to expand the ultrasonic obstacle evading function and the WIFI remote control function of the intelligent car. The software design part uses the PWM program modulation to control the attitude adjustment of the trolley. Through the Proteus simulation, emulation and measurement, experiments show that the design can realize tracking, obstacle evading, remote control and other functions, and provide a reference value for the further development of a more intelligent machine car.
Keywords: infrared sensor; tracking; obstacle evading; remote control
當(dāng)今機(jī)器人技術(shù)發(fā)展得如火如荼,其應(yīng)用在國(guó)防等眾多領(lǐng)域得到廣泛開(kāi)展。神五、神六升天、無(wú)人飛船等等無(wú)不得益于機(jī)器人技術(shù)的迅速發(fā)展。一些發(fā)達(dá)國(guó)家已把機(jī)器人制作比賽作為創(chuàng)新教育的戰(zhàn)略性手段[1]。智能電動(dòng)小車(chē)系統(tǒng)以迅猛發(fā)展的汽車(chē)電子為背景,涵蓋了控制、模式識(shí)別、傳感技術(shù)、電子、電氣、計(jì)算機(jī)、機(jī)械等多個(gè)學(xué)科。主要由路徑識(shí)別、角度控制及車(chē)速控制等功能模塊組成[2]。本文旨在體現(xiàn)智能小車(chē)的自動(dòng)與智能,小車(chē)可以通過(guò)傳感器及串口等來(lái)獲取信息,同時(shí)將信息交由單片機(jī)處理,單片機(jī)根據(jù)不同的信息調(diào)整小車(chē)的行為,可以實(shí)現(xiàn)自動(dòng)循跡避障等自動(dòng)功能,也支持紅外和WIFI遙控等人為操控。
1 系統(tǒng)整體設(shè)計(jì)
系統(tǒng)采用STC89C52單片機(jī)作為核心控制芯片,根據(jù)智能小車(chē)所需要實(shí)現(xiàn)的功能將系統(tǒng)分成不同的模塊,用不同的傳感器模塊分別對(duì)應(yīng)完成各自功能。整體設(shè)計(jì)框圖如圖1所示。
2 硬件設(shè)計(jì)
2.1 驅(qū)動(dòng)模塊
2.1.1 電機(jī)驅(qū)動(dòng)芯片
L293D是驅(qū)動(dòng)小型直流電機(jī)的專(zhuān)用驅(qū)動(dòng)芯片,屬于H橋集成電路,其輸入端可以與單片機(jī)直接相接,從而很方便地接受單片機(jī)控制[3]。只需要控制輸入端的高低電平,就能實(shí)現(xiàn)電機(jī)正轉(zhuǎn)與反轉(zhuǎn)。實(shí)際操作中,建議使用帶減速箱的直流電機(jī)。小車(chē)運(yùn)動(dòng)時(shí)傳感器獲取實(shí)時(shí)信息,交由單片機(jī)處理后,經(jīng)由各個(gè)IO接口輸出高低電平,從而實(shí)現(xiàn)前、后、左、右各個(gè)方向的轉(zhuǎn)動(dòng)。圖2為電機(jī)驅(qū)動(dòng)模塊L293D的引腳接線圖。
2.1.2 電機(jī)速度控制
采用脈沖寬度調(diào)制方式(PWM)從I/O口輸出不同占空比的脈沖,經(jīng)濾波后獲得不同高低電平用以控制電機(jī)。本方案可以達(dá)到對(duì)速度的控制要求,且控制方法簡(jiǎn)單易實(shí)現(xiàn)。
脈沖寬度調(diào)制程序如下:
void go_PWM(void) //PWM前進(jìn)
{
for(i=0;i<10;i++)
{
IN1=1;IN2=0;IN3=0;IN4=1;
IN5=1;IN6=0;IN7=0;IN8=1;
ENA=ENB=ENC=END=1; //設(shè)置占空比為8/13
Delay_Ms(8);
ENA=ENB=ENC=END=0;
Delay_Ms(14);
}
}
2.2 紅外模塊
2.2.1 紅外傳感器
紅外傳感器是一對(duì)紅外線發(fā)射與接收對(duì)管,發(fā)射管發(fā)出一定頻率的紅外線,當(dāng)被反射回來(lái)之后被接收管接收[4],經(jīng)過(guò)比較器電路后會(huì)在輸出口輸出一個(gè)高低電平的數(shù)字量,可以調(diào)節(jié)電位器來(lái)調(diào)節(jié)檢測(cè)距離,紅外傳感器控制電路圖如圖3所示。
2.2.2 紅外循跡
循跡功能采用的是紅外探測(cè)法,即利用紅外線在不同顏色的物體表面具有不同的反射性質(zhì)的特點(diǎn),在小車(chē)行駛過(guò)程中不斷地向地面發(fā)射紅外光,當(dāng)紅外光遇到白色紙質(zhì)地板時(shí)發(fā)生漫反射,反射光被裝在小車(chē)上的接收管接收;如果遇到黑線則紅外光被吸收,小車(chē)上的接收管接收不到紅外光。單片機(jī)就是否收到反射回來(lái)的紅外光為依據(jù)來(lái)確定黑線位置和小車(chē)的行走路線[5-6]。同時(shí)為了加強(qiáng)系統(tǒng)的穩(wěn)定性及可靠性,小車(chē)加入了脈沖寬度調(diào)制(即PWM信號(hào)),通過(guò)PWM信號(hào)來(lái)控制四個(gè)電機(jī)的速度,使其四個(gè)電機(jī)速度一致,可以改變占空比實(shí)現(xiàn)電機(jī)的調(diào)速。
紅外循跡程序如下:
if(MODE_2==0) ///////進(jìn)入循跡模式
{
while(1)
{ // 循跡模塊邊有信號(hào)為1(白線) 沒(méi)有信號(hào)為0(黑線)
if(Left_X_led==1&&Right_X_led==1) ////沒(méi)有碰線
go_PWM();}
if(Left_X_led==1&&Right_X_led==0) //右邊碰黑線
rightrun_PWM();
if(Right_X_led==1&&Left_X_led==0) //左邊碰黑線
leftrun_PWM();
if(Left_B_led==0&&Right_B_led==0) //正對(duì)障礙物
{
zhuangxiang(); //轉(zhuǎn)向
zhuangxiang();
delay(30);
}
}
}
2.2.3 紅外遙控
紅外遙控系統(tǒng)由發(fā)射和接收兩大部分組成,紅外遙控系統(tǒng)框圖如圖4所示,應(yīng)用編/解碼專(zhuān)用集成電路芯片來(lái)進(jìn)行控制。發(fā)射部分包括鍵盤(pán)、編碼調(diào)制、LED紅外發(fā)送器;接收部分包括光、電轉(zhuǎn)換放大器、解調(diào)、解碼電路。通過(guò)紅外遙控器和與單片機(jī)相連的紅外接收管實(shí)現(xiàn)對(duì)小車(chē)的紅外遙控。
2.3 超聲波模塊
2.3.1 超聲波測(cè)距原理
超聲波模塊部分使用的是HC-SR04測(cè)距模塊,可以提供2cm-400cm的非接觸式距離感測(cè)功能,測(cè)距精度可達(dá)3mm[7]。模塊由超聲波發(fā)射器,接收器和控制電路組成。采用單片機(jī)I/O口來(lái)觸發(fā)測(cè)距,模塊自動(dòng)發(fā)送8個(gè)40kHz的方波,同時(shí)檢測(cè)是否有信號(hào)返回,然后通過(guò)I/O口輸出高低電平,高電平持續(xù)的時(shí)間為超聲波從發(fā)射到返回的時(shí)間,根據(jù)聲音傳播的公式[8]:距離=(時(shí)間*聲速(340m/S))/2可得:測(cè)試距離=(高電平時(shí)間*聲速(340m/S))/2。在控制口發(fā)出高電平,等待接收口接收到高電平時(shí)即打開(kāi)計(jì)時(shí)器定時(shí),當(dāng)接收到低電平時(shí)讀取定時(shí)器的值,取兩者的差值即為本次測(cè)量的時(shí)間,不斷進(jìn)行周期測(cè)量,再通過(guò)上述的公式即可達(dá)到超聲波測(cè)距的功能。
超聲波測(cè)距程序如下:
void Conut(void) //計(jì)算距離
{
while(!ECHO); //當(dāng)RX為零時(shí)等待
TR0=1; //開(kāi)啟計(jì)數(shù)
while(ECHO); //當(dāng)RX為1計(jì)數(shù)并等待
TR0=0; //關(guān)閉計(jì)數(shù)
time=TH0*256+TL0; //讀取脈寬長(zhǎng)度
TH0=0;
TL0=0;
S=(time*1.7)/100; //算出來(lái)是cm
}
2.3.2 超聲波避障
通過(guò)在車(chē)上搭載的超聲波測(cè)距模塊可以實(shí)現(xiàn)超聲波避障功能。當(dāng)小車(chē)啟動(dòng)時(shí)同時(shí)啟動(dòng)超聲波模塊,舵機(jī)歸中以確保超聲波模塊正對(duì)小車(chē)前方,在程序中給超聲波測(cè)距模塊設(shè)定一個(gè)閾值開(kāi)始工作,如設(shè)定的閾值為10cm,那么當(dāng)檢測(cè)到前方障礙物小于該值(10cm)時(shí),小車(chē)停止并運(yùn)用舵機(jī)配合超聲波測(cè)量小車(chē)左方和右方離障礙物的距離,同時(shí)將這兩個(gè)距離送由單片機(jī)作比較,如果左邊離障礙物的距離大于右邊的測(cè)量值小車(chē)左轉(zhuǎn),反則同理。
2.4 WIFI模塊
通過(guò)WIFI模塊作為上位機(jī)和單片機(jī)溝通的橋梁,用C#編寫(xiě)上位機(jī)與單片機(jī)的通信軟件,軟件界面如圖5所示,通過(guò)串口通信功能將指令發(fā)送到單片機(jī)的串口,單片機(jī)根據(jù)接收到的指令輸出I/O口的高低電平來(lái)驅(qū)動(dòng)電機(jī)的轉(zhuǎn)動(dòng),從而實(shí)現(xiàn)通過(guò)WIFI在電腦和手機(jī)終端遙控智能小車(chē)。在小車(chē)上搭載一個(gè)攝像頭并對(duì)視頻進(jìn)行編碼,將所拍攝的畫(huà)面經(jīng)由WIFI返回上位機(jī),從而實(shí)現(xiàn)對(duì)智能小車(chē)的實(shí)時(shí)監(jiān)控。
2.5 按鍵模塊
設(shè)計(jì)了四個(gè)獨(dú)立按鍵來(lái)組成功能鍵,每按下一個(gè)按鍵智能小車(chē)會(huì)進(jìn)入到對(duì)應(yīng)的模式,如按鍵一對(duì)應(yīng)循跡模式,按鍵二實(shí)現(xiàn)避障功能等,通過(guò)設(shè)立功能鍵實(shí)現(xiàn)智能小車(chē)功能的快速切換。
3 程序設(shè)計(jì)
智能小車(chē)的程序使用C語(yǔ)言編寫(xiě),具有明顯的可讀性與可維護(hù)性,方便閱讀與修改,易于理解。整體設(shè)計(jì)流程圖如圖6所示。通過(guò)下載線將程序燒錄到單片機(jī),經(jīng)過(guò)落地實(shí)測(cè),各種模塊功能穩(wěn)定可靠。最后的成品如圖7所示。
4 結(jié)束語(yǔ)
本設(shè)計(jì)使用了模塊化設(shè)計(jì)的方法,將不同的功能分模塊實(shí)現(xiàn),每個(gè)模塊對(duì)應(yīng)的功能均經(jīng)過(guò)多次調(diào)試,最后將各部分模塊的功能組合在一起。該智能小車(chē)能實(shí)現(xiàn)多種的功能,電源啟動(dòng)后進(jìn)入到初始化,等待按下功能鍵選擇不同的功能。循跡模式下小車(chē)通過(guò)紅外傳感器來(lái)不斷修正路徑,實(shí)現(xiàn)黑白線循跡;避障模式下小車(chē)通過(guò)超聲波避障,實(shí)現(xiàn)當(dāng)前方遇到障礙物,小車(chē)會(huì)自動(dòng)轉(zhuǎn)向從而實(shí)現(xiàn)避障;紅外遙控模式下,小車(chē)可以通過(guò)車(chē)上的紅外對(duì)接收管來(lái)接收紅外遙控器發(fā)出的指令進(jìn)而實(shí)現(xiàn)紅外遙控;WIFI遙控模式下,開(kāi)啟車(chē)上的WIFI模塊,可以通過(guò)電腦上的上位機(jī)軟件實(shí)現(xiàn)對(duì)小車(chē)的操控,同時(shí)可以在軟件中獲取小車(chē)攝像頭所拍攝的實(shí)時(shí)影像。所有這些功能組合成一個(gè)有機(jī)的整體,實(shí)現(xiàn)了一臺(tái)有一定智能功能的小車(chē),為實(shí)現(xiàn)更具有智能化的機(jī)器人研制打下了基礎(chǔ)。
參考文獻(xiàn):
[1]劉志嫻,江敏,阮玲玉.基于51單片機(jī)智能小車(chē)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2018,14(21):273-274+279.
[2]呂美高,劉國(guó)權(quán).基于STC89C52單片機(jī)的GPS定位智能小車(chē)[J].電子質(zhì)量,2018(06):36-40.
[3]姬紅旭.基于STC89C52單片機(jī)智能避障小車(chē)設(shè)計(jì)[J].職業(yè)技術(shù),2011,10(8).
[4]李歡.基于51單片機(jī)的智能小車(chē)設(shè)計(jì)[J].信息與電腦(理論版),2016(23).
[5]楊睿,路雪松,金亞玲.智能小車(chē)的避障控制系統(tǒng)的單片機(jī)設(shè)計(jì)研究[J].時(shí)代農(nóng)機(jī),2018(09):248.
[6]祝松柏,李清宇.基于STC89C52的循跡避障智能小車(chē)的設(shè)計(jì)[J].輕工科技,2018,34(03):65-66.
[7]姚兵.智能小車(chē)的設(shè)計(jì)及制作[J].電子技術(shù)與軟件工程,2018(05):247.
[8]張冬昌,賀子懿,張冬梅.智能小車(chē)的單片機(jī)控制設(shè)計(jì)實(shí)現(xiàn)[J].中國(guó)新通信,2018,20(01):230.