10
編者注:本項(xiàng)目來自Instructables,作者Smudger_WTH利用3D打印和基于Arduino的機(jī)器人程序開發(fā)一個(gè)能夠行走,也能夠變成機(jī)器小車的“變形金剛”;其通過安卓手機(jī)的藍(lán)牙連接進(jìn)行控制。作者為其起名為蜘蛛機(jī)器人(Spiderbot),下面我們就來看看這只變形蜘蛛是怎么煉成的。
電子組件:
Arduino Nano
12個(gè)EMAX ES08MA II舵機(jī)
Adafruit 16信道12位PWM/伺服驅(qū)動
藍(lán)牙HC-05模組
電機(jī)驅(qū)動L293D
4個(gè)300RPM 6V N20直流電機(jī)(帶橡膠輪胎)
Hobbywing UBEC-8A2-6S 電子調(diào)速器(UBEC)
Wild Scorpion 7.4V 2200mAh LiPo電池和對應(yīng)的電池接頭
6cm x 9.5cm PCB板
2個(gè)LED燈
線材等
結(jié)構(gòu)材料:
50枚M2 x 10mm圓頭螺絲
30枚M1.2 x 6mm沉頭自攻螺釘
少量扎帶
3D打印組件
本項(xiàng)目的大部分結(jié)構(gòu)部件都是利用3D打印技術(shù)制作完成的,具體的文件點(diǎn)擊 3D_Print_Parts_STL.rar下載,其中包含8個(gè)獨(dú)立的文件,打印數(shù)量如下:
base.stl 基板x1
cover.stl 蓋板x1
coxa.stl 髖板x2
coxa_mirror.stl 髖板固定x2
femur.stl 股板x4
motorMount.stl 電機(jī)安裝板x4
tibia.stl 脛板x2
tibia_mirror.stl 脛板固定x2
使用M1.2 x 6mm的螺絲將4個(gè)股板做好,并將舵機(jī)臂安裝到基板上。
使用M2螺絲將舵機(jī)安裝到髖板和脛板上。
將帶輪子的N20直流電機(jī)安裝到脛板上,這里使用M2螺絲和電機(jī)安裝板進(jìn)行固定。
注意電機(jī)和舵機(jī)的方向。
電子組件的連接圖如下,我們需要為這些連接制作一塊PCB板。
PCB板的設(shè)計(jì)(下載PDF文件或PCB文件),其尺寸為6cm x 9.5cm。
制作成功的PCB。
安裝各個(gè)部件,這里安裝了6條線:2條5V、2條接地、Arduino Rx<->HC-05 Tx和Arduino Tx<->HC-05 Rx。
安裝開關(guān)。
將兩個(gè)LED分別串聯(lián)一個(gè)電阻后并聯(lián)起來,它們將作為機(jī)器人的兩只眼睛。
最后,將電子調(diào)速器(UBEC)連接到6V輸出,并將UBEC的輸出連接到16信道伺服驅(qū)動。
將舵機(jī)連接到板上。舵機(jī)有三條線,其中棕色是地線,紅色接V+,黃色是PWM。
為了和后面的程序匹配,這里選擇的連接方式是:
左前腿舵機(jī)是0,1,2;
右前腿舵機(jī)是4,5,6;
左后腿舵機(jī)是8,9,10;
右后腿舵機(jī)是12,13,14;
另外,接口3,11,15空接;接口7用于LED的PWM調(diào)制。
然后將控制4個(gè)輪子的4個(gè)電機(jī)和PCB上的電機(jī)焊接起來,一共8個(gè)接口。
這里的代碼需要用到Adafruit_PWMServoDriver舵機(jī)驅(qū)動庫,其安裝方法點(diǎn)擊這里查看。
庫安裝完成后,就可以開始編譯代碼了。另外注意一點(diǎn):在使用USB為Arduino Nano寫入代碼時(shí),注意不要將其它供電組件連接到Arduino上。點(diǎn)擊spiderbot_servo.rar下載代碼。
代碼上傳完成后,接好斷開的線就可以打開電源了。
設(shè)備啟動時(shí),所有的舵機(jī)都會回歸到“0”位點(diǎn),最后會呈現(xiàn)下圖的模樣:髖板與基板成45度角,股板與髖板成30度角,而脛板豎直略向外。如果樣子不同,那就需要進(jìn)行適當(dāng)?shù)恼{(diào)整,調(diào)整過程中不需要斷電。另外,你也可以通過調(diào)節(jié)Arduino代碼中的偏移值對其進(jìn)行校準(zhǔn)。
接下來在底面固定電池。
你可以在Arduino代碼的主循環(huán)函數(shù)中單獨(dú)調(diào)用單個(gè)函數(shù)來對機(jī)器人進(jìn)行調(diào)試。
void loop() {
//去掉函數(shù)前面的雙斜杠即可單獨(dú)調(diào)用該函數(shù)
//forward();
//backward();
//left();
//right();
//vehicle();
}
如果運(yùn)動方式不對,進(jìn)行相應(yīng)的調(diào)節(jié)即可。在汽車模式下,機(jī)器人的腿應(yīng)該像下圖一樣折疊起來。注意折疊起來之后不要對舵機(jī)的運(yùn)動構(gòu)成阻礙,一旦你聽到異常響亮的噪聲,很可能是舵機(jī)負(fù)載過大,這時(shí)應(yīng)該切斷電源。
至于機(jī)器人的步態(tài)(creep gait),看起來有些奇怪,但機(jī)器人運(yùn)動學(xué)不是本項(xiàng)目的主題,詳情你可以點(diǎn)擊這里了解。簡單來說,就是在一只腳抬起的時(shí)候,另外三只腳必須在地面以保持平衡和穩(wěn)定。你也可以在Arduino代碼中對步態(tài)進(jìn)行調(diào)節(jié),讓它看起來更優(yōu)雅一點(diǎn)。
最后你也可以修改代碼中mleft()和mright()函數(shù)中的參數(shù)修改汽車模式下機(jī)器人左轉(zhuǎn)右轉(zhuǎn)的角度。
本項(xiàng)目的安卓程序是作者自己編寫的,界面比較簡單,只有左下角的運(yùn)動控制和右下角的變形按鈕。另外需要注意的一點(diǎn)是,如果你沒有進(jìn)行修改,該藍(lán)牙設(shè)備的初始名字應(yīng)該是HC-05,初始密碼是1234.
本安卓程序的源代碼在這里下載,編譯好的APK文件則可點(diǎn)擊這里下載。
將LED穿過蓋板上的孔,蓋緊蓋板就完成了,接下來開始試玩,跑起來還真夠奇葩的!
視頻:
2015-2016賽季全球創(chuàng)客馬拉松深圳大學(xué)站已經(jīng)開始接受報(bào)名啦!關(guān)注“硬創(chuàng)邦”(微信號:leiphone_bang),回復(fù)“深大”即可參與報(bào)名!而且,雷鋒網(wǎng)在未來三個(gè)月內(nèi)選一個(gè)合適的時(shí)間,在北上深選擇一個(gè)地點(diǎn),舉辦創(chuàng)馬“火星救援”專場!詳情可點(diǎn)擊此處了解。
此外還可加入全球創(chuàng)客馬拉松主群(群號:259592983),參與我們的互動討論~
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。