No description, website, or topics provided.
C C# Objective-C
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
REVIVE_USB_RENC_Debounce_CT
REVIVE_USB_RENC_Debounce_FW
.gitattributes
.gitignore
LICENSE
README.md
REVIVE_USB_RENC_Debounce_latest.zip
revive_usb_renc_debounce_ct.png

README.md

REVIVE USB ロータリーエンコーダ対応 チャタリング対策版(PID004C)

REVIVE USB チャタリング対策版(PID004A)のロータリーエンコーダ対応版です。
最大6つのロータリーエンコーダを動作させることができます(1つ増やすごとに使えるボタンが2つ減ります)。

※ロータリーエンコーダはインクリメンタル・ノンクリックタイプを想定しています。
 エンコーダの仕様によって動作しないことがあるのでご了承ください。

使い方

基盤の組み立て方や配線などは下記を参考にしてください。
URL: http://a-desk.jp/modules/forum_module/index.php?cat_id=3

  1. 上記URLからファームウェア書き込みソフト「HIDBootLoader.exe」をダウンロードする。

  2. このリポジトリから「REVIVE_USB_RENC_Debounce_latest.zip」をダウンロードし、解凍する。
    「readme.txt」「REVIVE_USB_RENC_Debounce_CT.exe」「REVIVE_USB_RENC_Debounce_FW.hex」の3つのファイルが解凍される。

  3. 手持ちのREVIVE USBのショートピンをBOOTにしてPCへ接続する。

  4. 「HIDBootLoader.exe」を起動して「Open Hex File」ボタンから「REVIVE_USB_RENC_Debounce_FW.hex」を選択し、
    「Program/Velify」ボタンを押してREVIVE USBのファームウェアを書き換える。

  5. REVIVE USBのショートピンをBOOTから戻して再度PCへ接続する。

  6. 「REVIVE_USB_RENC_Debounce_CT.exe」を起動して好みの設定に変更する。

設定ツールについて

「REVIVE USB, Configuration Tool」にサンプリング周期・一致検出回数・ロータリーエンコーダの設定項目を増やしたものです。
当ファームウェア以外では動作しません。
デフォルトでは「サンプリング周期=3ms/一致検出回数=10回」に設定していますが、必要であれば変更することができます。

REVIVE USB RENC Debounce, Configuration Tool

サンプリング周期

チャタリングノイズ除去の効果があります。
1~174msまで設定可能で、その設定値ごとにスイッチのON/OFF読み出しを行います。
長く設定すると長い間隔で読み出されるので、チャタリングが起こりにくくなる代わりに遅延が増加します。

一致検出回数

ノイズ除去の効果があります。
1~255回まで設定可能で、その回数分スイッチがONであれば正しい入力とみなして入力を行います。
ONからOFFになる時にも回数分OFFであることを確認します。
大きく設定するとチャタリングノイズ除去の精度向上や外来ノイズの除去が期待できますが、サンプリング周期に比例して遅延が増加します。

ロータリーエンコーダの設定

ここで指定したピンがロータリーエンコーダのA相/B相として扱われます。
「1P/2P」から「11P/12P」までペアになっています。チェックを入れなければ通常のデジタル入力として使えます。

また、ロータリーエンコーダには通常とは異なる一致検出回数を設定できます。
デフォルトでは1回です。2回以上にすると早く回さないと反応しなくなったりします(これが悪いことかどうかは用途によります)。

補足

ロータリーエンコーダは信号の変化が速いため、サンプリング周期や一致検出回数の設定値によっては入力が不安定(回した方向へ急な速度で入力される、回した方向とは逆にブレるなど)になりやすいです。
エンコーダの仕様・使用環境・用途にもよりますが、この2つの適正値はシビアで、チャタリング対策をするには少し手間が必要です。
A相/B相に割り当てたピンの設定を「マウス/上移動」「マウス/下移動」にしておくなどして、確認しながら少しずつ調整していい塩梅を見つけてください。ボタンとロータリーエンコーダで一致検出回数を個別に設定できるので、サンプリング周期は適正値がシビアなロータリーエンコーダに合わせてからボタンの一致検出回数を増やすことで調整することをおすすめします。
動作確認を「EC12E2430803」で行ったため、デフォルト値はこれに合わせています。

遅延について

遅延秒数は サンプリング周期 * 一致検出回数 - (サンプリング周期 / 2) でおおよそ求められます。
ロータリーエンコーダとそれ以外で別になりますのでご注意ください。

動作環境について

設定ツールはWindows XP以降のOSで動作します。
書き込み・設定をWindows上で行ってしまえば、MacやLinux/UNIX系のOSでも動作します。

開発環境・開発言語について

ハードウェア

REVIVE USB (PIC18F14K50)

ファームウェア

開発環境:MPLAB IDE 8
開発言語:C

ソフトウェア(設定ツール)

開発環境:Visual C# 2010 Express
開発言語:C#

ソースコードについて

Assembly Desk License」ライセンスに準拠します。
「REVIVE USB ロータリーエンコーダ対応 チャタリング対策版」は「REVIVE USBロータリエンコーダ対応版」を参考にして作成しました。作成者である「阿部」氏に感謝いたします。


2017/09/03 Markdown記法の一部誤り等を修正。曖昧だった表現等の校正。
2017/03/04 若干修正。
2017/01/22 遅延に関する記述の修正。
2017/01/05 FW ver 2.0に合わせて加筆修正。
2017/01/04 readme作成。


作成者: ushui(ゆーしゅい)
Twitter: @kaede_hrc