
正所謂“一夜成名天下知”,在過去的30年間,快速成型技術在傳統工業制造方式的擠壓下,只能蜷縮在制造業的某些角落。然而今天,在開源運動的助推下,硬件作為軟件的附屬已變得十分廉價,3D打印技術也因此迎來了它的高速發展期。各種桌面型3D打印設備層出不窮,在網上搜索3D打印機,會瀏覽到數以萬計的相關內容。從MakerBot、Ultimaker這些優秀的桌面型3D打印機到提供給電子愛好者的各種開源硬件,這些神奇的東西終將改變我們未來的生活。
喜歡嘗鮮的筆者老早就購置了一臺3D打印機,這款打印機采用的是相對成熟的FDM技術,據說,它是目前市場上最可靠的桌面型3D打印機。材料使用的是廉價的環保可降解絲材PLA。

圖1 筆者使用的MakerBot 3D打印機
從第一次開始打印,筆者就深深的愛上了這臺3D打印機。有了它,自己再也不必為了滿屋翻找合適的零部件。一般的外殼與支撐結構、通孔,甚至是關鍵的連接件,只要是經過合理的設計,都可以一次打印搞定。把筆者從鋸條、電鉆、手銼的原始DIY生活中解放出來了,幾乎實現了從設計到制造的一體化,省時又省力。我們姑且不談什么產業鏈、什么生態圈,就以上的幾個優點,筆者發自肺腑的告訴你:“3D打印機,值得擁有”。
筆者在萬圣節來臨之際,想給好友DIY一個小禮物。整個禮物的外殼都是這臺>MakerBot 3D打印機的杰作,透過本書,我會將這個小禮物的制作全過程,向你娓娓道來。
骷髏精靈——3D打印與Arduino完美結合
說了半天3D打印,其實它早已是開源領域的一個熱議話題;而Arduino,則是流行已久的簡單、易用的開發板。這兩款神器落在熱衷于改變生活的筆者手里,會創造出怎樣的驚喜呢?下面就和大家一起分享用3D打印機+Arduino控制器+避障傳感器等部件制作的一款新奇小禮物:放置在盒子上的一個靈異骷髏頭,我喜歡叫它“骷髏精靈”。在內部Arduino的控制下,它的兩個眼睛會隨時盯著面前的你!拿它當作萬圣節禮物送給朋友一定搞怪。.
為了制作這樣一個詭異的萬圣節禮物,筆者想起了早先在Thingiverse下載的骷髏模型。打算以它為藍本,進行一番Arduino電控改造。首先,把模型文件放入MakerWare中,配置為低精度打印,等待Gcode生成完畢,存入SD卡,開始打印。

圖2 模型放入MakerWare中
接下來,還要為這個骷髏頭設計兩個炯炯有神的大眼睛,在SolidWorks里,我們直接為眼球添加一個安裝孔,直接3D打印出來,省去了后續的鉆孔操作。當然,如果前期,孔的大小不是很確定,也可以先在Solidworks里隨便開一個小孔,這樣后期用電鉆擴孔會很方便。

圖3 Solidworks繪制骷髏眼球
為了禮品的美觀,我們還需要繪制一個外殼,即能夠做為承托骷髏頭的底座,也能夠安置我們的Arduino控制板。

圖4 用SolidWorks繪制骷髏頭底座

圖5 3D打印骷髏模型過程
嗯,不錯。這些結構零部件就先交給3D打印機來加工吧。想讓骷髏精靈的眼球盯著面前的人轉動起來,除了“眼球”相關機構的設計外,更重要的是電控部分的程序設計。接下來給大家說明下它的電路控制部分的組成。
眼睛轉起來——控制板與傳感器挑選
為了實現讓骷髏精靈的眼睛盯著面前物體移動,我們需要一些能夠檢測面前障礙物的傳感器,除此之外是一種能夠帶動眼睛轉動的電機。最重要的是控制核心板,由它來接收傳感器信號,執行特定程序,最終驅動控制電機運動,實現我們想要的功能。別急,筆者這就為大家慢慢介紹自己的硬件搭配方案。
控制器:身為一個電子制作迷,筆者一定會選擇Arduino系列控制器,因為它簡單易用、方便可靠;不過考慮到如今許多人身邊都閑置有Micro-USB接口的手機數據線,筆者要給大家推薦的是一款配備Micro USB接口的CarDuino UNO控制器。它的功能與Arduino UNO完全一致,但板上的Micro USB接口會為你省去購買數據線的開銷,板子更強,接口標注更清晰。

圖6 CarDuino UNO 控制器
CarDuino UNO控制器的基本參數
控制芯片 ATmega328
運行電壓 5V
輸入電壓 7-12V
數字I/O口 14個(6路具備PWM功能)
模擬輸入口 6個
Flash空間 32KB(0.5KB被bootloader使用)
SRAM 2KB
EEPROM 1KB
時鐘頻率 16MHz
數據接口 Micro-USB
驅動電機:骷髏頭的兩只眼睛需要能夠轉動,不過這里攜帶的負載質量小,且轉向始終是同步的,筆者選用了一個小巧的9g伺服舵機,至于具體的傳動結構,就留到后面詳細敘述。

圖7微型伺服舵機
避障傳感器:檢測面前物體的傳感器,筆者將用到的是一種Mini紅外避障傳感器,它板載兩個電位器,一個調節感應范圍、一個調節靈敏度,能夠適應環境,靈活易用。

圖8 Mini紅外避障傳感器
為了我們的小制作更加美觀,筆者也特別地為Mini紅外避障傳感器設計了外殼,一起交給3D打印機來加工。


圖9 3D打印的紅外避障傳感器外殼
傳感器擴展板:由于手頭恰好有一塊傳感器擴展板,筆者也就懶得用多余的杜邦線了,直接把傳感器與舵機的3P接線頭插接在該擴展板上對應接口上即可。

圖10傳感器擴展板
所需要的電路元件已經選擇好了,接下來只要把UNO擴展板插接在CarDuino UNO上,四個紅外避障傳感器分別連接在擴展板的數字2、數字3、數字4、數字5接口,舵機連接在數字9接口,下面羅列電路控制方面的基本硬件構成:

圖11 硬件構成框圖
眼睛轉起來——機械結構設計
接下來著重介紹下眼睛動作的機械結構。本著一切從簡的目的,這次筆者并沒有打算使用3D打印機來加工復雜的機械傳動結構。而是找來兩個廢棄的按動式圓珠筆,發揮我們的優良傳統:拆!
把其中的兩根圓珠筆芯當做骷髏精靈眼睛的轉軸,筆芯從骷髏的眼眶下方穿出,圓珠筆芯則方便的與“眼球”穿接。這樣,圓珠筆芯一旋轉,就會帶動眼球一起旋轉。

圖12 “眼睛”旋轉的機械結構
兩根轉軸的同步橫軸也是用的筆芯,連接銷用的是訂書釘。這樣,這根橫軸擺動的同時,就會間接帶動上面的兩個眼球轉動。試圖用舵機的搖臂直接與同步橫軸相連時,筆者犯了難。因為舵臂轉動受限,轉角稍有不慎,舵機動作就會卡住,容易損害舵機。看著桌面上多余的兩個彈簧,筆者當時靈機一動。把這其中一個拆出的彈簧拿來,套在同步橫軸上,搖臂連接到彈簧,間接帶動同步橫軸。舵機轉動過量時,不會卡死,而是壓縮彈簧。

圖13 舵機帶動“眼球”轉動的機械結構
好了,一個由舵機擺動進而帶動兩個眼球左右轉動的機械結構設計完成,然后安上后蓋。

圖14 初步組裝好的骷髏精靈
骷髏精靈之靈魂——Arduino程序編寫
硬件與機械結構制作完成了,趕快來寫程序吧,這個可是筆者的強項。思考下,程序要實現的功能是:當人走進骷髏精靈的“視力范圍”時,它的眼睛就會盯向你,并且隨著你的移動而轉動。因為功能簡單,程序寫起來也不難,基本邏輯就是,哪個紅外避障傳感器檢測到障礙物,就讓舵機旋轉到特定角度,好讓骷髏的眼睛盯向那一方向。不過要考慮好細節,比如有兩個人或很多人圍著骷髏精靈,也就是多個紅外避障傳感器被同時觸發時,它該看誰呢?看美女嗎?我是讓它誰也不看,目視前方,哈哈。話不多話,給大家看下四個紅外避障傳感器的布置以及程序的控制流程。

圖15 四個紅外傳感器部署位置與對應序號

圖16 程序流程圖

圖17 程序編譯通過,準備下載
骷髏變精靈——大功告成
到此為止,我們的骷髏精靈就已經大功告成了。筆者第一次弄時,剛開始效果很不理想,眼睛不是盯著不動,就是一直在瘋狂的亂抖,很難停下來。原因是紅外傳感器對障礙物過于敏感。這時需要依照環境特點做靈敏度校正。如果你覺得感應距離不合適,也應該適當調整感應距離大小。
眼睛轉動范圍調整完畢,線路擺好,就可以合蓋,在裝進萬圣節禮物包之前可以暢快的試玩啦!

圖18 骷髏精靈整體展示
經過一上午的努力,一個死寂的骷髏頭模型終于變成了一個活靈活現會動的精靈。筆者不禁感慨,每天為了工作而忙碌,生活有時也會變得枯燥乏味。當意志消沉無聊的時候,打開桌上的電腦,拿起Arduino寫個小程序,通過3D打印機,動動手,很容易就會變廢為寶,制作出各種各樣有趣新奇的作品,筆者希望拋磚引玉,帶給大家一些創作靈感,同時也期望大家都能開源無私分享。