編譯:江宗諭
您好!這是我們的最新專案:一個連接至 OctoPrint 實例的擴增實境應用程式,並允許以免持方式,控制您的 3D 列印機!
想想看,每次您必須調平加熱床時,也許需使用自動調平外掛程式,然後由翼型螺絲切換至滑鼠,來回移動,直到加熱床被調平。更不用提的是,需藉由使用者介面不見得很友善的個人電腦或行動裝置上的瀏覽器了。
現在,我們推出了 Tactigon Skin (T-Skin),這是款很棒的裝置,可使用Arduino IDE 撰寫程式,整合了 9DoF IMU ,還有加速度感測器、陀螺儀、磁力感測器、四顆可由程式控制的按鈕,以及一款符合人體工學的外殼,使您穿戴時可以用手操作!
第一步:本專案中使用的軟硬體
1.硬體:
- Tactigon Skin
- 安卓裝置
- 樹梅派
- 3D 列印機
2. 軟體
- Processing
- Arduino IDE
- Google Cardboard VR SDK
- Octoprint
第二步:先決條件
為完成本專案,您將需要一些可用的軟硬體:
- 請您自行安裝 Processing 3.4 , 並啟用 Android 模式(包括 VR 模式)。
- 一個正運作且可存取的 OctoPrint 執行個體。我們借助 OctoPi image ,使用 Raspberry Pi 託管這個執行個體,而您可使用任何 OctoPrint 安裝版本。
- 擁有一台可運作 Google Cardboard 軟體的智慧型手機,這款手機同時相容於低功耗藍牙。
- 一款有位置容納智慧型手機的擴增實境頭戴式裝置。
- 作為控制器的 Tactigon Skin (T-Skin) ,以及針對 Tactigon Skin (T-Skin) 撰寫程式的 Arduino IDE。
第三步:安裝軟體
- Processing
可於 https://processing.org/ 免費下載,安裝過程非常簡單,在設定完畢後,我們可繼續安裝 Android 模式。而要安裝 Android 模式,請點擊右上角的 Java 按鈕並選擇新增模式,然後選擇 Android 模式,並點擊「安裝( Install )」展開下載。 - OctoPrint
是一個極佳的控制 3D 列印機的平台。除其設計用於幾乎可與所有3D 列印機互動的優秀網路伺服器外,它也公開了 API ,允許開發人員建構自己的介面、應用程式,甚至放置於廚房中的小工具,同時可關注 3D 列印機狀態、處理其檔案及列印作業。將 OctoPrint 安裝在 Raspberry Pi 上,可將所有電子設備整合至 3D 列印機外殼內!而您所需,就是設定其網路伺服器,並取得 API KEY ,好透過 POST 請求發送命令。 - Google Cardboard
Processing 提供了一種簡化的方法,針對 Google Cardboard 進行程式設計。儘管我們使用擴增實境裝置,但使用這種虛擬實境環境,使我們能避免為兩隻眼睛分割螢幕的麻煩。我們最終翻轉螢幕上的影像,以便在擴增實境護目鏡上看見漂亮的視野。要使用 Google Cardboard 應用程式,需具備一款有加速度感測器及陀螺儀的裝置;我們同時也使用低功耗藍牙,連接至 T-Skin 裝置。 - Arduino IDE
透過下載並安裝由 Next Industries 設計的開發板及函式庫,使 T-Skin 可透過 Arduino IDE (https://www.thetactigon.com/download) 撰寫程式。我們需有正確的草稿碼,才能運用 Arduino IDE (網站上提供了 50 多款應用程式),針對 T-Skin 撰寫程式,好與 Android 智慧型手機上運行的 Processing 應用程式互動。
第四步:硬體
- 擴增實境頭戴式裝置:我們取得的這款頭戴式裝置,提供了放置智慧型手機的空間,正面半透明螢幕反射智慧型手機的螢幕,使我們可以極佳視野看見智慧型手機顯示的現實及數據。
- The Tactigon Skin (T-Skin):是一種可由程式控制的裝置(配備Arduino IDE),提供良好的微控制器單元(STM32、32MHz、32 位元),並搭配了具備加速度感測器、陀螺儀及磁力感測器的 9DoF IMU 。裝置內整合了低功耗藍牙無線電,作為 RGB LED 、環境溫度及壓力感測器;其符合人體工學的外殼,提供了四顆可由程式控制的按鈕。
第五步:專案架構
在這項專案中,我們透過低功耗藍牙,連接 The Tactigon Skin 與 Android 智慧型手機。 T-Skin 將手勢數據發送至 Android 應用程式,然後透過該應用程式,選擇螢幕上的右側選單。 T-Skin 的四顆按鈕,用於點選選定的螢幕按鈕。 Android 應用程式則透過 Wi-Fi ,與 Raspberry Pi 及 OctoPrint 伺服器互動,發送 HTTP Get 及 HTTP Post 請求,以取得資料或傳送命令。 OctoPrint 的 API KEY 嵌入於請求中,而 OctoPrint 透過 USB 連接線與印表機通訊。
第六步:讓我們一起來看看成果吧!
OctoPrint 是個非常棒的平台,它公開了 REST API,並帶有 JSON 回應。它可透過 HTTP 連線,遠端控制您的 3D 印表機,但您需要擁有傳統的控制輸入裝置!
透過使用此應用程式,您將可直接於 AR 設備中獲得溫度、進度百分比、預計時間、停止按鈕及 OctoPrint 提供的更多功能!
T-Skin 充當人機介面,提供舒適的流程。該應用程式使用 Cardboard SDK,但藉助Processing 的 Android VR 模式,我們可輕易為每個想要擴展其功能、編輯用戶介面或輸入行為的人,進行客製化。
第七步:最終結果
您可在我們的 YouTube 頻道上查看最終結果(編按:最終結果影片請見下方)。透過手勢,您可瀏覽印表機的「參數」,例如完成百分比、列印時間及列印剩餘時間(請參閱圖一 );或於「狀態」選單中,查看床溫度、工具溫度及印表機狀態(列印、操作、錯誤)。您也可以使用「命令」選單,「啟動」或「停止」印表機,同時可使用「參數」按鈕顯示或隱藏參數。
(感謝原文作者 The Tactigon 開放授權,使我們得以翻譯這篇文章,特此致上謝意!若讀者想進一步閱讀原文,請點擊:閱讀原文,謝謝。)