會拼拼圖的CNC工具機

二月 22, 2018
Facebook
Twitter
圖片

我家在加拿大溫哥華,每年家人從渥太華來拜訪時,都會帶一盒1000片的拼圖。我媽媽總喜歡挑些特別難拼的圖案,像是焦距模糊的紫色花圃,或是整片都是藍色的方塊。他們每次拼完邊框後就回家了,留下我那凌亂不堪的餐桌。如果你曾在某個駭客空間(Hackspace)見過我,我八成正在打掃,因為我做事喜歡有頭有尾。我不想敗給未完成的拼圖,心中一股想拼完的慾望甚至壟罩了我整個人。我得征服這份執念才行,所以我找到一個好辦法。
我想了想:有沒有什麼方法,可以解決所有拼圖?如果我可以造出一部機器,而且拼得完一張拼圖,它應該就等同能解決任何數量的拼圖。從此以後我就可以高枕無憂,因為我贏了。

怎麼做

所以問題有兩個:如何做一部會拼拼圖的機器……還要教它拼拼圖。

打造機器

基本上,大部份的拼圖解法都差不多。從機械工學來看,一臺CNC工具機,加上相機和旋轉真空吸嘴,應該就可達到目的。
圖片

1000mm X-Carve
CNC雕刻機和3D印表機很像,差別於它搭載雕刻刀具組,而非塑料加熱噴頭。3D印表機的邏輯是將材料堆疊起來,CNC則通常是減少。取放機(Pick and Place Machine,亦稱SMT機臺)大多使用真空吸嘴。
圖片

製作流程構思圖
我花了6個月,試著做了幾個版本。但後來我發現即使是最棒的成品,也仍然是個垃圾。所以我上網找了一臺能滿足我需求的CNC雕刻機:Inventables出品的1000mm X-Carve。我加裝了中空軸心步進馬達、SMT吸嘴、壓縮機和空氣用常閉型電磁閥。
圖片

筒夾剖面圖
由X-Carve負責移動CNC筒夾(橘色),步進馬達(桃色、斜線)轉動吸嘴(柱狀底部)。壓縮機啟動時,內建彈簧的吸嘴能拾起拼圖;壓縮機關閉、電磁閥打開時,則可放下拼圖。
 
接著,我利用Fusion 360搭配游標卡尺測量,製作筒夾和其他機械零件的3D設計圖。如果網路商店有展示產品圖解或3D設計圖,我通常傾向只買部份配件,這樣我就可以自己設計其餘部份,錢也花得比較不心虛。
圖片

組裝完成的樣子
圖片

底部的Pi相機模組
​我在筒夾底部加裝Raspberry Pi和Pi相機模組,這樣機器就看得見拼圖。以我的品味來講,相機原廠排線有點短,不過我還是可以把所有零件組裝起來。
 
這是我那時拍的一段IG影片:
我在等取貨時,順便印了組裝用零件:

Yesterday’s parts were close. Today’s will be closer still. #jigsolve #robot #puzzle #machine #3dprinting @vanhackspace #tinkerine

Marginally Clever Robots(@imakerobots)分享的貼文 於 張貼

(昨天零件印得差不多了,今天會更接近完成。)
圖片

印好的組裝零件

如何教機器拼拼圖

儘管很想學,但我完全不懂AI。我曾做過循跡機器人,對怎麼讓它辨識光源和顏色有點經驗。那過程還蠻難艱難的!不光是它本身的挑戰性,我甚至對後續會遭遇什麼困難都毫無頭緒。更別說是教機器拼湊形狀了。所以我轉而尋求一個早已存在、辦得到,也最適合拼拼圖的方法:Twitch!

Twitch拼拼圖

Twitch是個網路直播平臺,使用者(大多)都透過它看別人玩遊戲。幾年前有個直播很特別,玩的是神奇寶貝(寶可夢)。遊戲規則是,觀眾可以透過螢幕上的IRC介面(網路中繼通訊協定)聊天,如果輸入特定的字串,系統會辨識為按按鈕的動作。觀眾透過這種集體、民主的方式遊玩,最終取得勝利。

Twitch到機器

我利用Eclipse Java IDE編寫了三組Class(類別):分別用來與X-Carve、吸嘴和Twitch溝通。我將這三組Class,全部放進命名為Jigsolve的主要Class中,這樣就能同時或分別測試它們。

從機器到Twitch

裝在吸嘴旁的相機是Raspberry Pi附的配件。我依照網路上的教學,把影像串流到區域網路,做為直播影像。我在自己的電腦上則使用VLC影像播放程式觀看,並用OBS(Online Broadcast Studio,直播軟體)把影像傳到Twitch。
圖片

Twitch上的影像

我學到的、跟一些有的沒的

Twitch使用者Mdp117發現了一個安全性漏洞,透過把吸嘴角度設定成700以上或巨大的天文數字,就能對機器進行DDOS(網路攻擊)。謝謝你幫忙測試!
 
Twitch使用者amazing3d是第一位成功拼對兩塊拼圖的人。
 
電磁閥是後來才加裝的,因為我之前以為關閉壓縮機就能夠放開拼圖。這也是為什麼我的Fusion 360圖檔裡沒有它。
 
機器下方的光線很差。我做了一個環型燈(見下方圖片),透過Raspberry Pi的GPIO腳位供電。有點昏暗、有點偏藍。如果沿著龍門結構底座邊緣貼上穩固的LED燈條,也許會更好、更耐用。
 
SMT吸嘴夠小,適合用來拾取電子零件,但對拼圖來說又太小了。我付了點錢,請IG使用者xyzaidan用矽利康做了一個吸嘴。每一分錢都花得經濟實惠!可惜那是很久以前的事,我沒辦法在他的IG頁面上翻到那時的照片。
 
要找到兩片相合的拼圖,難度實在太高。經過一番思考,我寫了一個草稿碼來移動機器,擷取拍攝畫面截圖,存放在Google Map上。
 
​硬體方面,X-Carve的龍門明顯有不足之處。主軸移動到其中一端最遠處時,另一端就會誤差2公分。如果他們把相機納為固定配備的話,就能彌補方形以外的結構,讓雕刻成果更完美。Inventables去年六月承諾會提供我替換的龍門結構,不過到現在還沒出貨。
圖片

環型燈

多說一點!

在拼圖完成以前,你可以隨時到我的Twitch上觀看。
 
如果需要這次改裝X-Carve的材料清單,包括相關組件的STL檔在內,請透過我的論壇與我聯繫。

(譯:蔡牧言)
【原文】

Social media & sharing icons powered by UltimatelySocial