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