仿生手掌

TLC上有一檔節目叫做《假體真做》,裡面的模型師會為人製作逼真的假肢。然而,雖然逼真,但卻無法跟隨意念行動。於是我們便希望從零開始製作一個具備生物回饋功能的「仿生義肢」。仿生手掌的製作分為三階段:手掌模組、程式制動、應用開發。

本計畫分為兩組,分別負責以下事項:

如果有機會,希望這隻手手能像Wednesday裡面的The Thing一樣變成我們的小寵物!:D

機構設計

設計與模型製作

手指關節的運動方式須注意轉動極限與制動邏輯,有多種方式可以做出效果:

考慮到3D列印的限制與設計門檻,我們在第一版手指中選擇較簡單的拉線結構以模擬手指肌肉放鬆/緊縮的兩種狀態,運用厚紙箱製作模型,並用吸管限制橡皮筋與釣魚線走線路徑。

demo影片(這支影片是用嘴巴叼著手機錄製而成的🤯):

Top-down設計思維

機構設計越困難時,越需要具備Top-down的設計思維,就好比蓋一棟房子,先確立建造的約束條件(公設比、住戶數量...),接著估計房子的大致尺寸再分割空間規劃每間房間的室內結構與造型,才能夠畫出一份實際可執行的藍圖;倘若設計者先設計了房間室內設計與房間大小結構才考慮戶數與每層樓大小等問題,便會在設計流程上窒礙難行。

我們藉由事先定義各結構之功能與連接處尺寸做分工,將手指定義為直徑為20mm的圓柱、手掌為長軸60mm、短軸45mm的橢圓,使手掌、手指與手臂可以分開建模,並且確保完成時三個部件可以完美銜接。

手指:

手掌:

手臂:

大組合還在一代代演進中:

第一代:

第二代:

第三代:

3D列印問題排解

3D列印讓我們操了不少心,日夜守在bambu旁邊,深怕他隨時要炒米粉:

  1. 卡榫式的關節太脆弱 => 加橫桿或者改為整根手指一起列印的做法、參考其他影片的作法改小軸的直徑、改高軸的突出
  2. 直立列印手指之間間隙太小會黏住,且原先轉軸並未填滿到頂部,因此會斷掉 => 擠出到頂,躺著印
  3. 躺著印有顯著改善,但折開關節的瞬間後方走橡皮筋的管道被撕裂 => 改善走線軌道或者彎起來印
  4. 列印後出現一些較薄的地方(例如:圓角)線有點炸開 => 下一版畫厚一點,列印時有肉的地方朝下,線路部分和卡榫才會較精確
  5. 偶爾開始出現失敗的情況 => 選擇較良好的3D列印擺放方向,推測可能是線太少出線較不順暢或者天氣較冷導致列印中途容易斷裂或者炒米粉
  6. 原廠線與副廠線印出的效果不同,副廠線印出的關節轉軸很不順 => 把洞改大

程式制動

測試程式碼

以Arduino UNO為核心,導入AccelStepper.h函式庫優化運算並加裝電池,克服單電源供應6顆馬達同步運作的電流不足難關,提升動作效率。同時,五隻手指的步進馬達共需30條線控制,但Arduino板腳位有限,所以我們利用MOSFET當作開關將需要的pin腳縮減為10個。然而,因為馬達本身扭力不足、電壓被MOS吃掉加上捲線無法線性控制手指彎折程度因此手指運動速度仍非常緩慢。於是在第二版程式中,我們試圖用程式的方式重新修改控制邏輯,取代MOS,也預計嘗試改採MG996伺服馬達嘗試改善速度問題,機構設計也希望嘗試看看齒輪結構。

建立28BYJ-48Stepper函式庫

28BYJ-48 Stepper是一款市面上最便宜的步進馬達,它的運作原理是利用四個腳位對兩個馬達內的線圈做不同方向的激磁進而控制馬達以特定角度與方向轉動。在我們的應用中,motor物件需要記得各個馬達旋轉對應手指彎曲的角度關係、與拉線捲動最緊與最鬆的對應位置等等。同時,定義好馬達的參數與函式後也有助於我們增加物件數量。透過控制Arduino的四個腳位的電位,我們便可控制馬達的激磁方位,完成控制。於是,原本所需的最多30個腳位被縮減為9個腳位即可。 程式碼可看github

生理訊號控制

改造ECG感測器於動作電位偵測

Action Potential是人體神經元傳遞訊號的方式,大小約為micro-milli Volt等級,藉由放大電路,我們計畫收集這些訊號,並觀察手部動作與動作電位的對應關係。由於BCI、生理訊號控制主題近年蓬勃發展,目前網路上有不少參考資料,主要運用生理訊號控制機械手的方式如下所示:

由於非侵入式腦波訊號僅有微伏等級大小,因此我們預計從豪伏等級的手臂訊號下手。目前使用心跳偵測模組得到了一些訊號,但尚未釐清其物理意義。

製作進度

成員

組別 成員
機構-手指 蘇勻郁、游雁婷、黃寀庭、蔡竺臻
機構-手掌 陳宣侑
機構-手臂 蘇勻郁、陳宣侑、康恒晏
程式組 康恒晏、陳明揚

曬手手