やりたい事
とりあえず家じゅうが閉じこもって各々ゲームをしていたりと、楽しく過ごしているのだが、あるゲームでキーボードの耐久性が気になってきた。あと軸の違いもためしてみたいのでゲームで使うボタンだけのキーボードを作りたい。
準備
Anycubic社製 Kossel Linear Plus
ずいぶん前に思い付きで購入し、リビングの片隅で何かの台になっていたもの。ほこりを吹いたり。
キーボードの筐体モデル
https://www.thingiverse.com/thing:3712151
を使った。Arduino Pro Microの穴とかステーとかついている。
Cherry Mx の軸
赤軸とあとで比較のため青軸を購入。千石電子から、次の日に来た、このご時世なのにはやい。
Arduino Pro Micro 互換ボード
これがあるとすぐにキーボードが作れるとのことなので、Shigezoneで購入、次の日来た。アマプラより早い時がある。
作業
筐体プリント
とりあえず、1年ぶりくらいに動かすので、ほこりをとるところから。firmwareとか新しいのがあるけど面倒なので as is で。
Auto levelingとか調整、試しにプリントしたらBedの温度が途中で上がらなくなり、煙が出てくる。見ると電源の端子台が焦げている。なんだろうな、なんかゆるんでた?とか思いながらとりあえずケーブルを直ではんだ付け。
https://groups.google.com/forum/#!topic/flashforge/nVOJ0iL29Xg
を見るとTriGorillaでよくある話なのか?
とりあえず、久々だったので、https://www.thingiverse.com/thing:1969059
とか、
https://www.thingiverse.com/thing:2771843
を追加した。PSUカバーは12時間とか言われてあきらめた。
軸取り付け
なんか思っていたのと違う仕上がり。うえからはめるだけ、ぴったり固定される絶妙なサイズ。


Arduino取付
かちっとはまる。すばらしい。写真にうつってないけどMicroUSBコネクタの穴もきれいにはまる。

配線
とりあえず、各々のスイッチの端子、片方グランドで、他方は、Digital in 2, Digita in 3 にそれぞれ接続、空中配線。
ファーム書き込み
あまり中身は考えてなかったので、とりあえず調べてみる。https://qiita.com/kamaboko123/items/c32ad91434ffc7f4ff8d
が、作業の流れが分かりやすかったです。
Platform IOでKeyboard Libraryを追加して、とりあえず下のようなものを書いてみた(いろいろ考えるところはあるのだが、そんなにシビアじゃないだろうし)。
#include <Arduino.h>
#include "Keyboard.h"
#define KEYZ 2
#define KEYX 3
void setup() {
  // put your setup code here, to run once:
  pinMode(KEYZ, INPUT_PULLUP);
  pinMode(KEYX, INPUT_PULLUP);
}
void loop() {
  // put your main code here, to run repeatedly:
  if(digitalRead(KEYZ)==LOW){
    Keyboard.press('z');
  }else{
    Keyboard.release('z');
  }
  if(digitalRead(KEYX)==LOW){
    Keyboard.press('x');
  }else{
    Keyboard.release('x');
  }
  
}
おわりに
いろいろ、まとめている人がいるとありがたい。
ブロック崩しのコントローラとか作りたい。