1.はじめに
パソコンのキーボード、親指がスペース キーを押すだけではもったいない!
ホームポジションから両手を移動させることなく、
よく使用するキーを押せる自作キーボードを作りました。
ご紹介、並びに作り方を説明します。
※(注意事項)製作基板は販売しておりません。展示会等で無料配布予定です。
2.開発経緯・紹介
(1)開発経緯
事の流れは、次の①~⑥の通りです。
①自作キーボードにて、仕事の作業効率を向上させたい。
②作業効率向上をどうすればできるか?
③現在の問題(押しにくいキーがある)を解決すれば良い。
|・キー押す際に、キーの位置を探す
|・キー押す際に、ホームポジションから外れて次の入力が遅れる
④しかし、自分が求めるものがない。
⑤だったら作ろう。
スペースキーしか押さない、遊んでいる親指を活用しよう。
(2)紹 介
①製作物は次の写真の赤枠で示す部分になります。
②各キースイッチの機能は、次表の通りです。
※プログラムの書き込みにより、変更可能です。
上 側 | “ | HOME | 上矢印 | END | ( | ) |
---|---|---|---|---|---|---|
下 側 | Ctrl | 左矢印 | 下矢印 | 右矢印 | = | なし |
3.作り方
(1)材料
・基板 1枚(非売品)
・マイコンボード 1個:Seeed Studio XIAO RP2040
・タクトスイッチ 11個:おすすめは秋月電子通商 タクトスイッチセット100個【販売コード101282】
・タクトスイッチキャップ ?個:必要に応じてネットで調べて購入してください。
・【ねじ(サイズM2) 6本】または【両面テープ】 (個人の考えで選択)
(2)手順
①タクトスイッチの端子線をペンチでまっすぐに伸ばしてからニッパーで短く切断する。
(はんだ付け後に切断すると、端子線が出っ張るため)
②はんだ付け
・マイコンボードを基板に載せ、穴に、切断した端子線を差し込む。
・穴に、ハンダを流し込む感じで はんだ付けする。
・最後に、タクトスイッチをはんだ付けする。
※しっかりと差込み、浮き上がりがないように 注意してください。
③プログラムの書き込み(ソフトはArduino IDE)
プログラム内容を末尾に示します。
(3)その他
・タクトスイッチキャップは、個人の好みで取り付けてください。
・キーボードへ ねじで固定する場合、キーボードを破損させるおそれがあります。
恐れ入りますが、自己責任で取り付けてください。
プログラム内容
#include <Keyboard.h>
#define IN0 D0
#define IN1 D1
#define IN2 D2
#define IN3 D3
#define IN4 D4
#define IN5 D5
#define IN6 D6
#define IN7 D7
#define IN8 D8
#define IN9 D9
#define IN10 D10
void setup() {
Serial.begin(9600);
Keyboard.begin();
pinMode(IN0,INPUT_PULLDOWN);
pinMode(IN1,INPUT_PULLDOWN);
pinMode(IN2,INPUT_PULLDOWN);
pinMode(IN3,INPUT_PULLDOWN);
pinMode(IN4,INPUT_PULLDOWN);
pinMode(IN5,INPUT_PULLDOWN);
pinMode(IN6,INPUT_PULLDOWN);
pinMode(IN7,INPUT_PULLDOWN);
pinMode(IN8,INPUT_PULLDOWN);
pinMode(IN9,INPUT_PULLDOWN);
pinMode(IN10,INPUT_PULLDOWN);
}
void loop() {
if( digitalRead(IN1) ) {
Keyboard.press(KEY_LEFT_SHIFT);
delay(100);
Keyboard.print("-");
delay(100);
Keyboard.releaseAll(); }
if( digitalRead(IN2) ){
Keyboard.press(KEY_RIGHT_ARROW);
delay(150); }
if( digitalRead(IN3) ){
Keyboard.press(KEY_DOWN_ARROW);
delay(150); }
if( digitalRead(IN4) ){
Keyboard.press(KEY_LEFT_ARROW);
delay(150); }
if( digitalRead(IN5) ){
Keyboard.press(KEY_LEFT_CTRL);
delay(200); }
else{Keyboard.releaseAll();}
if( digitalRead(IN6) ) {
Keyboard.press(KEY_LEFT_SHIFT);
delay(100);
Keyboard.print("2");
delay(100);
Keyboard.releaseAll(); }
if( digitalRead(IN7) ){
Keyboard.press(KEY_HOME);
delay(200); }
if( digitalRead(IN8) ){
Keyboard.press(KEY_UP_ARROW);
delay(150); }
if( digitalRead(IN9) ){
Keyboard.press(KEY_END);
delay(200); }
if( digitalRead(IN10) ) {
Keyboard.press(KEY_LEFT_SHIFT);
delay(100);
Keyboard.print("8");
delay(100);
Keyboard.releaseAll(); }
if( digitalRead(IN0) ) {
Keyboard.press(KEY_LEFT_SHIFT);
delay(100);
Keyboard.print("9");
delay(100);
Keyboard.releaseAll(); }
}
※キー機能変更(参考)
CTRLキー : KEY_LEFT_CTRL (又は KEY_RIGHT_CTRL)
ALTキー : KEY_LEFT_ALT (又は KEY_RIGHT_ALT)
WINキー : KEY_LEFT_GUI (又は KEY_RIGHT_GUI)
以上となります。