在本項目中,我將從頭開(kāi)始打造一個(gè)能夠使用藍牙進(jìn)行控制的四足烏龜機器人。該機器人擁有兩個(gè)自由度,采用的是爬行的方式進(jìn)行運動(dòng),所以在不平坦的地面可能不能正常工作。 第一步:3D打印組件 本機器人的部分機身是采用的3D打印技術(shù)制作的,我在這里提供了這些3D打印部件的.stl文件和.ipt文件,你可以根據自己的需要對這些文件修改。你需要打印的文件包含一個(gè)基板、一個(gè)蓋板、3個(gè)前后接頭、一個(gè)前面板、4個(gè)腿部接口、4個(gè)腿部折疊構件、一個(gè)后面板、4個(gè)側面和基板接頭、2個(gè)側面板、4個(gè)上部構件。 第二步:其它組件及成本 下面我列出了本項目所需要的主要部件以及成本。(當然,在中國購買(mǎi)的話(huà),大部分都會(huì )便宜一點(diǎn)。) ·3D打印部件~ 40-60美元 ·Arduino Uno~ 20美元 ·Arduino 5V傳感器擴展板~ 11美元 ·HC-06藍牙模組~ 10美元 ·8個(gè)Futaba S3003標準舵機~ 80美元 ·超聲波傳感器~ 7美元 ·4枚AA電池(驅動(dòng)舵機)~ 6美元 ·AA電池套~ 5美元 ·9V電池(驅動(dòng)Arduino)~ 8美元 ·9V電池連接器~ 5美元 ·4個(gè)母口對母口線(xiàn)(連接傳感器和擴展板)~ 5美元 ·計算機 總共大約在197美元~217美元之間。 第三步:腿的組裝 原料備齊了之后就可以開(kāi)始組裝了,我們從腿部開(kāi)始。8個(gè)舵機分成2組,每組4個(gè)分別安裝在機器人的“大腿關(guān)節”和“膝蓋關(guān)節”處。 其中“大腿關(guān)節”處4個(gè)的舵機需要固定在機器人的基板上。 第四步:連線(xiàn) 之后再將帶有擴展板的Arduino和電池等安裝到基板上,將藍牙模組、舵機和超聲波傳感器對應連接在A(yíng)rduino的相應位置上,最后連接電池。具體的連接方式如下圖所示: 連接好了是這樣: 第五步:運動(dòng)模式設計 設計一款機器人,為其設計合適的運動(dòng)模式當然是至關(guān)重要的。我的機器人是這樣運動(dòng)的: 當機器人向前運動(dòng)時(shí),它首先移動(dòng)其右前足向前,同時(shí)機器人會(huì )將左前足向后推。這會(huì )將整個(gè)機器人的右部向前推動(dòng)。然后機器人再向前移動(dòng)其左后足,這時(shí)又會(huì )將其右后足向后推。這種運動(dòng)會(huì )將機器人的左部推向前。接下來(lái)機器人會(huì )左前足向前、右前足后推;然后再右后足向前、左后腿后;如此往復。這種方式能讓機器人以比較快的速度向前運動(dòng)。如下圖所示: 而當機器人倒退時(shí),只需要反過(guò)來(lái)執行整個(gè)過(guò)程就行了。 如果機器人需要右轉,則機器人移動(dòng)右前足向前,同時(shí)又移動(dòng)右后足向前,然后在左后足不動(dòng)的情況下讓右前足向后運動(dòng)。接下來(lái)前移左前足,然后后移右后足,同時(shí)前移其左前足。右轉即完成。 同理,當機器人需要左轉時(shí),可以讓機器人線(xiàn)移動(dòng)左前足向前,并移動(dòng)左后足向前,然后在右后足保持不動(dòng)的狀態(tài)下讓左前足向后運動(dòng)。接下來(lái),機器人繼續移動(dòng)右前足向前,然后移動(dòng)左后足向后的同時(shí)后移其右前腿。左轉即完成。 第六步:代碼 代碼分為兩個(gè)部分:The_Social_Quadruped.ino和Quad_Functions.ino。 第一個(gè)包含了Servo.h庫(Arduino IDE自帶)和NewPing.h。我首先定義了觸發(fā)引腳、相應引腳以及超聲波傳感器的最大距離;之后我又定義了一個(gè)布爾變量,可以用來(lái)切換機器人的自動(dòng)模式。之后又定義了舵機。在設置函數中,我初始化了串口檢測器,讓我可以將命令發(fā)送到Arduino上。在循環(huán)函數中,我設置超聲波傳感器發(fā)送最近物體的距離給串口檢測器,然后檢查用戶(hù)輸入。如果用戶(hù)輸入字符為 f, b, r, l, w, s, u 或a,那么則將分別執行前進(jìn)、后退、右轉、左轉、揮手、睡眠、站立或自動(dòng)工作這幾個(gè)不同的功能。這些功能函數是在Quad_Functions.ino中定義的,可以輕松地調用。另外,需要提及的是當用戶(hù)按了a之后,機器人將進(jìn)入自動(dòng)模式;要取消自動(dòng)模式則需要用戶(hù)再點(diǎn)擊一次a。 第二部分Quad_Functions.ino則包含了所有功能的函數定義。其中包括機器人的各種運動(dòng)模式。前進(jìn)、后退、右轉、左轉等函數都很好理解,揮手功能包含wave2 和wave兩個(gè)函數,可以讓機器人分別使用左前足和右前足揮手。waveAuto函數是機器人在自動(dòng)模式下?lián)]手,使用的是右前足。睡眠模式是指機器人將舵機的位置運動(dòng)到讓機器人平躺到地面的模式。readPing函數則用來(lái)讀取超聲波傳感器傳遞的數據。 第七步:無(wú)線(xiàn)控制 首先當然要確保藍牙模塊是按以上描述正確安裝的。 接下來(lái),啟動(dòng)你電腦上的藍牙并將其和Arduino上的藍牙連接配對。配對完成之后,進(jìn)入控制面板,在設備中找到HC-06。右鍵點(diǎn)擊并選擇“屬性”,選擇“服務(wù)”選項,將該接口的串口通信勾線(xiàn)上。 然后進(jìn)入Arduino IDE,選擇路徑Tools -> Port,將上面“服務(wù)”選項中的接口設置上去。然后就大功告成了! 打開(kāi)串口監視器,你可以查看超聲波傳感器的讀數,并且可以將機器人通過(guò)USB連接到電腦上進(jìn)行控制。 |