昨年秋1に3Dプリンタを買って作りたかったのがiPad用のキーボード。 iPadケースの背面にキーボードがくっついていて、iPadを横から握ったまま物理キーボードを打てる。

graspadを手で握って保持しているとき

左右の2パーツから成っていて、iPadの左右から差し込み、2つをつなぐ配線とiPadのType-Cをつなぐことで使える。

graspadの内側に配線がある様子

キー数は42キーで、3x6のキーが背面の左右に、親指で押す用の側面のキーが3つずつ左右にある。

graspadを上から俯瞰したとき

本記事では、この少し変わったキーボードの製作過程を記す。

設計

着想

iPadに物理キーボードを使いたいと思っていたのだが、普通のキーボードを繋ぐだけでは安定した机の上でしか使えないし、それならMacbookで代用できてしまう。 電車の中やベッドやソファでゴロゴロしながら物理キーボードが使えたらいいなと思って、iPadを横持ちで握ったままキー入力が出来ることを目指して作った。

制作に当たって以下のような製品を参考にした。

最初は思いつきだったが、3Dプリンタが案外やすく買えることに気づいてしまってからは割と勢いで完成までこぎつけた。

キー配列

キー数を42キーにするのは結構初期の段階で決めていた。 普段使っている配列と同程度で、今の私の中で実用に耐えうる最低限のキー数である。 これより少ないのは未知の領域。

キー数をもとに、iPadのケースにキーボードが付いていたらという体で考えてみる。 適当な図を書きながらこんな感じでは?と構想をふくらませたのが以下のスケッチ。 この時点で概ねの形は決まっていた。

graspadの構想とスケッチ

寸法をみていくと、キーの数と配置からキーピッチを抑える必要があることに気づいた。 iPadの大きさは176mm x 248mm、横持ちをするとすると高さ方向に176mm以下に抑えなければならない。 176mmの方向に並べるキー数を、下から6(裏面)+3(側面)-1(裏面上段と側面下段を重ねる)とすると、キーピッチ20mmでは160mmで結構ギリギリである。iPadの側面には電源ボタン、上部にはカメラなどがあり、Apple Pencilを上部に配置することにするとこれでは高さが足りない。 挟ピッチの16mmとすると16mm x8=128mmとなってだいぶ余裕が出るのでよい。

PCB

キーボードのスイッチを固定、配線する基盤をどうするか考える。 挟ピッチで格子配列となるとmcsp lp2というキーボードを改造するか、専用の基板を作るか、基盤無しで3Dプリンタで作った筐体にマウントするかなどを考えてたが、途中でte96という素晴らしいキットに出会う。 te96は分割後に再構成できる自作キーボード用のPCBで、row-staggeredやcolumn-staggered、格子配列などの形に自由に組み立てられる。キーボードのピッチ幅も1方向は16mm-20mmの可変で、組み立て時に自分で決めることができる。 今回の用途にぴったりで、16mmピッチの格子配列、親指部分も切り取って別基盤として用意できるのでとても都合の良い基盤だった。

te96の基板

ケースとキーボード筐体の一体化

当初は市販品のiPadケースに3Dプリンタで作った筐体を貼り付けることを想定していたが、組み立ての手間を減らすため、ケースとキーボード筐体を一体型にしてまとめて印刷するよう針転換した。 しかしながらこれは後から思えば良くない判断だった。 筐体を構成する樹脂のPLAは硬くしなりづらい素材で、iPadのケースにしようとしても、少し出っ張らせてパチっとはめ込むような構造にし難い。 しならずともiPadにつけられるよう、左右から差し込む構造とすることが決定し、あわせて左右をまたぐ配線をコネクタで繋ぐ必要が出てきてしまった。 さらにコネクタを経由する配線を減らそうとして、Pro Micro(と互換機)を計2台使うことにもなった。

iPadの大きさとiPadケースのモデリング

今回の題材であるiPad Air 4をはじめとするApple製品は、公式にその寸法を示したガイドラインが公開されている。 (Accessory Design Guideline for Applie Devices) これをもとに、0.1mm程度の精度で設計、印刷した。 ケースの大きさはガイドラインに示されているiPadの寸法よりも余裕を見て少し大きくする必要があり、これは試作を繰り返して決定した。試作には上部ないし下部のみで30時間くらい印刷にかかるので結構面倒な作業であった。

組み立て

使用部品

部品 点数 補足
フィラメント PLA 黒 1.75mm 1kg 2 試作一回 (筐体半分) につき300gくらい使用した
te96 2
Kailh Choc 赤軸 42 なるべく薄くするためにKailh Chocを選んだ。赤軸のキースイッチが手元に丁度2個余っていたので40個買ってピッタリ使った。
mcsp lp向け挟ピッチキーキャップ 42 Kailh Choc用の16mmピッチで使えるキーキャップは他に選択肢がなかった。DMM.makeで3Dプリンタによって印刷されたものが届いた。相当力を入れないとキースイッチに刺さらないので、同じものを購入される方は注意されたい。
ジャンパケーブル 8 左右の筐体間をつなぐコネクタとして使っている
はんだ 0.3mmなどの細いものを用意しておくとやりやすい
導線 PCB間 (親指部分との配線)や、PCB内でも各columnとPro Micro間を導線で配線する必要がある
スズメッキ線 te96のrow同士の配線に使った
Pro Micro、Elite-C 1ずつ 左右の筐体に一つずつ使うが、iPadとの接続はUSB Type-Cで行うので、下の Type-C to Type-C ケーブルが使えるように片方はPro Micro互換のElite-Cを使うこととした
UGREEN USB Type-Cケーブル 1 片方がL字になっていて、長さが50cmで長すぎないType-C to Type-Cのケーブル。

組み上げ

筐体を印刷し、次にキーボードを組み立て、最後にそれらをはめこんでから一部配線をしてキーマップを書き込む、という手順で行った。

キーボードはマニュアルにあるような感じで組み立てていく。キーピッチは16mmになるように、最狭間隔で固定する。

te96のPCBを切断して分割した状態

te96の基盤を連結した状態

ピンヘッダを差し込んで基盤を接合するときは、裏にマスキングテープを貼って出っ張らないようにするといい。

te96で基盤連結用のピンヘッダをはんだづけするときは、裏側をマスキングテープで止めておくとピンの長さをぴったりにできる

基盤同士が接合できてテスターで導通を確認したら、ダイオードとキースイッチ、PCB内の配線、Pro MicroとElite-C、PCB間の配線をはんだ付けしていく。

te96にProMicroを組付けた状態

キースイッチを組み付けた状態

キーキャップをはめてキーマップを書き込み動作確認する

キーボードの配線を済ませて動作確認する状態

最後に筐体に組み付けて完成。

PCBの筐体への固定は、PCBにある2.15mmの穴に筐体の突起を差し込む方式とした。これは試作を繰り返す中で思いついた。 また、複数の基板を接合する際に間隔が開いて寸法がずれて差し込めなくなるのを防ぐために、筐体の一部を切り取ったような治具を印刷し、この上で組立を行っていた。

親指のキー部分は、キーボードを差し込むための筐体側の突起のある台座を別部品として印刷して、筐体本体に差し込むこととした。印刷方向の兼ね合いで、突起を水平方向に空中に印刷するのが難しいためである。

3Dプリンタで印刷した筐体

ちなみに各パーツの固定が甘かったので瞬間接着剤を流したら分解できなくなった。接触不良などが発生しても直せなくて困る。悲しい。

連結前のPCBを試作した筐体に組み付けてみる

キーマップの書き込み

こちらもマニュアルを参考にセットアップした。

途中から、ProMicroだけでなくElite-Cにも書き込む必要が出てきたので、以下のようなコマンドで書き込みを行なった。 ProMicroに書き込む際は、リセットボタンの代わりに RSTとGNDをショートさせていたが、Elite-Cは何もしなくても勝手に書き込みが始まった。(と思う)

https://github.com/yammerjp/qmk_firmware/commit/ce2a69222718b825d787d52fd7ad7476862ec417 に私のキーマップを置いている。

# Pro Micro
$ sudo make e3w2q/te96:test:avrdude
$ sudo make e3w2q/te96/rev1:yammerjp:avrdude
# Elite-C
$ sudo make e3w2q/te96:test:dfu
$ sudo make e3w2q/te96/rev1:yammerjp:dfu

(次回作があったら)改善したい点

te96組立時にショートさせない

te96の基盤を切り刻んで、ピンヘッダと接合部品を用いて繋げるのだが、そのときに意図しないショートに注意。特に16mmピッチにする場合は、外側に17-19mmピッチ用の穴があり、誤ってこれが基盤の近くにあるCherry MXの穴とぶつかるとrowとcolumnが導通してしまいキーボードとして機能しなくなる。 (やってしまってむりやり分解した。)

Cherry MXの穴は接合する基盤の片側にしかないので、ショートしないように接合部品を配置すべきだった。

分解可能性を高める

試作を繰り返す中で加えた修正に、キーボードの固定方法がある。 te96には直径2.15mmの穴が複数箇所に開いており、この大きさに合わせた特記を筐体に用意して差し込むことで固定することとしようとした。 はめ込むだけで済むようにしたかったが、実際にはゆるゆるだったので瞬間接着剤で固定した。これにより分解がしづらい状況となってしまったので、瞬間接着剤ではなくネジで固定できる構造とすると問題が起きても修理しやすくなっただろう。

左右の筐体を接合するコネクタの改善/廃止

キーボードをiPadに装着する際、2つの筐体をはめこんでコネクタを繋ぐ必要がある。ここに2.54mmのピンヘッダ用のコネクタを使ってしまっているので、極性に気をつける必要があるし気軽につけ外しできない。マグネットでくっついたり無線で通信したり、そもそも筐体が2分割されていないと嬉しい。

キーボードを背面ではなく側面に配置する

作ってみてわかったのだが、タイピングできる速度はびっくりするくらい遅い。 慣れの問題だろうと思っていたがそれだけではなく、構造に問題がありそうである。

iPadの背面にキーボードがあると、筐体の重さを手で支えているおかげか手の平を胸方向に向けるからか手に遊びがなく、キーが押しづらいと感じる。 手の筋肉の弛緩を見誤ったのがまずかった。

これを解決する方法として、iPadの側面にキーボードを配置して"前ならえ"したような体勢で打てるようにしたい。

CherryMX互換キーキャップ

キーストロークが深い方が気持ちいいのでは。

おわりに

動作するところまでは持っていけた。 3Dプリンタの精度が案外高くて、筐体もそれなりの形で作れたように思う。 椅子の上で使ったりベッドの上で寝転がって使ったりすることもできる。 (タイピング速度は遅いが...笑)

ちなみに何回か試行錯誤したのでこれくらい失敗した筐体がある。

失敗した筐体群

以上、というわけで次回作にご期待ください。なおいつ作られるのかは未定です。

Footnotes

  1. 前回の記事も含めて10月ごろに書いた文章が眠っていたので引っ張り出してきた。

  2. mcsp lp というキーボード、今回の製作に関係なく結構気になっています。欲しい。