BOXZ,昵稱盒仔。是一款開源的互動(dòng)娛樂平臺!我們將Arduino,亞克力板和紙模型創(chuàng)意的結(jié)合在一起,讓大家可以快速搭建自己的遙控玩偶,開展互動(dòng)體驗(yàn),而它的組裝就像搭樂高積木一樣簡單!而盒仔的外形和功能完全取決于您的創(chuàng)意。我們可以用它來搞足球比賽,角色扮演,賽車或?qū)?zhàn),甚至拍MV!
我們希望通過盒仔,讓大家把更多的精力放在創(chuàng)意和互動(dòng)上,讓每個(gè)喜歡DIY的人都能擁有自己的小機(jī)器人,最最重要的是可以拿出來與大家進(jìn)行互動(dòng),分享快樂,而不是靜靜躺在實(shí)驗(yàn)室里。
大家可以在家里制作BOXZ,快速體驗(yàn)互動(dòng)機(jī)器人的魅力。BOXZ對材料沒有什么要求,可以是硬紙板,PVC塑料等任何2MM厚度的材質(zhì)。我們推薦使用2MM厚的硬紙板,因?yàn)槠鋬r(jià)格便宜且加工容易,美術(shù)用品商店就有,大概10元一張。
1 材料和工具
1.1 工具清單
壁紙刀(最好用如圖小款窄刀片,寬刀片切槽費(fèi)勁)
鋼板尺
雙面膠(5MM寬度最佳)
螺絲刀(小號一字和十字各一個(gè))
電烙鐵和焊錫絲(如無,就多纏幾圈線然后綁膠帶吧)
斜嘴鉗
萬用表(安全第一)
鉛筆(可無)
紙膠帶(備用,當(dāng)購買的硬紙板厚度不足2MM時(shí),可用此緊固)
電鉆(如無,就用壁紙刀吧)
1.2 材料清單
Arduino 2009 328P 主控 x 1 (也可以是UNO)
Arduino 電機(jī)驅(qū)動(dòng)板 x 1 (要求可堆疊,極力推薦ladyada.net設(shè)計(jì)的Arduino兼容全功能電機(jī)驅(qū)動(dòng)板)
Arduino 藍(lán)牙控制板 x 1 (要求可堆疊,當(dāng)然也可以采用傳感器擴(kuò)展板+藍(lán)牙板,或者Zigbee板,本文只介紹藍(lán)牙)
TT減速齒輪箱 x 2
130電機(jī) 5V x 2
65MM 塑料車輪 x 2
4節(jié)5號電池盒 x 1
面包線 x 4
五號電池 x 4(如為1.2V充電電池,需要五節(jié))
2MM厚白色硬紙板(但厚度盡量是2MM,雖然1.6MM也勉強(qiáng)可以,但是硬度不夠,需要用紙膠帶加固)
M1.0x30MM 螺絲+螺母 x 6
M3x10MM 六角銅柱 + M3螺母 x 3(長度可以是5-20MM范圍內(nèi),推薦用10MM長的)
2? 方盒結(jié)構(gòu)件制作部分
在開始制作之前,我們先來了解一下盒仔的機(jī)械結(jié)構(gòu)吧
上圖就是盒仔板塊一覽,盒仔是由大小不等的板塊構(gòu)成,板塊和板塊之間采用插入式連接,因此不需要任何螺絲等緊固件。但是盒仔和其他部件,例如電機(jī)之間的連接就只能通過螺絲螺母了。這里面最大的板子外圍尺寸為128x128MM,也是我們盒仔的外殼尺寸。這樣的板子一共有五塊,包圍了整個(gè)盒仔,我們稱之為大板。其中還有些尺寸各異的支撐板,用來支撐盒仔內(nèi)部的Arduino模塊和電機(jī)。值得一提的是,在最新的Base圖紙中,我們已經(jīng)優(yōu)化掉了P006,同時(shí)在即將發(fā)布的Pro中,P007也會消失,我們一直致力于讓大家可以以一種最簡單的方式快速構(gòu)建盒仔,就像搭積木一樣簡單。
首先將下載好的BOXZ Base圖紙和皮膚打印到A4紙上
先把皮膚放到一邊,我們需要先把圖紙進(jìn)行裁剪到合適的大小,大概距離邊線10MM左右即可
然后把圖紙進(jìn)行簡單的排版,用雙面膠把裁減好的圖紙粘貼到硬紙板上,記得雙面膠要粘貼在板塊的線框以內(nèi),每個(gè)大板4個(gè),其他2個(gè)即可,主要是固定作用。圖紙?jiān)诓们型旰笫莵G掉的,因此粘貼時(shí)間不能過長,太久了的話雙面膠固化了,圖紙撕下來可能會影響硬紙板的效果。
首先用裁紙刀將各個(gè)板塊裁成一塊,一塊的。然后對需要開孔的用電轉(zhuǎn)進(jìn)行開孔,如果沒有的話,就用壁紙刀吧,但是注意孔不能開大了,否則螺絲就固定不住了。開完孔后就可以對邊角進(jìn)行修正,開槽。等一個(gè)板塊的所有邊線都裁切完成之后,就可以揭去圖紙了。呵呵,一塊純手工打造的盒仔板塊就算完成啦!
陸陸續(xù)續(xù)對其他所有的板塊進(jìn)行裁切,并完成所有的板塊,整個(gè)過程大概會占用你4-5小時(shí),如下圖。
3 板塊的組裝
列表中對每一個(gè)板塊的編號和名稱都有定義,如果你對于第一次組裝盒仔感到困擾的話,我們有一個(gè)建議就是根據(jù)上面的我們定義過的P0xx的編號,用鉛筆對每一塊進(jìn)行標(biāo)注,我們下面的組裝過程會按照編號跟大家講解。下圖為盒仔的結(jié)構(gòu)示意圖,從圖中大家可以大致了解各個(gè)板塊之間的連接關(guān)系。我們的板塊采用了對稱設(shè)計(jì),因此你幾乎可以忽略安裝時(shí)上下左右的方向問題,它們之間不分正反,可以相互替換。即使第一眼你覺得很復(fù)雜也沒關(guān)系,只要按照我們的教程一步一步操作即可。
好的,下面我們開始介紹盒仔的組裝。為了讓大家更熟悉正安裝過程,我們配合Sketchup效果圖給大家解釋整個(gè)組裝過程。首先用到的是P003,我們一共有2塊電機(jī)支撐板,用于連接和固定TT減速箱電機(jī)(以下簡稱電機(jī))。在開始安裝電機(jī)之前,大家可以先把P003實(shí)驗(yàn)性的插入P001,從而定義好一個(gè)方向,我們的電機(jī)都是在支撐板內(nèi)側(cè)安裝的。然后就可以用緊固件分別把電機(jī)固定在P003的內(nèi)側(cè)了。如圖每塊P003與TT減速箱通過兩個(gè)M1.0x30MM的螺絲固定。
將安裝好電機(jī)的2塊P003插入P001,然后把P002插入P001,此時(shí)整個(gè)盒仔的支撐結(jié)構(gòu)已經(jīng)完成。這里強(qiáng)調(diào)一點(diǎn),一定要注意安裝的先后順序,這很重要!
把電池盒用緊固件固定在P001上,這樣我們的電機(jī)便牢牢的固定在了支撐板上。你可能會發(fā)現(xiàn),此時(shí)的支撐結(jié)構(gòu)還不是很穩(wěn)定,在外力作用下依然有晃動(dòng)。不要擔(dān)心,我們還很很多板塊沒有安裝,等你把盒仔板塊全部組裝完成之后,你就好發(fā)現(xiàn)它是多么的堅(jiān)固穩(wěn)定了。
另外對于電池盒我們要額外說明一下的是,我們推薦大家使用4節(jié)5號普通電池,其電壓為1.5V(新電池一般能達(dá)到1.7V),4節(jié)即6V構(gòu)成了我們系統(tǒng)的最低電壓。如果你使用的是1.2V的充電電池,那么就需要更換成5節(jié)5號電池盒。
將車輪安裝在盒仔P003的兩側(cè),此時(shí)一個(gè)盒仔的最小系統(tǒng)已經(jīng)出來了。你可以直接用面包線將電機(jī)連接到電池盒上,做成一個(gè)簡易的小賽車,呵呵。
將兩塊P004分別插入P001的兩側(cè),然后裝入兩塊P005,它們負(fù)責(zé)連接P002,P003和P004。此時(shí)你的小車應(yīng)該已經(jīng)非常牢固了!如果你所購買的硬紙板厚度不足2MM或者比較軟的時(shí)候,我們建議你用紙膠帶,對P002,P004和P005進(jìn)行一個(gè)整體的加固,這會讓你在安裝外圍板塊的時(shí)候更輕松。
現(xiàn)在盒仔的底板已經(jīng)全部完成。這里我們要用到編號為P008的主控平臺板,從中可以看出一共有三個(gè)孔位對應(yīng)著Arduino主控上的三個(gè)固定孔。通過3個(gè)緊固件將Arduino主控固定在P008上,這里大家需要注意一下方向,兩個(gè)孔的沖向盒仔的正前方。P008還有一個(gè)人性化的功能,即使你要用Arduino做其他有趣的事情,只要將P008向上一推即可取出,然后作為平臺板放置到桌子上,不但方便大家調(diào)試,更重要的是安全!因?yàn)樽雷由系募?xì)小的銅絲或其它金屬物可能導(dǎo)致Arduino短路,這是非常危險(xiǎn)的!
好的,下面我們可以通過USB線纜對Arduino的程序進(jìn)行下載了,下載方法請參看Arduino基礎(chǔ)教程。
將裝好Arduino的P008插入我們的盒仔底盤,插入P002,這里我們需要使用P007作為支撐墊板先插入P001中
然后將電機(jī)驅(qū)動(dòng)板疊加到Arduino主控之上,下面就是連接各個(gè)電路部分了,不要慌,我們只有6根線哦!第一步,首先將電池盒的紅線連接到電機(jī)驅(qū)動(dòng)板的M+,然后將黑線連接至GND,電源部分完成!第二步,將電機(jī)連接到電機(jī)驅(qū)動(dòng)板上,連接方法如圖:P1-M1.1,P2-M1.2,P4-M2.1,P5-M2.2。其中P3是懸空的。第三步,確認(rèn)電機(jī)驅(qū)動(dòng)板的跳帽為短接狀態(tài)(在電源端子旁邊,默認(rèn)為短接狀態(tài),如果取下跳帽,則電機(jī)驅(qū)動(dòng)板和Arduino將需要獨(dú)立供電)。
最后將藍(lán)牙控制板也疊加在電機(jī)板之上,我們的電路部分就基本搭建完成了!這里需要注意一點(diǎn),我們教程中使用藍(lán)牙板有切換軟硬串口的跳線功能,而板子的默認(rèn)位置需要大家確認(rèn)一下,只要按照圖中2個(gè)紅色方塊所示調(diào)整好跳帽即可。
最后將兩塊P040,P020和P030四塊外圍板依次安裝,(這只是一張實(shí)際安裝效果圖,圖中兩根我們做Pro版本測試的舵機(jī)線,藍(lán)牙跳帽的位置是錯(cuò)的,請大家注意)
最讓人激動(dòng)的時(shí)刻馬上就要到了!蓋上P050頂板,插入電池,一個(gè)Base版的盒仔誕生了!
測試通過的話,我們就可以開始制作皮膚了。
4 Arduino程序和調(diào)試
關(guān)于程序,我們列出初始化部分和主程序,以便讓大家對其有個(gè)了解。全部代碼大家可以 點(diǎn)此下載 。這里要強(qiáng)調(diào)一點(diǎn)的是我們使用了ladyada.net設(shè)計(jì)的電機(jī)驅(qū)動(dòng)庫AFMotor,大家需要把解壓后的文件放到Arduino安裝目錄libraries的文件夾下。
程序片段如下:
ARDUINO 代碼復(fù)制打印
/*
BOXZ is is an open source robot platform for interactive entertainment!
We connected Arduino,Plexiglass(PMMA) Origami and your idea together,
so we can easily and quickly build a remote robot by ourself!
We can use it to playing football game, racing, fighting or some other interesting things!
Author: Guangjun Zhu
Email: [email]zgj0729@163.com[/email]
Code license: Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0)
*/
#include
#include
/*
b_motor_stop(): stop motor
b_motor_com(): for Manual Operator
b_servo_ini();
b_servo_com();
b_skill();
*/
//-------------------define motor----------------------------------------------//
AF_DCMotor motorL(1,MOTOR12_8KHZ); //connect to M1
AF_DCMotor motorR(2,MOTOR12_8KHZ); //connect to M2
int motor_speed = 200; //[modifid]motor speed 150-200,---min:100;max:255
int motor_delay = 400; //[modifid]delay time in step
//-------------------define servo----------------------------------------------//
Servo hand_l_servo; // create servo object to control a servo
Servo hand_r_servo; // create servo object to control a servo
int hand_l_pos = 90; //
int hand_r_pos = 90; //
int hand_delay = 1; //[modifid] speed of hand
//------------------main program-----------------------------------------------//
void setup()
{
Serial.begin(9600);
b_motor_stop();
b_servo_ini();
delay(2000); //waiting time
Serial.println(“Hello! BOXZ!”);
}
void loop()
{
int key;
if(Serial.available() 》 0) {
key = Serial.read();
if(key 》= 30 && key 《= 122) {
b_motor_com(key);
b_servo_com(key);
b_skill(key);
}
}
// servo_test();
}
從中我們可以看出,盒仔的主程序很少,調(diào)用了不同的功能子程序來實(shí)現(xiàn)其功能。盒仔是通過Arduino的串口將數(shù)據(jù)發(fā)送給藍(lán)牙控制板,由筆記本電腦或者手機(jī)接收藍(lán)牙串口數(shù)據(jù),大家可以使用任何串口終端控制我們的盒仔。目前我們用windows7筆記本,MacBook和Iphone三種終端測試通過了藍(lán)牙和Zigbee兩種通訊模塊,將來也會推出Wifi通訊。,由于軟件還有很多功能需要添加,目前就暫不公布了,不過大家可以用串口助手實(shí)現(xiàn)操作,就像我們發(fā)布視頻中的一樣,操作也很方便。
盒仔Base的程序是通過接收來自于鍵盤按鍵來進(jìn)行動(dòng)作判斷的,只支持單個(gè)的字符。而在盒仔 Pro的版本中我們將采用更強(qiáng)大的字符串通訊方式,讓大家擁有更棒的互動(dòng)體驗(yàn)!
盒仔的操作就像打電腦游戲一樣,操作方式按鍵定義如下:
方向控制按鍵定義:‘w’-前進(jìn);‘a(chǎn)’-左轉(zhuǎn);‘s’-后退;‘d’-右轉(zhuǎn);‘ ’(空格)-急剎車 (如果你按下鍵盤的Shift鍵,將會激活點(diǎn)動(dòng)模式,配合相應(yīng)的方向鍵,例如W為向前一小步,A為向左轉(zhuǎn)90°)
當(dāng)然在我們提供的代碼里面還包括舵機(jī)部分的控制,你可以用舵機(jī)控制左右手臂的擺動(dòng),點(diǎn)動(dòng)等多種動(dòng)作,具體定義大家可以看程序的注釋,本教程以介紹盒仔 Base的安裝為主,就不過多描述。
5 番外篇-皮膚制作
盒仔方盒整體尺寸:128x128x128MM
盒仔皮膚的基本尺寸:130x130x130MM
首先打印我們的皮膚,圖紙大家可以從Github上免費(fèi)下載,鏈接在本文最后提供。這里我們選擇了Creeper,一共需要3張A4紙。
沿線裁剪皮膚,如圖。
由于紙張較薄,所以裁剪后有些微翹。建議大家使用厚一點(diǎn)的A4紙張打印,即可避免此問題。
用雙面膠粘貼在白色連接區(qū)域中,然后將每塊皮膚粘貼在一起,這里建議大家使用5MM寬的雙面膠。
由于紙張較薄的關(guān)系,這里用紙膠帶進(jìn)行了加固處理。
皮膚制作完成,來看一下整體效果吧。
最后再來一張配合馬里奧的合影,呵呵。
6 更多盒仔的故事
一個(gè)好的開始。
盒仔2號原型機(jī)的作者是我們團(tuán)隊(duì)的視頻后期高手,他的兒子很喜歡憤怒的小鳥。于是他爹就給他做了個(gè)紅色小鳥的盒仔皮膚,套在盒仔上面和兒子一起玩互動(dòng)。想象一下您和家人在一起,控制一只憤怒的小鳥沖向一堆貼有鋼盔豬的飲料瓶或者積木時(shí)的開心景象吧!
細(xì)心的大家可能會發(fā)現(xiàn)我們的文章里的照片實(shí)際使用的是P041板塊,而不是BOXZ Base標(biāo)配的P040。P041是在其基礎(chǔ)上增加了舵機(jī)擴(kuò)展槽,可以讓大家安裝9G舵機(jī)。P041將會出現(xiàn)在BOXZ Pro版本中,由于目前我們還需要驗(yàn)證其開槽位置是否恰當(dāng),所以暫時(shí)沒有發(fā)布。
我們的盒仔已經(jīng)在 點(diǎn)名時(shí)間 發(fā)布了,上面有更多關(guān)于盒仔的故事。如果大家喜歡,可以來支持我一票!
大家可以免費(fèi)下載我們的 設(shè)計(jì)圖紙
本教程中Arduino主控,電機(jī)驅(qū)動(dòng)板和藍(lán)牙控制板的圖片來自互聯(lián)網(wǎng),歸各自廠家所有,詳細(xì)資料請登錄網(wǎng)站查詢。
評論
查看更多