見出し画像

シムレース用スイッチボックス作成 Vol.1

試行錯誤でスイッチボックスを作って形になってきたので、シムレーサーの皆さんのお役に立てればとまとめてみました。

目的

Arduino(マイコンボード)でキーボード、ジョイスティックをエミュレートするプログラムを動かしてシムレースで使うボタンボックスを作成します。

どのような仕組みなのか

ここではPIN2にスイッチをつないで、スイッチが押されたときにジョイパットのボタン2が押されたという信号をPCに送るというプログラムが設定されていることとして説明します。

1. ArduinoのPIN2とGNDにスイッチをつなぐ

画像3

2. プログラムを登録
PIN2がLOW(GNDと接した状態)になったらジョイスティックのボタン2が押されたことにするプログラムを登録。

3. プログラムでPINの状態を監視
PINがGNDと接していないときの状態はHIGHと言います。
HIGHはスイッチが押されていないのでなにもしない。

画像5

4. スイッチを押す
PINの状態がLOWになる。
LOWになったということはスイッチが押されたということになる。

画像4

4. PCにジョイスティックのボタンが押されたと送信

画像5


という感じです。

ジョイスティックでなくキーボードが押されたというプログラムにすれば「Sorry!」などチャット文言を送るショートカットボタンが作れます。

Arduinoの選定

Arduinoにはいろいろなバージョンや互換ボードがありますがキーボード、ジョイパットとして使用するにはATmega32U4(というチップ)を使用しているものにする必要があるので今回はArduino Leonardoの互換ボードのLeonardo Pro Microを使用します。

Leonardo Pro MicroにはデジタルIOとアナログIOが合わせて18ピンあり、
この18ピンにスイッチを接続していきます。
(アナログIOはデジタルIOとして使用しすべてデジタルIOとして使います)

単純なのは各ピンにスイッチを接続することなのですが、そうなると最大で18個のボタンしか接続することができません。

ロータリエンコーダをぐるぐる回してABS、TC、MAPなどなどを調整したいとなると右回り、左回り、プッシュの動作をするロータリスイッチをつなぐと1個で3ピン使用するで例えばロータリエンコーダ4個つけると12ピン使用することになり、残り6個しかボタンを付けられなくなります。

そこで単純なボタンに関してはマトリクス配線をすることで、例えば10ピン使用した場合5x5=25個のスイッチを繋ぐことが可能になります。
(マトリクス配線については後程・・・)

ということで、今回は

・10ピン使用してスイッチを25個
・8ピン使用してロータリエンコーダを4個
 (プッシュはスイッチの方につなぐ)

つなぐことのできるボタンボックスを作ります。
(なかなか豪華なやつになりそう)

続きはこちら


この記事が気に入ったらサポートをしてみませんか?