李文龍+孫偉峰
摘 要:隨著全球進(jìn)入信息化,科技化。智能循跡小車,作為科技創(chuàng)新中比較入門級(jí)的一個(gè)作品,由于其原理較為簡(jiǎn)單,實(shí)現(xiàn)起來(lái)不是特別困難,常常作為高校中比賽或練習(xí)的一種形式,它可以利用前端的四個(gè)紅外裝置對(duì)地面的黑色膠帶進(jìn)行識(shí)別,將信息傳回Arduino進(jìn)行分析后,將不同大小的電流輸送給電機(jī)驅(qū)動(dòng),實(shí)現(xiàn)直行或者差速轉(zhuǎn)彎,從而實(shí)現(xiàn)智能循跡。本文通過(guò)對(duì)基于Arduino的智能循跡小車設(shè)計(jì)制作以及技術(shù)原理進(jìn)行分析,并探討其在實(shí)際生活中的應(yīng)用。
關(guān)鍵詞:智能循跡;Arduino;紅外模塊
1 循跡小車模塊介紹
Arduino是一款便捷靈活、方便上手的開源電子原型平臺(tái)。包含硬件和軟件。Arduino能通過(guò)各種各樣的傳感器來(lái)感知環(huán)境,通過(guò)控制燈光、馬達(dá)和其他的裝置來(lái)反饋、影響環(huán)境。板子上的微控制器可以通過(guò)Arduino的編程語(yǔ)言來(lái)編寫程序,編譯成二進(jìn)制文件,燒錄進(jìn)微控制器。
L298N電機(jī)驅(qū)動(dòng)模塊,它是SGS公司的產(chǎn)品,內(nèi)部包含4通道邏輯驅(qū)動(dòng)電路。是一種二相和四相電機(jī)的專用驅(qū)動(dòng)器,即內(nèi)含二個(gè)H橋的高電壓大電流雙全橋式驅(qū)動(dòng)器,接收標(biāo)準(zhǔn)TTL邏輯電平信號(hào),可驅(qū)動(dòng)46V、2A以下的電機(jī)。
四路紅外循跡模塊,此模塊是為智能小車提供一種紅外線探測(cè)系統(tǒng)的解決方案。該傳感器模塊對(duì)環(huán)境光線適應(yīng)能力強(qiáng),其具有幾對(duì)紅外線發(fā)射與接收管,發(fā)射管發(fā)射出一定頻率的紅外線,當(dāng)檢測(cè)方向遇到障礙物(反射面)時(shí),紅外線反射回來(lái)被接收管接收,經(jīng)過(guò)比較器電路處理之后,同時(shí)信號(hào)輸出接口輸出數(shù)字信號(hào)(一個(gè)低電平信號(hào)),可通過(guò)電位器旋鈕調(diào)節(jié)檢測(cè)距離,有效距離范圍2~60cm,工作電壓為3.3V-5V。該傳感器的探測(cè)距離可以通過(guò)電位器調(diào)節(jié),廣泛應(yīng)用于機(jī)器人避障、避障小車、等眾多場(chǎng)合。
2 硬件實(shí)現(xiàn)原理
四路紅外智能循跡小車設(shè)計(jì)主要利用小車前端的四個(gè)紅外發(fā)射和接收裝置來(lái)進(jìn)行對(duì)地面上的黑膠帶進(jìn)行分析,將黑膠帶的位置信息送給Arduino,Arduino將不同大小的電流輸送給電機(jī)驅(qū)動(dòng),實(shí)現(xiàn)直行或者差速轉(zhuǎn)彎,從而實(shí)現(xiàn)智能循跡。圖1為智能循跡小車的原理框圖。
四路紅外循跡模塊主要由四對(duì)紅外探測(cè)傳感器構(gòu)成,它們構(gòu)成了循跡小車的“眼睛”。每對(duì)紅外傳感器由一個(gè)紅外線發(fā)射管和紅外線接收管組成。紅外線發(fā)射管用來(lái)發(fā)射紅外光,紅外線接收管用來(lái)檢測(cè)紅外光,當(dāng)檢測(cè)到紅外光時(shí),相應(yīng)的位就會(huì)呈現(xiàn)低電平,地面上的黑膠帶不反射紅外線發(fā)射管發(fā)射的紅外線,使相應(yīng)的紅外線接收管呈現(xiàn)高電平。當(dāng)小車在延著黑膠帶構(gòu)成的賽道行駛時(shí),若遇到拐彎,會(huì)使不同的紅外線接收管依次呈現(xiàn)高電平,根據(jù)不同紅外接收管的高低電平變化,可以推斷出軌道的變化情況,從而編寫合適的程序來(lái)使小車循跡。Arduino中用來(lái)存放控制小車循跡的程序,它是循跡小車的“大腦”。它接收四路紅外發(fā)射器的信號(hào),根據(jù)程序?qū)π≤嚨倪\(yùn)行狀態(tài)做出判斷,給出不同大小的電流控制小車兩邊電機(jī)的轉(zhuǎn)速。
3 軟件實(shí)現(xiàn)
小車的軟件設(shè)計(jì)關(guān)系到循跡小車是否能夠正常循跡,因此它是循跡小車設(shè)計(jì)十分重要的組成部分,好的程序能使小車的前進(jìn)的速度更快,轉(zhuǎn)彎角度更加合理,良好設(shè)計(jì)的程序可以提高軟件的執(zhí)行效率。Arduino的程序編寫采用Processing語(yǔ)言的開發(fā)環(huán)境,所用到的語(yǔ)句簡(jiǎn)單易學(xué),適合初學(xué)者進(jìn)行入門掌握。
部分程序如下:
starttime=millis();
do {
TEST();
if (D1==1)
{
FORW(50);
goto start;
}
stoptime=millis();
looptime=stoptime-starttime;
}
while(looptime<45);
BACK(25);
STOP(50);
do {
TEST();
crcL(0,115);
}
while(MIX!=100);
crcR(45,115);
STOP(100);
break;
void TEST()
{ MIX=digitalRead(D4)*1000+digitalRead(D3)*100
+digitalRead(D2)*10+digitalRead(D1);
}
參考文獻(xiàn)
[1]趙建偉,班鈺,王義,等.基于Arduino的智能小車的控制系統(tǒng)設(shè)計(jì)[J].兵工自動(dòng)化,2015年第34卷
[2]陳開軍.基于Arduino技術(shù)的智能小車設(shè)計(jì)[J].科技創(chuàng)新,2014年第34期
[3]Massimo Banzi著.于新龍 郭浩赟.譯[M].愛上Arduino,人民郵電出版社
[4]孫寧,向琴,張勇.智能循跡小車的設(shè)計(jì)[J].科技風(fēng),2014年第18期
[5]吳冬燕,基于紅外傳感器的智能循跡小車[P],國(guó)家知識(shí)產(chǎn)權(quán)局2015.05.21