やりたい事
とりあえず家じゅうが閉じこもって各々ゲームをしていたりと、楽しく過ごしているのだが、あるゲームでキーボードの耐久性が気になってきた。あと軸の違いもためしてみたいのでゲームで使うボタンだけのキーボードを作りたい。
準備
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'); } }
おわりに
いろいろ、まとめている人がいるとありがたい。
ブロック崩しのコントローラとか作りたい。