Jose Julio 是一名駭客,同時作為機器械愛好者,本來他想做一部屬於自己的 3D 印表機,但當買來一切所需的零件後,卻有東西讓他改變主意了。因為她女兒很喜歡那種遊樂園裡面的桌上曲棍球遊戲,為滿足女兒心願的 Julio 直接把零件改裝成桌上曲棍球機器人。
▲圖片來源
Jose Julio 是一名駭客,同時作為機器械愛好者,他也有過一些機器人項目的經驗。話說有一次 Julio 想做一部屬於自己的 3D 印表機,但當他從 3D 印表機愛好者論壇 RepRap 買來一切所需的零件後,卻有東西讓他改變主意了。
原因是 Julio 的愛女很喜歡那種遊樂園裡面的桌上曲棍球遊戲,為滿足女兒心願的 Julio 靈機一動:步進馬達、驅動器、軸承、控制機械部件運作的電路板、甚至是運送噴頭的傳送帶都已經集齊了,以上這些原本為 3D 列印而設的組件,也是桌上曲棍球機器人的基本材料啊!
於是這位有愛的駭客爸爸就開始動工了。和 3D 印表機最大的不同是,桌上曲棍球需要一張桌子,Julio 買來了便宜的木板做成了一張 100 x 60 cm 的木桌。然後為了解決桌上曲棍球上氣流問題,經過一輪實驗,他發現有一個方法又簡單而成本夠低:只需要兩隻二手 PC 風扇,另外他在這塊木板上鑽下均勻的小孔,這樣整個表面就成為一個有氣流浮動的桌面曲棍球桌了。
不過整個專案最大的挑戰仍然是機器人部分,Julio 採用的是三馬達設計(兩個負責 Y 軸移動,另外一個負責 X 移動),負責打球的機器人則安裝在本來是為 3D 印表機而設的傳送帶上。為了讓整條傳送帶足夠耐用以及讓機器人身手足夠快捷,Julio 在材料上作了一些改動,比如他將運送帶上的金屬支架,換成從風箏上取下來的碳纖管,這樣做能大大減低機器人的重量。
至於軟體方面,Julio 就不能使用 RepRap 提供的驅動程式了。因為曲棍球機器人和 3D 列印噴頭的行動特點最大的不同是,前者需要不停地調整自己的位置,根據曲棍球的軌跡接受新的加速度和路標命令,而後者僅僅是一個均勻的點對點運動。所以 Julio 用精簡的 Arduino 語言驅動步進馬達,以保證機器人能夠以極高速度的情況下靈活運作。
感測器方面,Julio 找來一塊型號為 CMUCAM5 的 Pixy 感測器,這種感測器價格低廉而且能與 Arduino 完美運行,在這裡,它負責透過顏色鎖定曲棍球的位置。而至於機器人的「眼睛」,則由一架在 PS3 上玩動作感應遊戲所用的攝影機 PS EYE 負責。
整部曲棍球機器人的工作大致可以實現了:遊戲用的曲棍球被塗上特定的顏色用於感測器識別,高達刷新幀率 60Hz 的 PS EYE 則負責捕捉曲棍球的軌跡,之後透過電腦計算後驅動機器人撞擊曲棍球。而且 Julio 提到這對攝像機的畸變要求很高,所幸這部 PS EYE 雖然解析度非常低(320 x 240),但幾乎沒有畸變。
對於一部合格的曲棍球機器人來說,需要透過攝影機拍下兩個特定幀數內曲棍球的位移,從而計算出曲棍球的軌跡,而且對於桌上曲棍球來說,還需要考慮到球撞擊到牆後的運動軌跡,所以這花了這位駭客爸爸的一些功夫。
不過目前來說,Julio 對這部曲棍球機器人還是十分滿意的,因為他使用的都是現成、低廉的材料,而且整個系統安裝十分容易,機器人要從桌面移除也只要六根螺絲。
目前這個曲棍球機器人還在不斷改進之中,它的水準可以輕鬆擊敗一個小孩(難度還可以調低),但如果是一個有技術的成年人的話(他強調是他自己),要贏分還是不難的。Julio 表示將來會繼續改善這部機器人的穩定性和功能,以及加入比賽規則等功能,甚至以後他會再做一部姐妹機,實現機器人在曲棍球場上對打。
不過他認為最重要的,是對於這次整個項目一直陪伴在身邊的女兒來說,一定受益不淺!
最後這是 Julio 親自錄製的機器人影片,如果你也有興趣做一個,可以去他的個人部落格獲得詳細步驟。
電腦鬼才+電子電機高手=好爸爸!