林委鋒
“老師,今天我們要學(xué)習(xí)什么呢?”“同學(xué)們,機(jī)器人的外形多種多樣,有的大,有的小,它們各有各的用途。你們看老師手上的這個(gè)機(jī)器人(如下圖),它有什么特別之處?對(duì)了,和以前做的機(jī)器人相比,它外形變小了!是不是很可愛?你們喜歡這樣的機(jī)器人嗎?那我們就來做一個(gè)這種指尖上的機(jī)器人吧!”
圖1是這種機(jī)器人的結(jié)構(gòu)組成,主要用到的元件和材料有:(1)Arduino Nano控制板,(2)電機(jī)驅(qū)動(dòng)板L9110S,(3)減速電機(jī)N20和D輪,(4)6厘米線槽。
Arduino Nano是Arduino系列控制板的微型版本,它沒有電源插座,程序的下載接口是Mini-B型USB接口。Arduino Nano尺寸非常小,而且可以直接插在面包板上使用。
為了縮小機(jī)器人的外形,電機(jī)不再使用本欄目以前介紹的TT電機(jī),而是改用一種比較小的N20減速電機(jī)和配套的D輪。電機(jī)驅(qū)動(dòng)板選用L9110S,其工作電壓為2.5~12V,有兩個(gè)通道輸出,每個(gè)通道最大工作電流0.8A。其控制端有6個(gè)引腳,分為三組:(1)電源供電端VCC、GND,由于電機(jī)的工作電流比較大,控制板5V端的輸出電流可能會(huì)不夠,可將VCC端接9V電池,獨(dú)立供電;(2)電機(jī)A控制端引腳1A、1B;(3)電機(jī)B控制端引腳2A、2B。當(dāng)控制端A、B為高、低電平時(shí),控制電機(jī)的正、反轉(zhuǎn),當(dāng)A、B同為低電平或高電平時(shí),電機(jī)停止。與L298N不同的是,L9110S沒有單獨(dú)的調(diào)速端,所以在實(shí)際電路連接中,把控制端分別接到Arduino控制板的PWM引腳(3、5、6、9),把原來的高電平輸出改為PWM輸出,來實(shí)現(xiàn)調(diào)速。為了方便各模塊與Arduino Nano控制板的導(dǎo)線連接,將控制板裝在一小面包板上,用9V電池供電。電池通過導(dǎo)線連接到Nano板的VIN和GND端口上,如圖2所示,再從5V和GND端引出5V電源給其他模塊供電。其他引腳的使用分配及導(dǎo)線連接可參看圖1,也可參考本欄目往期的介紹自行設(shè)計(jì)。
這種指尖機(jī)器人所用的線槽寬度為6cm,長度約15cm。制作中先考慮電機(jī)和輪子的安裝位置,確定好后鉆孔、安裝,然后再安裝各個(gè)功能模塊,如圖3中的超聲波傳感器(HC-SR04)、尋跡模塊(紅外反射傳感器H6B3)和液晶顯示屏(I2C LCD1602)。也可以根據(jù)自已的興趣,安裝其他模塊。
接下來編寫程序。首先編寫一個(gè)測試程序,讓機(jī)器人前進(jìn)、轉(zhuǎn)彎,看機(jī)器人是否可以正常工作。然后根據(jù)機(jī)器人安裝的功能模塊,編寫一個(gè)機(jī)器人走黑線程序。走黑線程序是一個(gè)重復(fù)循環(huán)的模塊,還可以增加一個(gè)避障的功能模塊,如圖4所示,把循環(huán)改為條件循環(huán),增加一個(gè)超聲波距離判斷指令,當(dāng)障礙物的距離小于10cm的時(shí)候,機(jī)器人停止或拐彎,完成避障的功能。
如果你希望機(jī)器人再炫酷一些,那就把“跟老林學(xué)做機(jī)器人(十)”介紹的藍(lán)牙模塊添加上去,再修改程序和手機(jī)控制端程序,你就可以用手機(jī)來控制它了。