LoginSignup
2
0

親指 ・タクトスイッチ 自作キーボード

Posted at

1.はじめに

 パソコンのキーボード、親指がスペース キーを押すだけではもったいない!
 ホームポジションから両手を移動させることなく、
 よく使用するキーを押せる自作キーボードを作りました。
 ご紹介、並びに作り方を説明します。
 ※(注意事項)製作基板は販売しておりません。展示会等で無料配布予定です。

2.開発経緯・紹介

(1)開発経緯
 事の流れは、次の①~⑥の通りです。
 ①自作キーボードにて、仕事の作業効率を向上させたい。
 ②作業効率向上をどうすればできるか?
 ③現在の問題(押しにくいキーがある)を解決すれば良い。
  |・キー押す際に、キーの位置を探す
  |・キー押す際に、ホームポジションから外れて次の入力が遅れる

 ④しかし、自分が求めるものがない。
 ⑤だったら作ろう。
  スペースキーしか押さない、遊んでいる親指を活用しよう。

(2)紹 介
 ①製作物は次の写真の赤枠で示す部分になります。
  24.04.18-3.jpg

  24.04.18-4.jpg
  ※キースイッチは、タクトスイッチです。

 ②各キースイッチの機能は、次表の通りです。
  ※プログラムの書き込みにより、変更可能です。

  上 側    “   HOME 上矢印 END  (   ) 
  下 側   Ctrl 左矢印 下矢印 右矢印  =  なし

3.作り方

(1)材料
 ・基板 1枚(非売品)
 ・マイコンボード 1個:Seeed Studio XIAO RP2040
 ・タクトスイッチ 11個:おすすめは秋月電子通商 タクトスイッチセット100個【販売コード101282】
 ・タクトスイッチキャップ ?個:必要に応じてネットで調べて購入してください。
 ・【ねじ(サイズM2) 6本】または【両面テープ】 (個人の考えで選択)

(2)手順
 ①タクトスイッチの端子線をペンチでまっすぐに伸ばしてからニッパーで短く切断する。
  (はんだ付け後に切断すると、端子線が出っ張るため)
   24.04.18-1.jpg

 ②はんだ付け
 ・マイコンボードを基板に載せ、穴に、切断した端子線を差し込む。
 ・穴に、ハンダを流し込む感じで はんだ付けする。
 ・最後に、タクトスイッチをはんだ付けする。
  ※しっかりと差込み、浮き上がりがないように 注意してください。
  24.04.18-2.jpg

 ③プログラムの書き込み(ソフトはArduino IDE)
  プログラム内容を末尾に示します。
  
(3)その他
  ・タクトスイッチキャップは、個人の好みで取り付けてください。
  ・キーボードへ ねじで固定する場合、キーボードを破損させるおそれがあります。
   恐れ入りますが、自己責任で取り付けてください。

プログラム内容

20240405_keyboard22_11_03.ino
#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)

以上となります。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0