ユーザー名:

パスワード:


パスワード紛失

新規登録
ビートス オンラインショップへ
アブソリュート株式会社様へ

REVIVE USB チャタリング対策版(PID004A)

前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 | 投稿日時 2016-12-27 10:05 | 最終変更
ushui  <ROOKIE>   投稿数: 7
REVIVE USBのチャタリング対策版ファームウェアを作ってみました。
下記URLからダウンロードしてください。
http://a-desk.jp/modules/mydownloads/viewcat.php?cid=9
(直リン) http://a-desk.jp/modules/mydownloads/visit.php?cid=9&lid=82

一度しかボタンを押していないのにダブルクリックになる、キーが複数回入力されるなどのケースを防ぐことができます。
通常のファームウェアはリアルタイムでスイッチの状態を読み取っているのでわずかな信号の揺れも検知してしまいますが、これを一定時間ごとに読み取って解決しています。
そのため遅延(デフォルトは最短30ms。1〜44370msまで調整可)が生じることに注意が必要です。
設定ツールによってしきい値を変更できるので、遅延を抑えたい場合やそれでもチャタリングが起きる場合にも対応できます。

以下のトピックのようなケースを解決できます。

【反応が早すぎるので延滞させたい】
http://a-desk.jp/modules/forum_module/index.php?topic_id=141
【縦振り電鍵のUSB入力デバイス化について】
http://a-desk.jp/modules/forum_module/index.php?topic_id=70
【複数キーの同時 離し】
http://a-desk.jp/modules/forum_module/index.php?topic_id=56
イイね!の数:0
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2016-12-27 22:59 | 最終変更
disklessfu  <EXPERT>   投稿数: 190
ushuiさんのmsg# 1.1.1を読んだところ、msg# 1.1に訂正箇所があるとわかったので修正しておきます。
修正内容は以下のとおりです。さらに問題があればご指摘下さい。
リピート間隔→リピート間隔やフィルターキー機能の設定

ushuiさん、ありがとうございました。
あと、ushuiさんがファイルアップローダにアップできなかった原因ですが、ファイル名に使用できない文字があった為だと思われます。詳しい仕様は知りませんが、過去の経験上、ものすごく文字種制限がきついサーバだと認識しています。
--------------------------------------------------
知識に差のある、いろんな人が見に来るので、REVIVE USB チャタリング対策版の別の説明を考えてみました。


【意図しない(勝手な)自動リピートもしくはチャタリングを防ぐ機能をを追加した、(REVIVE USB用)改良版ファームウェア】
(パソコン1台毎に、Windows OSのリピート間隔やフィルターキー機能の設定を変更しなくても済む)



Windows OSのリピート間隔やフィルターキー機能の設定の変更に比べたメリットは、
・パソコン1台毎に、Windows OSのリピート間隔やフィルターキー機能の設定を変更しなくても済む
・Windows OSのリピート間隔やフィルターキー機能の設定の変更によって他の接続デバイスの動作に影響が及ぶ弊害を、防ぐことができる
あたりだと、私は思います。



開発のきっかけとなったのは、このスレでしょうか

【反応が早すぎるので延滞させたい】
http://a-desk.jp/modules/forum_module/index.php?topic_id=141

(上記関連スレへのリンクは、(今後いろんな人が訪れることを考慮して)出来ればmsg#1に加えて頂きたいと思います)
イイね!の数:0
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2016-12-28 6:34
ushui  <ROOKIE>   投稿数: 7
ご意見ありがとうございます。
msg#1に加えておきました(内容も少し修正しました)。

遊んでいたゲームでプレイ中にチャタリングやその他ノイズが問題になる場合があり、それを改善しようとしたのが開発のきっかけです。
おっしゃる通り、該当トピックなどで同じような悩みを抱える方を見受けられたことも理由の1つです。
つまり元々はゲーム用途のために作成したもので「遅延を抑えつつチャタリング対策をする」狙いがあります。
チャタリング対策に遅延はつきもので、ゲーム用途(格ゲー・音ゲー・FPSなど)ではしばしば重視されます。

リピート間隔の変更について調べてみたのですが、この機能ではチャタリングを防止することができないようです。
代わりにWindowsにはフィルターキー機能というのが搭載されていて、連続したキー入力を防ぐ機能が2つありました。
しかし、どちらも副作用を確認できました。

1つ目は「キー入力の間隔と速度のセットアップ」で、キーを押して0.3〜20.0秒間経ってから入力を受け付ける仕様になっています。
つまり最短でも0.3秒(300ms)の遅延が発生します。
1秒間に3回ほどしかキーの連打ができなくなってしまうので、こちらは遅延を気にしない方でも不便に感じるケースが多いはずです。
また押しっぱなしにした時のキー入力も0.3秒置きになるようです。
2つ目は「バウンスキー機能」で、0.5〜2.0秒間連続した同じキー入力を受け付けない仕様になっています。
1つ目とは違って1回目の入力は即反映されるので遅延はゼロですが、こちらはさらに1秒間に2回しかキーの連打ができません。
押しっぱなしにした時のキー入力は完全に行えなくなるようです。

本来は体が不自由な方(手が震えるなど)などに向けた機能と思われますので、チャタリングを防止する機能ではありません。
チャタリング対策版ファームウェアならそのような副作用はなく、入力の受付や遅延の具合も調整できます。
またフィルターキー機能はキーボードにしか対応できませんが、こちらはマウスとジョイスティックにも利用できます。

接続している他のデバイスに影響を与えない、他のコンピュータでも同じ設定で利用できるなども確かにメリットですね。
現在創作しているキーボードでも問題になることがあったので、そういった自作デバイス系全般にも使っていただければと思います。
イイね!の数:0
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-12-29 19:55
ushui  <ROOKIE>   投稿数: 7
ファイルアップローダですが、FirefoxではなくIEでアップロードしたら投稿できました。
ご迷惑おかけしました。

ファームウェアもバグがあったので修正しておりその修正版をアップロードしているので、お手数ですが既にダウンロードしていた方はもう一度ダウンロードしてください。
再三になりますがmsg#1も書き換えておきます。
イイね!の数:0
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-12-30 13:36
disklessfu  <EXPERT>   投稿数: 190
私もFirefoxを使ってます。
IEならOKだということなので、このサーバの文字種制限が厳しい理由は多分、
アップロード用インターフェースが、ファイル名に含まれる特殊文字のエンコードをブラウザ任せにしているからなんでしょう
イイね!の数:0
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2017-1-5 21:12
ushui  <ROOKIE>   投稿数: 7
【チャタリング対策版の派生(MATRIX版、ロータリーエンコーダ対応版)】
http://a-desk.jp/modules/forum_module/index.php?topic_id=145
派生バージョンを公開しました。上記トピックからダウンロードできます。

また通常のチャタリング対策版もバージョンアップしています。ファイルアップローダの投稿に認証が入ったため反映されるまで時間がかかりますが、先に使いたい方は
https://github.com/ushui/REVIVE_USB_Debounce/raw/master/REVIVE_USB_Debounce_latest.zip
よりダウンロードしてください。

バージョンアップした理由なんですが、PIN8以降の入力がおかしくなる・バッファオーバーフローして出力値がおかしくなるという重大なバグがありました。
元々変更した部分が多いファームウェアなので、他にもバグがある可能性があります。
知識のある方はアドバイスをいただければ幸いです。
イイね!の数:0
返信する

このトピックに投稿する

題名
投稿本文