相關(guān)商品














【創(chuàng)客學(xué)堂】3D萬(wàn)圣節(jié)禮物之Arduino骷髏精靈
編輯:Techie2013-11-21 13531382@qq.com 瀏覽次數(shù):1577
骷髏精靈—3D+Arduino+創(chuàng)客的融合
3D打印技術(shù),目前正火的一個(gè)熱門話題。Arduino,一種開源,易用的控制器。兩者結(jié)合,再融入一點(diǎn)創(chuàng)客們的精神力量,可以讓一個(gè)骷髏頭變成具有靈性的骷髏精靈!在萬(wàn)圣節(jié)來(lái)臨之際,給大家介紹一個(gè)用Makerbot 3D打印機(jī)打印的骷髏+Arduino UNO控制器+紅外線傳感器制作的一個(gè)玩具:座在一個(gè)盒子上的骷髏頭,兩個(gè)眼睛可以盯著你,并跟隨你的方向。拿它當(dāng)作萬(wàn)圣節(jié)禮物一定相當(dāng)不錯(cuò)呢,哈哈,可不要害怕喲。
圖1 骷髏精靈正看著你呢
骷髏頭-3D打印
3D打印現(xiàn)在可以說(shuō)是爆發(fā)式的進(jìn)行著發(fā)展,某寶網(wǎng)上搜3D打印,有1.33萬(wàn)個(gè)結(jié)果,內(nèi)容也相當(dāng)之豐富,各種3D打印機(jī),有幾千元的、也有幾萬(wàn)元的;各種打印形式,F(xiàn)DM、SLS、SLA;各種打印機(jī)品牌,Makerbot、reprap、Mix2。。。。。。下面的骷髏頭就是用Makerbot打印機(jī)+PLA塑料,采用FDM(熔融沉積式 ,Fused deposition modeling)技術(shù)打印出來(lái)的。當(dāng)然,骷髏精靈的眼睛、底座,傳感器的小盒子也是3D打印機(jī)的杰作。
圖2 骷髏頭3D模型 圖3 打印出來(lái)的骷髏頭 圖4 3D打印的傳感器盒子 圖5 內(nèi)裝的紅外避障傳感器
眼睛動(dòng)起來(lái)—Ardino 控制器
當(dāng)然要想讓骷髏精靈動(dòng)起來(lái),你一定得為它加上電控,這里我仍然選擇Arduino UNO控制器,簡(jiǎn)單易用,方便可靠,控制器首選;對(duì)于兩只眼睛,負(fù)載很小,我選用了舵機(jī)里面?zhèn)€頭最小的9g舵機(jī);用于檢測(cè)物品的傳感器,我選的是mini紅外避障傳感器,可以調(diào)節(jié)動(dòng)作范圍以及靈敏度,方便實(shí)際應(yīng)用環(huán)境。
圖6 Arduino UNO 控制器 圖7 Arduino 傳感器擴(kuò)展板
眼睛動(dòng)起來(lái)—機(jī)械結(jié)構(gòu)
下面再來(lái)看下眼睛動(dòng)作的機(jī)械結(jié)構(gòu)。找個(gè)不用的按動(dòng)式圓珠筆,發(fā)揮我們的優(yōu)良傳統(tǒng):拆!這里用到了兩根圓珠筆芯當(dāng)骷髏精靈眼睛的轉(zhuǎn)軸,金屬頭也可以方便的與眼睛相連;兩根軸的同步橫軸也是用的筆芯;連接銷用的訂書釘;然后注意,不要用舵機(jī)的舵盤直接與同步橫軸相連,因?yàn)樽杂啥炔粔?,舵機(jī)動(dòng)作時(shí)會(huì)卡。我的解決方法是把剛才拆到的彈簧拿來(lái),套在同步橫軸上,舵盤連接到彈簧,間接控制轉(zhuǎn)軸,OK了。這樣不但解決問(wèn)題,還可以通過(guò)轉(zhuǎn)動(dòng)彈簧,來(lái)調(diào)節(jié)眼睛的轉(zhuǎn)動(dòng)范圍,一舉兩得。
圖8 骷髏頭眼睛的內(nèi)部結(jié)構(gòu)
軟硬兼施
硬件制作完成了,再來(lái)寫程序吧。功能是:當(dāng)人走進(jìn)骷髏精靈的“視力范圍”時(shí),它的眼睛就會(huì)看向你,會(huì)隨著你的移動(dòng)而轉(zhuǎn)動(dòng)。因?yàn)楣δ芎?jiǎn)單,程序?qū)懫饋?lái)不難,只要考慮好細(xì)節(jié),比如有兩個(gè)人或很多人圍著骷髏精靈時(shí),它該看誰(shuí)呢?看美女嗎?我是讓它誰(shuí)也不看,目視前方,哈哈。話不多話,上程序。
#include <Servo.h>
Servo skulleye;
int sensor1 = 2;
int sensor2 = 3;
int sensor3 = 4;
int sensor4 = 5;
int pos = 0;
int state1, state2,state3,state4,state5;
void setup()
{
pinMode(sensor1, INPUT);
pinMode(sensor2, INPUT);
pinMode(sensor3, INPUT);
pinMode(sensor4, INPUT);
//Serial.begin(9600);
skulleye.attach(9);
state1=state2=state3=state4=1;
delay(500);
}
void loop()
{
state1 = 1-digitalRead(2);
state2 = 1-digitalRead(3);
state3 = 1-digitalRead(4);
state4 = 1-digitalRead(5);
state5=(state1+state2+state3+state4);
if(state5==4)//all on
{
skulleye.write(90);
}
if(state5==0)//all close
{
skulleye.write(90);
}
if(state5==1) // 1 sensor on
{
if(state1==1)
{
skulleye.write(20);
delay(100);
}
if(state2==1)
{
skulleye.write(67);
delay(100);
}
if(state3==1)
{
skulleye.write(114);
delay(100);
}
if(state4==1)
{
skulleye.write(160);
delay(100);
}
}
if(state5==2) //two sensors on
{
if(state1==1&state2==1)
{
skulleye.write(47);
delay(100);
}
if(state2==1&state3==1)
{
skulleye.write(90);
delay(100);
}
if(state3==1&state4==4)
{
skulleye.write(134);
delay(100);
}
else
{
skulleye.write(90);
delay(100);
}
}
if(state5==3) //three sensors on
{
if(state1==0)
{
skulleye.write(114);
delay(100);
}
if(state2==0)
{
skulleye.write(114);
delay(100);
}
if(state3==0)
{
skulleye.write(67);
delay(100);
}
if(state4==0)
{
skulleye.write(67);
delay(100);
}
}
/* Serial.println(state5);
delay(1000);*/
}
收尾
剛開始時(shí)效果不太理想,眼睛不是盯著不動(dòng),而是一直在挺激動(dòng)的抖啊抖的,根本停不下來(lái),原因是紅外傳感器的靈敏度要調(diào)整。當(dāng)然如果你應(yīng)用的場(chǎng)合感應(yīng)距離不同,也要適當(dāng)調(diào)整下感應(yīng)距離。
眼睛轉(zhuǎn)動(dòng)范圍調(diào)整完畢,線路擺好,就可以合蓋,試玩啦。暫時(shí)不要把它裝進(jìn)萬(wàn)圣節(jié)禮物包中,先來(lái)讓大家感受下被骷髏精靈盯著的新奇吧!
圖9 骷髏精靈整體展示
相關(guān)鏈接
骷髏頭3D模型下載地址: http://www.thingiverse.com/thing:29114
Arduino UNO 控制器:http://lifestyle201.com/goods-141.html
傳感器擴(kuò)展板V5.0:http://lifestyle201.com/goods-147.html
Mini 避障傳感器:http://lifestyle201.com/goods-41.html
Makerbot 3D打印機(jī):http://lifestyle201.com/goods-396.html
3D打印服務(wù):http://lifestyle201.com/goods-434.html
用戶評(píng)價(jià)
暫時(shí)還沒(méi)有任何用戶評(píng)論