**********************************************************************
セッションs4d
テーマ:キーボードを自作しよう、エンジニアとして成長するために
講師:石田 晴幸
日時:2018/8/31 11:30~12:20
参加人数:22名
**********************************************************************

背景
パーソナル・ファブリケーション環境の充実
例)
・3Dプリンタやレーザーカッター
・フリーで使えるCAD
ー> 自分で思い描いた組込みシステムを
そこそこのコストで実現できるようになった。

目的
・ソフト技術者のエレキ・ハードの世界へ踏み出す一歩の提案
ー>ハード先行のソフトウェア設計ではなく、
自分たちで考えていけるようになる
・キーボードを自作するための基本的な技術の習得

キーボード作成に至った経緯
・肩がこる
・打ち間違え
・キーボードを超える入力機器がでてこない
ー>自分でDevOpsみたいに運用しながら改善してみようとなった

キーボードの例
・Arduinoのスケッチ
-----------------------------------------------
const uint8_t PIN_BUTTON = 15;
int btnStat;
void setup(){
Keyboard.begin();
pinMode(PIN_BUTTON, INPUT_PULLUP);
btnStat = HIGH;
}
void loop(){
int lastStat = btnStat;
btnStat = digitalRead(PIN_BUTTON);
// ボタンが押下から放された瞬間
if ((lastStat == LOW) && (btnStat != LOW)){
Keyboard.print("Hello");
}
}
-----------------------------------------------

・AVRマイコン ATmega32U4
1 コア8ビットAVR
2 フラッシュ32Kbyte
3 SRAM 2.5Kbyte
4 EEPROM 1Kbyte
5 USB対応USB仕様改訂2.0(Universal Serial Bus
Specification Rev 2.0)完全適合
6 動作電圧2.7~5.5V
7 最大速度8MHz/2.7V, 16MHz/4.5V

・マイコンによる入力ピンのプルアップ
・Arduino開発環境を用いてファームのビルドと装置への書き込み



キーボードの設計
・フルかコンパクトか
 ・60%設計にしてコンパクトにする、テンキーをなくす
・キースイッチの配置
・一体化型か分離型か
・キー配列をどうするか
1 QWERTY
タイプライターからつづく伝統あるレイアウト。
2 Dvorak
英文の文字の出現頻度と相関性から設計。
母音を左手ホーム行に集約、
左右交互打鍵による高速入力を狙う。
1943年に発表された。
3 Colemak QWERTYから17キーを変更。
頻度の高い文字をホーム行に集約。
AZXCVなど良く使う編集用キーは変更なし。
2006年に発表された。
4 Minimak
QWERTYから段階的に移行できる。
最小の変更で最大の利益を狙う。

問題
1.マウスが遠いと肩がこる
2.手首に角度をつけると肩や腕が疲れる
3.小指を酷使すると前腕が疲れる

考え方
1.マウスを近くにする
・テンキーレスでマウスをホームポジションの近くに置く
・カーソルキーなどはレイヤキーとの同時押しで、ホームポジションのまま
使えるようにする。
2.手首の角度を改善する
・分割キーボードを用いて、手首の角度をなくす
3.モディファイキーは親指で操作できるようにする

施策
現在、石田さんが用いているキーボードは分離型でマウスをキーボードの間に置く

キーボードを自作するための技術
エレキ技術
・スイッチマトリックス:100個のスイッチを20本のピンで設計
・PCB

ハード技術
・スイッチ:使用感・作動力
・キーキャップ:DCS/DCS/SA・材質・加工法
・ケース:アクリル板・3Dプリント

ソフト技術
・qmk_firmware
・マトリックススキャン
・キーマップ
・アクション:キーを押されたとき、キーボード内の状態を変え特殊な動作をする
・USB通信


□質疑応答
Q:キーボードははんだ付けして作成している?
A:はんだ付けしている。全部で1時間程度でできる。

Q:キーボードを立体的(曲げる)のはむずかしい?
A:設計は大変だが、意外と簡単にできる。

Q:同時に20小スイッチを押したときの設定は?
A:ファームウェアで設定可能


■まとめ
・自作キーボードのとりかかりは簡単
・情報はネットに散在している
・コミュニティも活発
 ー>日々使うものを自分で改善し、新しいものへのチャレンジをしよう!