Dactyl manuform 是設定參數後,用程式語言生成 3D 外殼的分離式人體工學鍵盤。
按鍵的排列不是平面,要用手焊連接軸體和鍵盤矩陣。上次分享的 Dactyl manuform 用 Amoeba King 單軸 PCB,焊接起來還是很花時間。
網路上有設計給 Dactyl manuform 的 PCB,用 0.6mm 厚度就可以配合外殼彎曲,讓組裝過程比較快速。
排線直接焊在 PCB 上預留的位置。
其實在分享第一把之前,就已經訂好可彎曲 PCB 了。可惜 Wylderbuilds 的外殼跟 PCB 的軸體位置對不上。
想說用 Dactyl Generator 外殼生成器 (網站最近當掉),預設值生成 3D 檔再找廠商列印。但是 Dactyl Generator 的參數設定中,似乎沒辦法把螺絲固定座的位置放在殼內,突出外緣比較不好看。
而且找廠商印的花費還不少。左右手、底蓋、微處理器固定座加起來,再考慮如果參數不對,要重印的話,乾脆直接買一台 3D 列印機自己印!
於是就試著依原始設計者的說明,用 Clojure 程式語言來生成 3D 檔。可是沒有底子的人,安裝完軟體之後,沒有詳解步驟,要從哪裡輸入指令都不知道。
後來看到用 Python 生成 3D 檔的方式,有給視窗系統的批次檔,似乎比較簡單。在 GitHub 上繞了好久,等到把整個目錄都複製到硬碟上,才終於看到 3D 檔案出現。
在 generate_configuration.py 裡,大部分的參數都有說明。但是很多參數就算看了說明,也不知道是什麼意思,要真的生成外殼 3D 檔才理解。
在視窗系統用批次檔,自動生成 Docker Desktop 虛擬環境裡的映象檔。執行裡面的 DM-run,就會依 run_config.json 檔案中的參數生成外殼的 SCAD 檔。
用 OpenSCAD 開啟 SCAD 檔,渲染後就可以輸出 3D 列印機能接受的 STL 檔。
Python 生成的底蓋有問題,不是完整的 3D 檔,沒辦法輸出 STL 檔,只能輸出 DXF 的 2D 向量圖檔。
都走到這一步了,再裝一個軟體,用 Shapr3D 把外殼邊緣修完整。
平面往上拉,就可以形成 3D 結構。
讓底部的螺絲孔下沉一點,留空間給埋頭螺絲。
3D 列印機是 Ender 3 S1,切片軟體是 Cura 5.0。層高 0.2mm,填充密度 10%,樹狀支撐,列印速度 50mm/s。這樣光單手外殼要印 17 小時 21 分鐘,底蓋大約 5 小時。
拆掉支撐後的外殼,銀色 PLA 材質。因為上蓋的厚度、直行的交錯距離、預留螺絲孔的大小等錯誤,印了第 4 個才成功。
用帶有紋理的鋼板,列印後轉印在底蓋上,比全光滑的好看。
安裝熱熔螺母之後,再安裝 PCB。雖然還是要稍微調一下 PCB 角度,但已經比手焊方便多了。
確定韌體刷好,再裝上底蓋。這把 4x6 配列,內部空間沒有 5x6 高,微處理器上的杜邦接頭快要頂到 PCB。如果要做更小尺寸的配列,可能就不能用杜邦接頭了。
組裝完成。軸體是敲擊聲很大的 Zaku 63.5 克雙段彈簧線性軸。
裝上鍵帽,KAT Atlantis,PBT 材質,二射成型。
拇指區配合 PCB 的設計,是 5 鍵的 Mini 版本。不知道是 PCB 還是韌體設定沒弄好,離拇指最遠的那顆按鍵在兩手都沒有作用。
把 PCB 研究仔細之後,覺得是 QMK 裡的 keymap 設定的問題。因為 PCB 上標示的拇指區都是同一個橫列 (row),但是 QMK 預設 keymap 的拇指區其中一顆在不同列。
如下圖把拇指區都改成同一列。
檔案下半部的行列編號要一起修改,沒有的鍵就標記 XXX。
修改之後的拇指區就可以正常運作了。
印到這組殼的時候,3D 列印機上的 Z 軸有些螺絲鬆動,不然垂直面可以印的更平整。
因為跟 Wylderbuilds 訂 3 個殼了,有回饋意見給他。他就試著調整參數,讓外殼可以裝彎曲 PCB,還免費寄一組外殼給我試用。
不過買了 3D 列印機之後,發現自己印的殼也不錯。底蓋比較好看,螺絲孔大小剛好,不用再打磨。
謝謝觀賞。