Arduinoでの2-key Keyboard作成

やりたい事

とりあえず家じゅうが閉じこもって各々ゲームをしていたりと、楽しく過ごしているのだが、あるゲームでキーボードの耐久性が気になってきた。あと軸の違いもためしてみたいのでゲームで使うボタンだけのキーボードを作りたい。

準備

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時間とか言われてあきらめた。

軸取り付け

なんか思っていたのと違う仕上がり。うえからはめるだけ、ぴったり固定される絶妙なサイズ。

 
Sの字のところ、サポートを除去するつもりが、間違って下まで突き破ってしまった。まぁ実用上問題はない。
裏から見るとこんな感じ。

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');
  }
  
}

おわりに

いろいろ、まとめている人がいるとありがたい。

ブロック崩しのコントローラとか作りたい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です