遠在天邊,近在眼前的寶物:尋寶指南Via Libris

三月 9, 2018
Facebook
Twitter
圖片

VIA LIBRIS是擁有平裝書外貌的尋寶指南,裡面設有特別的方位羅盤以及三種類別:遠、近、快到了(cold、warm、hot)的小提示轉盤,循著這個指南就能找到預先設定的藏寶地點。抵達目的後,從書中的隱藏夾層中就會有「禮券」彈出來,對於尋寶者來說會是意想不到的驚喜。想要重新設定地點也相當簡單,只要輕輕按下書裡的按鈕,就能重新指引到一處全新的藏寶地點。
圖片

每一本指南不僅都是手作的,樣式也獨一無二而精美,每一本都可以重複使用。這種發送禮券給親朋好友的方式我相當喜歡,只要用這本書領著他們到禮券指定的商家或餐廳,禮券就會在他們面前彈出來,每一個人都能夠馬上領會這個驚喜。最棒的是,他們當場就可以使用那張禮券,這真的非常有趣!
 
VIA LIBRIS裡頭裝載了Arduino Pro Mini (位於電路板下)、磁力計、加速度計 (補正羅盤傾斜用)、GPS模組、微型伺服馬達(給「小提示」的轉輪用),和持續轉動的特殊減速伺服馬達 (羅盤指針轉盤用),我經過了多次試驗才設計、製作出這特別的馬達。

這專題的靈感來自Kenton Harris的另類地理藏寶(Kenton Harris’s reverse geocache box):「領著人到特定地點尋找驚喜,但其實驚喜一直在手中的盒子裡」,我一直很欣賞這個點子。

VIA LIBRIS的設計走復古風,因為我熱衷於會運轉的物件,像復古機械的風格就相當吸引我。因此我在硬體上做了特別的設計(像使用伺服馬達製作能轉動的指針)。雖然裝上數位儀表板、或是LED矩陣板來代替指針也是個好選擇,除了能保持一定的美觀,對設計者來說也會更輕鬆。但我最後還是選擇了比較困難的方式,決定將指南打造成機械運轉的機制。因為我認為若是使用了儀表板,這指南就和使用手機的應用程式沒甚麼差別了。

當我將設計構想得差不多後,我做了個原型。稍作考量後,我決定稍稍調整原先的設計。舉例來說,我決定改成只使用兩組馬達(或伺服馬達),因此連帶地也得調整我的設計,要設計出能用兩組伺服馬達就完成三個種類(羅盤、小提示轉盤和禮券彈出器)的運轉模式。如果是原來使用三組馬達的設計,除了有空間不足的問題要解決,也得要另外新增一組磁鐵。依著這樣的更動,這產品就會成為以「高感度的電子羅盤」來判定磁方位的設計。上述的例子只是我設計過程中經過取捨的無數方案之一。而藉由提早構想出這些方案,我更夠能預想、比較各種不同的選項,進而能夠更完整地構思。但選擇「兩組馬達」設計的這個決定仍讓我費了許多心神,詳細的過程我稍後再敘述。

我相當喜歡使用Arduino的產品來製作機械類的專題。藉由使用Arduino的硬體/軟體組合,只要稍稍修改軟體內容,通常就能成功修改你的設計或是運轉模式。這個方式比起從硬體下手來說有效率多了。舉例來說,安裝在小提示轉盤裡的微型伺服馬達其實各有不同形態的轉動模式:雖然同樣是轉動二十度,但每一組馬達的轉動模式都有些微差異;另外,各組小提示轉盤裡的「遠、近、快到了」轉輪位置也有所差異(也造就不同本指南的差別)。於是面對這個問題,我有以下兩種選擇:第一種是,我製作個別的貼紙標示,依照馬達轉動位置的些微不同,貼在對應的位置;另外一種選擇是,我統一每個轉盤貼紙標示的位置,但要用軟體微調每個馬達的轉動量。最後呢,我決定採取調整馬達轉動量的方法,因為用軟體調整的話相當方便,況且我其實也得調整每一組指南的電子羅盤刻度。

我在前期就完成了印刷電路板(PCB)的設計,因為它的尺寸左右了其他許多的設計考量因素,但在當時,我面臨了一個重大的難題。按照需求,我得要同時安裝數種不同的模組,包括Arduino Pro Mini、Adafruit Ultimate GPS、伺服馬達控制器和一個電子羅盤等部件。當然,重新設計、和重組這些模組至同一個電路板上是最好的選擇,但這需要我購入(和焊接)許多的小型表面焊接元件,這已經超出我當時的能力範圍。於是我稍微轉了個彎,使用了Eagle PCB(Autodesk)設計出了主要控制的PCB。全數的模組(Arduino、GPS等)都能完整焊接到這個主控PCB上。但就算套用了這個方法,也是不改我設計構想的複雜度:我需要一片雙面電路板,頂部搭載GPS模組、而底部裝載Arduino。幸運的是,Eagle PCB能夠滿足以上需求。

在我把PCB的設計圖交給廠商前,我自己先試做了一片電路板,想測試看看整個系統。雖然有點簡陋,但用來完成測試是沒問題的!在這次的測試裡我也有所收穫:那就是瞭解到位於GPS模組底部平面層的重要性。這層平面將所有(由Arduino和伺服馬達產生的)電子雜訊隔絕,才能完整接受到微弱的GPS訊號。在Eagle PCB上也能輕鬆滿足這個設計需求。
 
測試完試用的電路板後,我向廠商訂了十組。雖然在下訂前我有再次詳細檢查設計圖,但我還是發現原型有些設計上的缺失,於是我也必須重新修改每一組電路板。修改十組的小數量還算輕鬆,如果訂了一百組、甚至更多,可就有一番苦頭吃了。所以請謹記:交出訂單前,請再三檢視自己的PCB設計圖!雖然如果是多層型電路板的設計的話,檢查起來會有難度。但如果不想要重蹈我的覆轍,還是細心地檢查吧。

後來,因為電路板的需求,我訂製了三片透明壓克力板,由塑膠供應商客製化裁切,我再用紙箱做的模板為底穿了一些洞。親手加工十組的負荷還算可以接受,但如果數量更多,我就會選擇使用雷射切割成片(以及穿洞)。

我在這批設計犯的第一個錯,就是沒有立即採用「3D繪圖設計」。還記得我決定「只使用兩組馬達要完成三種類型(羅盤、小提示轉盤、禮券彈出器)的運轉模式」嗎?這帶給我相當大的挑戰,因為我希望小提示轉盤的馬達也能滿足彈出器的特殊運作模式,讓禮券能夠以出其不意的的方式,從書本底部的隱藏夾層中「彈出」。為了達成這個目標,小提示馬達得要設定某些機制,讓它在小提示轉盤轉到「你找到了」的GPS地點時啟動。

最一開始,我不想花時間在3D繪圖上,我直接動手做出不同版本的彈出器樣本來測試。我總共試了五個版本,都用了類似彈簧的部件(我在其中一個版本加裝了保險栓),但每種設計都遇到了不少限制,大多都是因為空間過小、裝不下彈出器裝置,而小提示轉盤的運轉狀況也會有所影響。

每次的改良版本總會碰到以下其中一個問題:一、整體設計能夠順利運轉,然而要做成實品卻相當困難;二、整體設計很容易做成實品,卻難以順暢地持續運轉。但在我開始打造原型並分送給親朋好友後,我發覺我真正需要的是能簡易製作的設計。我在數個月中試過多個版本,但最終還是會有各自需要解決的問題。

直到測試第五個版本也失敗後,我決定改變方針,將目標放在繪製出完善的3D電腦輔助設計(CAD)模型。我使用Autodesk Fusion 360軟體,並在週末花了數小時製作專題(除了彈出器以外)的完整3D模型,只要在整體運作裡會有影響的部件我都會繪製上去。運用這個軟體讓我能清楚檢視設計圖的限制,只要有彈出器的新靈感,我也能更輕鬆的嘗試,完全不需要實際做出任何實品。如果新的設計無法運作,我就只要輕輕點「消除(undo)」鈕,就可以再嘗試其他的構想了。

週末期間我花了好幾個小時,不斷用3D模型嘗試不同版本的彈射器。最後,我終於試出一種較穩定、經得起重複測試的設計,而這會運用到3D列印出的部件。整體算下來,我在3D模型上花費的時間總共是十個小時。但如果我最初就採用這個方法,我就不用多花好幾週甚至好幾個月的走冤枉路了。所以不要繞遠路了,快從3D模型著手吧!

​事實上,使用3D繪圖設計軟體的好處非常多。舉些例子,像是因為有3D模型,彈出器中的三個部件就能用3D列印簡單印製出來;運用軟體,我也因而能做出逼真的3D實品模型和2D實品平面圖(能在前文提到的,雷射切割壓克力板時使用);當然了,彈出器的設計和實際運作情形也能透過品質不錯的3D動畫呈現。如同我之前所說的,這過程雖然花時間但相當值得,我的一段較長的產品介紹影片裡就用了軟體的3D動畫。如果想要一覽所有的作品,歡迎來我的專題網站光顧。

在我用Arduino軟體編寫程式時(我的Arduino草稿碼),我花了些心力在確保Arduino能順利運行所有必要的功能,這包括許多外部裝置的輸入/出需求,像要滿足Adafruit Ultimate GPS Breakout的序列通訊、電子羅盤LSM303的I2C、伺服馬達使用的數位腳位,和我設計的羅盤用伺服馬達(拿來測量結果)的類比腳位等等裝置的需求。另外,專題裡用來提供資料回饋的小型薄盤震動器,它也有Arduino數位腳位的需求。

Arduino運用序列通訊編寫程式,程式裡只有一序列埠是以常數寫死的,GPS模組就有使用到這序列埠。然而,GPS模組出現了一個問題,就是當GPS模組連上線時,它就會阻礙上傳到Arduino的程式資料。最理想的做法是,將GPS模組移置到一組使用 「Soft Serial Arduino程式庫」的數位腳位上,它即會藉由軟體來模擬硬體的序列介面,進而解決這個問題。但我嘗試後發現,Soft Serial和伺服馬達兩者完全無法相容運作,總會互相干擾彼此的執行時機點。於是,我最後仍決定維持原方案,只另外在PCB的設計中加裝些簡易的跳接器。在編寫程式時,我就可以啟動跳接器暫時讓GPS模組斷線,如此一來就不會有互相干擾的問題。以上就是以硬體修正來改正軟體缺失的一個例子。

我用文字和照片記錄下我打造尋寶指南的每一個過程,連在設置特殊工具的時候都有紀錄下來。將這些紀錄總結起來,就成了一套完整的「製作導引」!無論你是要大量製造你的產品,或者是只需要十組的數量來分送給親朋好友們,我都非常推薦你們也留下設計與製作的紀錄,其實這樣做並不會多花多少時間。所以,趕快為你寫的程式留下留言吧!

最後一個大問題是「佈線」,特別是伺服馬達的線路,因為空間的限制讓佈線相當困難。很可惜的,這個問題在第一批的原型身上已經沒有辦法修正了,但我有記得立刻修正了第二批版本的設計。必須立即記得修正的理由是:我跟大部分的Maker一樣,手上同時還進行了許多專題。我通常都在專題間反反覆覆的工作,有時候會隔了幾週、甚至幾個月才會回到原本的專題,到那個時候,通常忘光了有哪些需要修正的問題。所以說,及早發現問題,就及早修正吧!

我其實相當享受測試那些設計原型的過程。為了發送給他人測試使用,我將它們置入美觀的「書皮箱」裡,這些箱子是從禮品店裡買來的(未來我也會再購入不小的量)。協助我測試的對象是我那些喜愛冒險的親朋好友們。因為我想要知道他們是否能夠單靠那本指南進行「尋寶之旅」,所以我盡量也不給任何指示。而他們手上的VIA LIBRIS已放有附近商家的禮券,但他們對這機關完全不知情,我希望這機關最後能夠讓他們大為驚喜。結果呢,這個實驗大成功!有其中一個來自我朋友的回饋,這也是我最喜歡的一則,他說:「我完全猜不到這指南的目的地會有甚麼東西。最後,當我終於停在一家商店面前的時候,「這家店」的禮券就從書裡冒了出來!這也太酷了吧!」

另外,我也收到了一些實用的回饋。像是指南並沒有顯示離「寶藏」大概有多遠的距離。這曾在我的考量內,但我後來想要保持一點「神秘感」,所以在距離提示上只保留了「遠、近、快到了」的小提示。但由於有人在尋寶開始的時候因為不確定距離,所以完全不知道該要選擇走路、騎腳踏車還是坐車。所以我在小提示轉盤上加上了「車」與「步行」的圖案指標;我有告訴另一個人大致要走多遠的距離。

在眾多實驗測試中,我母親的指南出現了特殊的情況。她住在離我稍遠的社區,當她也參與尋寶的時候,手上的指南卻沒有指向正確的方向。我其實很難相信會有這種情況,數學本身是不會出錯的對吧?調查到最後才發現,是程式裡測量方位的三角函數計算出錯了。如果只在我家附近的範圍內測試,很難發現這奇特的錯誤。但如果範圍拓展到其他城市,這個程式錯誤就會變成大問題。這雖然很簡單就能修正,但如果沒有碰巧做了這個測試,我大概也不會察覺到。

測試後得到的另一個收穫是在指南上搭載音效的建議。因為這能讓小孩更能夠沉浸在尋寶的氛圍裡。這真是很有價值的建議!於是我就在新的設計裡加裝了Adafruit Audio FX音效板。透過小喇叭,尋寶時指南就會隨機發出許多有趣的音效。雖然如此一來PCB也要做新的變動,但這不是甚麼大問題。Arduino仍有可以安裝音效板的空間真是萬幸。
 
這本指南的製作過程既有趣又讓我有所長進,我也得到了許多寶貴的經驗:

第一,要詳細記錄所有的更動,無論是硬體、或是程式等等的更動都要詳實記下。像我就有留存全部修正紀錄的文件,裡頭詳細記錄著所有更動的版本和更動當天的日期,裡頭存有不少資料。這紀錄確實是我的救命繩索,特別是在像我之前說的情況中,當我隔了好幾個月再回到同一個專題,已經記不太得之前進度的時候,就會特別需要它的存在。

第二,決定好專題裡驅動你的核心點子是甚麼,認真地執行。我當初是被「Arduino」和「機械運動」兩者結合的點子驅動,這兩個元素結合看來就會有不錯的效果。

第三,列一張清單紀錄你使用過的部件,將部件的來源、價錢、尺寸等等記錄下來。當你需要大量製造產品的時候,這張清單將會非常有幫助。

最後一點,如果你製作出了原型,請盡情測試它!試試原型在各種環境以及各種可能的使用情境下的使用狀況。如果測試的結果不理想也別太灰心,還記得我在設計禮券彈出器時遇到的挑戰嗎?建議你可以使用同樣的自我檢測方式找到問題可能的所在。最後,把你的原型給你的親人或朋友試用吧,但記得要先準備好他們可能需要的特殊使用說明。要把親人或朋友當作真正要開箱使用的顧客,要在沒有引導的情況下,你才能夠得到使用者的真實反應,畢竟你也不可能實際去引導任何潛在用戶或客人。

​憑著這個專題的經驗,我撰寫了一篇「如何做設計原型」的教學,我相信對於各種大大小小的專題執行都會有所助益。


(譯:蔡宸紘)
【原文】

Social media & sharing icons powered by UltimatelySocial