“老師,今天我們要學(xué)習(xí)什么呢?” “嗯,在機(jī)器人比賽場地上經(jīng)常會看到機(jī)器人沿著黑線行走,它們是怎么辦到的呢?原來,它們身上裝有能夠巡線的傳感器——紅外反射傳感器。”現(xiàn)在我們就來給機(jī)器人加一個這樣的功能——尋跡!
圖1所示是2016年第6期做的點贊機(jī)器人,我們在點贊機(jī)器人的前面加了一個巡線模塊。如圖2所示,巡線模塊實際上是一個紅外反射傳感器。模塊上有一個紅外發(fā)射二極管和一個光敏三極管,其背面有兩個指示燈,分別是電源指示燈和開關(guān)指示燈。當(dāng)通電時,電源指示燈亮,紅外發(fā)射二極管不斷發(fā)射紅外線。當(dāng)遇到黑色或較暗的物體時,紅外線沒有被反射回來,或雖然被反射回來但強(qiáng)度不夠大,光敏三極管就處于關(guān)斷狀態(tài),此時模塊輸出端D0為低電平,開關(guān)指示燈處于熄滅狀態(tài)。當(dāng)遇到白色或較亮的物體時,紅外線被反射回來且強(qiáng)度足夠大,光敏三極管飽和,此時模塊輸出端D0為高電平,開關(guān)指示燈被點亮。
如圖3所示,為方便觀察,只連接電機(jī)驅(qū)動板和尋線模塊。先把紅外傳感器固定到小車的前端,傳感器距離地面1cm左右。紅外反射傳感器的VCC、GND、D0分別和Arduino板的5V、GND和D3腳連接。通電后觀察巡線模塊在黑、白區(qū)域移動時,開關(guān)指示燈是否會變化。如果是常亮或常暗,可調(diào)節(jié)模塊上的可調(diào)電阻,直到指示燈的狀態(tài)可以變化。
機(jī)器人沿黑線行走的原理如圖4所示,編寫巡線程序如圖5,圖中D6、D9是PWM調(diào)速引腳,用于控制左右電機(jī)的轉(zhuǎn)速,設(shè)置為90。當(dāng)一個電機(jī)轉(zhuǎn)動時,另一個電機(jī)的調(diào)速引腳設(shè)置為0,控制電機(jī)停止轉(zhuǎn)動。
把程序下載到小車上。找一張大的白紙,用黑色電工膠帶貼出一個黑色圓形軌跡圖,測試小車是否能沿黑線行走。圖5為所編寫的程序,因為沒有停止指令,所以小車會一直沿著黑線行走?,F(xiàn)在把超聲波傳感器和舵機(jī)連接到電路中,修改程序如圖6、圖7、圖8。在這些程序中,小車的左轉(zhuǎn)和右轉(zhuǎn)分別放置到兩個子程序left、right中,這樣可以使程序簡短一些。小車的巡線程序和圖5就不一樣了,它是一種條件循環(huán)。當(dāng)超聲波傳感器與前面的障礙物距離大于10cm的時候,小車重復(fù)執(zhí)行巡線程序。當(dāng)障礙物距離小于10cm時,機(jī)器人的手臂豎立起來,小車停止運(yùn)動5s。