エルゴノミックな自作キーボード Dactyl Manuform のカスタムモデルを作る話 その1—コンセプト&基本設計編—

さて、約2年前にDactyl Manuform を作り、エルゴノミックキーボードデビューを果たしてからというもの、いまでは完全にメインキーボードとしてヘビーユースしています。もう平らなキーボードだけの生活には戻れない体になってしまいました。

(このビルドログが当ブログの最初の記事でした!) www.creativity-ape.com

一点モノを主戦力に使い続けるのはなかなかリスキーなので、バックアップ用の2台目を作ることにしました。しかし、同じものをそのまま作るのでは楽しみがないので、今回はちょこっとカスタムに挑戦してみます。

f:id:at_you_key:20210311083342j:plain

f:id:at_you_key:20210311083334j:plain

コンセプト

さて、Dactyl Manuform のケースをプリントする際、表側をきれいにプリントしようとすると、お椀を伏せたような形で出力することになります。そうすると内側がサポートで満たされることになるので、だいぶプリント時間が長くなります。

f:id:at_you_key:20210312233141j:plain

3Dプリントには失敗がつきものですが、長時間のプリントの途中でトラブルが起きると、大きな精神的ダメージを受けることになります。

この問題への対策として、ケースを3つののブロックに分割することで、失敗のリスクを分散するという案を考えました。

f:id:at_you_key:20210312233510j:plain

基本設計

モデルを切り分ける

Dactyl Manuform のカスタマイズは、公式のREADMEに解説がある通り、このような手順でやっていきます。

github.com

  1. Clojureのソースを編集する
  2. スクリプトを実行すると、.scadファイルが生成される
  3. OpenSCADで開いてstlをエクスポートする

Clojureを使う環境を整えるのが少し大変でしたが、READMEをよく読みながら頑張ればなんとかなります。

部位ごとにわかりやすい名前をつけてくれているので、それっぽいところをコメントアウト→書き出して確認というのを繰り返して、必要な部分だけが残るように編集しました。

f:id:at_you_key:20210311082655j:plain

Clojureで全部設計するスキルはないので、メインの構造はOpenSCADで作っていきます。 Clojureで書くのに比べて効率的にはだいぶ不利ですが、いまの自分のスキル的にこの方法が最善でした。

構造は金属シャフトで連結

そうして切り出したブロックを組み立てるために、しっかり剛性が確保できる仕組みが必要です。キーボードを打つときにかかる力の方向は、キーに対して鉛直方向になるはずなので、これを柱で支えることを考えました。

f:id:at_you_key:20210311081514j:plain

柱には、入手性がよく値段も安い、ネジ付きのアルミスペーサーを使うことにしました。

AliExpress.com Product - 5-10pcs/lot M2 M2.5 M3 M4 M5 M6*L Round aluminum standoff spacer Stud extend long nut L=6 TO 100

バランスを見ながらカッコよくなるように調整した結果、M4の20mm、30mm、50mmを組み合わせて使うことにしました。

f:id:at_you_key:20210311081625j:plain

50mmの2本は平行に配置してあるので、こんな感じでブラケットを作れば、コントローラーなどの付帯要素を自由に拡張できるはずです。

f:id:at_you_key:20210311081541j:plain

ディティールはSF映画を参考に

カッコいいSF系ハードサーフェスというと、ニール・ブロムカンプ監督作品が思い浮かぶ派なので、エリジウムとかチャッピーとか第9地区のコンセプトアートを検索しまくってデザインのリファレンスにしました。

www.artstation.com

ビスは小頭のM4皿ネジで

カッコよさ重視でM4のスペーサーを選びましたが、通常のM4ビスは頭の直径が8mmあるので、配置がかなり制限されてしまいます。

色々探したところ、頭が6mmの小頭皿ネジというのを見つけました。このサイズで2mmの差は大きいです。

3Dプリントのコストダウン検討

DMOTEのケースのプリントが面倒だったので、今回はプリントを外注することにしました。

今回のように複数のパーツをプリントする場合、部品をなるべく密に並べることで、加工容積にかかるコストを抑えることができます。

※なんと、職場の同僚が格安でプリントしてくれることになり、この項は不要になっちゃったので、ツイートの切り貼りでサラッと届けします。

テストプリント

これがその同僚に出力してもらった成果物、彼はサバゲー用のカスタムパーツを作っている人だったので、問答無用でマットブラックのフィラメントです。めちゃめちゃカッコいいな!

f:id:at_you_key:20210311081811j:plain

ベースプレートの取り付け用に、底面にM3のヒートインサートナットを入れておきました。

f:id:at_you_key:20210311081830j:plain

4mmの下穴をあけておいて、ハンダゴテで熱圧入します。 コツは、樹脂が溶け始めたらコテを外し、すぐに平らなところに押し付けて押し込むと、うまく垂直に圧入できます。

アリエクのDescription信じすぎちゃいけない問題

注文していたアルミスペーサーが届いたので、よし仮組みというところで、少々問題が発覚しました。

M4のスペーサーは、外径が7mmと書いてあったんですが

f:id:at_you_key:20210311081922j:plain

実際届いたものを見てみると…おや、20mm長のスペーサーだけ外径が8mmあるぞ…?

f:id:at_you_key:20210311081957j:plain

普通の用途なら、外径はあまり関係ないことが多いでしょうが、今回に限っては大問題です。

まあ下に書くとおり結果オーライになったんですが、アリエクで買い物をする場合、書いてある仕様は参考程度にして、クリティカルな部分の設計は、現物を確認してからやるのが安全です。

20mmのスペーサー無くていいや

ひとまず、30・50mmのスペーサーだけで仮組みしてみたところ、これだけでガッチリ固定できました。

そもそも、このサイズの樹脂製品にM4はオーバースペックなので、当然と言えば当然ですが。

ということで、スペーサーを減らしたデザインに変更です。こういうところにOpenSCADの本領が発揮されます。

ここから数行コメントアウトするだけで

f:id:at_you_key:20210311082025j:plain

ほらこの通り!

f:id:at_you_key:20210311082028j:plain

底面が狭くなるので安定感は下がりそうですが、ベースプレートが入れば問題ありません。

ベースプレートの設計

このへんはもうフィーリングです、底面の断面を切って

f:id:at_you_key:20210311082109j:plain

安定感を意識して外形を描き足して

f:id:at_you_key:20210311082124j:plain

ちょっとノッペリするので、サイファイ味を少々追加

f:id:at_you_key:20210311082141j:plain

こんな感じですね。

f:id:at_you_key:20210311082211j:plain

下部の三角のパーツは、あとで書きますがジョイスティックマウスの固定用です。

ステンレスベースプレート構想

ベースプレートは安定性(というか重さ)と剛性が欲しいので、欲を言えば金属製にしたいところです。

ちょうど良いことに、中国の「星王虹精密零件」という会社からtwitterで営業DMが来てたので、勉強のためってことで少し奮発して、ためしにそこにお願いしてみました。

twitter.com

奮発したといっても、相場感からしたらかなり安かったです。いまちょうど作ってもらっているところなので、モノが届いたら次の記事で紹介させてもらおうと思います。

やりとりは日本語通じるし、DMで仕様相談するとレスポンスめちゃくちゃ早いし、費用もリーズナブルでなかなか良いです。

残タスク

  • ベースプレートをガンブルー液で黒染めする
  • 最終版をプリント
  • スイッチ(赤軸の予定)を取り付ける
  • コントローラー(Arduino Pro micro)を取り付ける
  • ダイオードを取り付ける
  • 綺麗に配線する
  • USBとか端子類取り付ける(取り付け方も考える)
  • ファームウェアを書き込む

最終的に、プリント用のSTLデータはここにまとめる予定です↓

github.com

オマケ:ジョイスティックマウスをつくる

サブプロジェクトとして、ジョイスティックマウスを作っています。 こっちもそのうち別記事にまとめる予定。