Skip to content
tomo edited this page Aug 11, 2019 · 1 revision

はじめに

TOKYO FLIP-FLOPさんのワンボタンキーボードで、

  • シングルクリック
  • ダブルクリック
  • 長押し

に対応しました。
ダブルクリック時の2回目のクリックで指を離さず長押しにしても、ダブルクリックとして反応します。

ワンボタンキーボードの詳細はこちら

プログラムの調整

感度調整

ソースコード中の次の3行でクリック速度など調整します。

const unsigned long LONG_HOLD_PERIOD_MS = 1000; // キー長押しと判定する時間
const unsigned long INPUT_END_PERIOD_MS =  500; // キー入力の完了と判定する時間 (> CONT_CLICK_PERIOD_MSにする)
const unsigned long CONT_CLICK_PERIOD_MS = 333; // 連続クリックと判定する時間

INPUT_END_PERIOD_MSの値をCONT_CLICK_PERIOD_MSの値よりも大きく設定します。

長押し時の繰り返し処理

長押し時にキー入力を繰り返したい場合は、_LONG_HOLD_LOOP_ の#defineを有効にします。

#undef _LONG_HOLD_LOOP_   // 長押し時に連続実行する場合は#defineする

キー入力の定義

関数の内部は適宜編集します。

シングルクリック

void actionSingleClick() {
  Keyboard.print("single");
  Keyboard.press(KEY_RETURN);
  delay(10);
  Keyboard.releaseAll();
}

ダブルクリック

void actionDoubleClick() {
  Keyboard.print("double");
  Keyboard.press(KEY_RETURN);
  delay(10);
  Keyboard.releaseAll();
}

長押し

void actionLongHold() {
#ifndef _LONG_HOLD_LOOP_
  if (countLongHold == 0) {
#endif
  Keyboard.print("long hold");
  Keyboard.press(KEY_RETURN);
  delay(10);
  Keyboard.releaseAll();
#ifndef _LONG_HOLD_LOOP_
  }
#endif
}