• 検索結果がありません。

ロータリエンコーダの、見かけ上のパルス数をカウントします。

CCW

ならカウントをインクリメントし、CWならカウントをデクリメントします。

カウント値は回転角に相当し、最大値を超えない範囲で循環するようにします。

CCW: 0 1 2 ... 198 199 0 1 2 ...

setup()

初期化を行います。

ロータリエンコーダの

A

B

相の信号ピンを設定します。

アナログスティックの傾き量テーブルを初期化します。

デバッグのためにログ出力の準備をします。

loop()

ロータリエンコーダの、見かけ上のパルス数を、ポーリングによりカウントします。

ロータリエンコーダの信号処理は、通常は割り込みを使用しますが、割り込みは他で 使用する予定があるため、ここではポーリングにより処理を行います。

デバッグのためにログを出力します。

結果

ロータリエンコーダを反時計回りに回転すると、以下のような結果となりました。

count: 0 RH: 255 RV: 128 count: 1 RH: 255 RV: 123

(中略)

count: 49 RH: 132 RV: 0 count: 50 RH: 127 RV: 0 count: 51 RH: 123 RV: 0

(中略)

count: 99 RH: 0 RV: 123 count: 100 RH: 0 RV: 128 count: 101 RH: 0 RV: 132

(中略)

count: 149 RH: 123 RV: 255 count: 150 RH: 128 RV: 255 count: 151 RH: 132 RV: 255

回転角

0

(count = 0)

では、アナログスティックは右

(RH = 255, RV = 128)

、 回転角

90

度(count = 50)では、アナログスティックは上(RH = 127, RV = 0)、

回転角

180

度(count = 100)では、アナログスティックは左(RH = 0, RV = 128)、

回転角

270

(count = 150)

では、アナログスティックは下

(RH = 128, RV = 255)

、 となっているのがわかります。このように、信号処理と値の変換が確認できました。

部品

ビットトレードワン

日本電産コパル電子 ロータリエンコーダ[RES20D-50-201-1] ¥1250

スイッチサイエンス

Arduino

をはじめようキット¥4320

千石電商

【QIコネクタ】信号伝達コネクタ用ピン メス【F】(10本) ¥74×1

【QIコネクタ】信号伝達コネクタ(黒)1×4 2550-1×4 ¥21×1

ピンヘッダ 1列×40P (ストレート・標準ピッチ) 2544-1×40 15.1(6.3/6.3) ¥105

参考文献

[1] 設定用光学式エンコーダ REC/RES

カタログ

PDF - Copal Electronics

http://www.nidec-copal-electronics.com/files/f942ed53125803ced27338faf050ac566fe48106.pdf [2] Arduino

日本語リファレンス

-

ポート操作

http://www.musashinodenpa.com/arduino/ref/index.php?f=0&pos=850

ローリングスイッチユニットの製作

ローリングスイッチユニットの基本的な構造は、新方式ローリングスイッチ製作

[1]

を 参考にさせていただきました。非常に画期的な構造で、操作感覚も良好なものでした が、残念ながら正常に動作しなかったため、改良を加えました。

部品として指定されていた、秋月電子通商で入手可能なロータリーエンコーダ

RE160F-40E3-20A-24P

は、機械接点が

ON/OFF

する摺動(しゅうどう)式で、チャ タリングやバウンスが避けられません。データシートを見ると、バウンスは

2ms、

チャタリングは

3ms

とあり、不感時間を設けて対策することになります。

実験の結果、ロータリーエンコーダを素早く回転した場合、信号を取りこぼしてしま い、回転を検出できなくなることがわかりました。

このため、ロータリーエンコーダは、チャタリングやバウンスの無い光学式のものを 使用することにしました。

ボタン上部の加工

三和電子のボタン

OBSF-30-B

の上部を取り外し、加工します。内部の構造をニッ パーで切り取り、ドリルで中心に

9mm

の穴を開けます。

ロータリーエンコーダの取り付け

加工した部品に、日本電産コパル電子のロータリエンコーダ

RES20D-50-201-1

を取 り付けます。このように、ピッタリと収まります。

ボタン基部の加工

スイッチ部品を一旦取り外し、突起をニッパーで切り取り、元に戻します。

両脇にあるツメの一方を、ニッパーで切り取ります。ここから、ロータリーエンコー ダのケーブルを引き出します。

バネの加工と取り付け

バネを加工し、ボタン基部に取り付けます。加工するバネは、八幡ねじ 押しバネ

0.6×9×26 (線径×外径×長さ)が手ごろでした。これを 1/2

に切断し、ペンチでらせん状

に曲げ、スイッチ部品に取り付けます。バネを切断する際は、鋼線を切断できるニッ パーでなければ刃を傷めてしまうので、注意して下さい。

各部品の取り付け

ボタン基部にボタン上部を取り付けます。一旦取り付けてしまうと、取り外すのが困 難なので、注意して下さい。ロータリーエンコーダのケーブルは、切り取ったツメの 穴から引き出し、QIコネクタで端末処理を行います。ケーブルが短いので、延長用の ハーネスを製作します。ケーブルは

AWG26

の太さが手ごろでした。また、ファスト ン端子を圧着した、ボタンの端子用ハーネスも製作します。こちらは少し太めの

AWG22

が手ごろでした。

ロータリーエンコーダの軸に、鍋ツマミを取り付けます。鍋ツマミは、デリッシュ 鍋ツマミ

LL

が丁度良い大きさでした。中心に始めから開いているネジ穴に、ドリル で

6mm

の穴を開け、取り付けます。かなりきついので、注意して下さい。

全ての部品を取り付けて完成です。

部品

ビットトレードワン

日本電産コパル電子 ロータリエンコーダ[RES20D-50-201-1] ¥1250

千石電商

三和電子

φ30

ゲーム

SW

(はめ込み) 青

OBSF-30-B

(青) ¥

173

日本圧着端子製造(JST) ファストン端子#110(メス) LTO-41T-110N (10個) ¥110

【QIコネクタ】信号伝達コネクタ用ピン メス【F】(10本) ¥74×2

QI

コネクタ】信号伝達コネクタ(黒)

1×4 2550-1×4

21×3

【QIコネクタ】信号伝達コネクタ(黒)1×2 2550-1×2 ¥21

ピンヘッダ 1列×40P (ストレート・標準ピッチ) 2544-1×40 15.1(6.3/6.3) ¥105 協和ハーモネット

RKV 0.3×4

L-1 4

芯リボンケーブル

1m

250

協和ハーモネット RKV 10/0.12×10列 L-1 10芯リボンケーブル 1m ¥280

ジョイフル本田

八幡ねじ 押しバネ 0.6×9×26 (線径×外径×長さ) [入数

2] ¥162

デリッシュ 鍋ツマミ LL ¥204

参考文献

[1]

新方式ローリングスイッチ製作

http://extendead.web.fc2.com/iroiro/R_SW/R_SW.html

ローリングスイッチシールドの製作

Arduino

のローリングスイッチシールドを製作します。ブレッドボードで実験した回

路を、Arduino用ユニバーサル プロトシールド基板上に実装します。

レバーとボタンとローリングスイッチユニットを接続するコネクタを配線します。

回路図 1

部品配置図 1

基板表面 基板裏面

PS2 1 2 3 4 5 6 7 9 1 2 4 3 5 LEVER

1 2 3 4 RENC GND O START GND

TC7SZ TC7SZ 125F

125F

完成写真 1

 基板表面 基板裏面

ロータリエンコーダのピン配置が逆転してしまっているので注意して下さい。このま ま製作すると、サテライトが逆向きに回転してしまいます。ハーネスのコネクタを入 れ替えるなどして対応して下さい。

回路図 2

代替部品による回路です。TC7SZ125Fの代わりに

TC74HC125AP

を使用しています。

オープンドレインの出力を

3V

でプルアップするのであれば、5Vで動作させても問題 ないようです。こちらの方が簡単に製作できると思います。

部品配置図 2

 基板表面 基板裏面

完成写真 2

 基板表面 基板裏面

ロータリエンコーダのピン配置が逆転してしまっていたのを修正しました。

その他

コネクタは

QI

コネクタと標準的な

2.54mm

ピッチのピンヘッダで実現していますが、

使用した

L

型のピンヘッダが、通常のものとは異なる形のものでした。千石電商で入 手可能ですが、ジョイスティック本体内に収まるのであれば、ストレートのピンヘッ ダでも良いと思います。ジャンパ線は、耐熱通信機器用ビニル電線を利用しましたが、

もっと安価な部品でも良いと思います。 部品配置図に

BANANAWANI MICOM. CULB

さんの

Arduino

プロトシールドの

PasS

用データ[1]を使用させていただきました。

PS2 1 2 3 4 5 6 7 9 1 2 4 3 5 LEVER

START GND

GND O 4 3 2 1 RENC TC74HC125AP

部品 1

秋月電子通商

1

回路

3

ステートバッファ TC7SZ125F(TE85LF)(10個入) ¥100

SOT23

変換基板 金フラッシュ (10枚入) ¥150

細ピンヘッダ 1×40 (黒) ¥40

部品 2

千石電商

東芝

CMOS

ロジック

IC TC74HC125AP ¥84

共通部品

千石電商

2545-1×40

ピンヘッダ

1

×40P (L

型・標準ピッチ

)

84

秋月電子通商

Arduino

用ユニバーサル プロトシールド基板 ¥200

ピンヘッダ 1×40 (40P) ¥40

耐熱通信機器用ビニル電線 2m×10色 外径

0.65mm ¥620

スズメッキ線

(0.6mm 10m)

210

鉛フリーハンダ 0.8mm ¥280

参考文献

[1] BANANAWANI MICOM. CULB: Arduino

プロトシールドの

PasS

用データ

http://bananawani-mc.blogspot.jp/2010/10/arduinopass.html

ローリングスイッチの製作

製作したローリングスイッチユニットと、

Arduino

+ローリングスイッチシールドを、

ジョイスティック本体に組み込みます。ジョイスティック本体は、三和電子のボタン

OBSF-30-B

が取り付けられるものであれば、好きなものを利用して良いのですが、

中古を除くと、選択肢は少ないと思います。HORIリアルアーケード

Pro

が確実なの ですが、ここでは、HORIファイティングスティック

V3

を利用しました。

部品の取り外し

折角なので、文献[1]を参考に、レバーを三和電子のレバー

JLF-TP-8Y

に交換するこ とにします。裏面のネジを外し、裏蓋を取り外します。レバーとボタンとコントロー ル基板があるのが分かります。これらを全て取り外します。

レバーとコントロール基板は、ネジで固定されているだけなので、ネジを外すと取り 外せます。レバーの握り玉は、シャフトがネジになっていて、固定されています。

シャフトの溝にマイナスドライバーを差し込んで回すと、握り玉が外せます。

ボタンは基板に半田付けされているので、半田吸い取り器を使って基板を外し、一個

ずつ取り外します。上部にある、スタートボタンや連射スイッチ等は、とりあえずそ のままにしておきます。

レバーの加工

三和電子のレバー

JLF-TP-8Y

のレバーガイドを取り外し、加工します。レバーガイド の上下左右の位置にある窪みを貫通するように、ドリルで

3mm

の穴を開けます。た だしこれだと少しきついので、できれば

3.2mm

のほうが良いと思います。窪みの反 対側にある突起は、予めニッパーで切断しておきます。

穴の位置は、レバーを上から見たとき、上下左右の位置に予め空いている穴と一致す るのが、正しい位置です。

レバーハーネスの加工

ハーネスのピン番号に対応するケーブルの色は、以下のようになっていました。ハー ネスによっては、色が異なるかもしれません。

1 2 3 4 5 橙 緑 黒 赤 黄

レバーを下から見たとき、コネクタが左側に位置するようレバーを取り付けるものと

関連したドキュメント