G25のペダルをArduinoにつなぐ
G25のペダルだけ入手したので独立させてPCにつなぎます.
G25のペダルにはD-sub9pinのオスがコネクタとしてついているのでD-sub9pinのメスコネクタを購入して線をArduinoまで引っ張って良しなにします.
https://github.com/functionreturnfunction/G27_Pedals_and_Shifter/
こちらにG27での利用例が一式上がっているのでこちらを参考にしました.
ペダルが5500円 ProMicroが400円しないくらい,
ジャンパワイヤとコネクタも安いので6500円くらいになりました.
使ったもの
- ブレッドボード x1
- Arduino Pro Micro互換機 x1
- Dsub 9pin メスコネクタ x1
- ジャンパワイヤ オス-オス x10
- 熱収縮チューブ
ハード側
7セグは外すのが面倒でつけっぱなしなだけで特に意味はありません.
— スカイ (@skyblue3350) September 29, 2018
事前準備
ジャンパワイヤを半分に切ってケーブルの被膜を向いておきます.
Dsub側に予備ハンダをつけてからケーブルをつけます.
使うピンは6本しかないので最低限のピンだけでも大丈夫です.下記参照
熱収縮チューブを収縮させて終わり.
配線
以下の表に従って配線します.
Dsub側 pin番号 | Arduino側 pin番号 | 用途 |
---|---|---|
1 | +5V(VCC) | +5V |
2 | A0 | アクセル |
3 | A1 | ブレーキ |
4 | A2 | クラッチ |
6 | GND | GND |
9 | GND | GND |
ソフト側
事前準備
機器によって多少差があるので予めそれぞれのペダルの値の範囲を確認します.
1void setup(){
2 Serial.begin(9600);
3}
4
5void loop(){
6 Serial.println(analogRead(A0)); //アクセル
7}
アクセルから順に値の範囲を確認します.
自分の場合は
アクセル 51-900
ブレーキ 40-890
クラッチ 40-910
くらいでした.
コーディング
前回の記事を参考にArduinoJoystickLibraryを使います.
事前に調べた値をRangeとして設定して常時値を流し続けるだけです.
1#include <Joystick.h>
2
3Joystick_ Joystick = Joystick_(
4 0x03, // reportid
5 JOYSTICK_TYPE_GAMEPAD, // type
6 0, // button count
7 0, // hat switch count
8 false, // x axis enable
9 false, // y axis enable
10 false, // z axis enable
11 false, // right x axis enable
12 false, // right y axis enable
13 false, // right z axis enable
14 false, // rudder enable
15 true, // throttle enable
16 true, // accelerator enable
17 true, // brake enable
18 false // steering enable
19);
20
21void setup(){
22 Joystick.begin();
23 Joystick.setAcceleratorRange(50, 900);
24 Joystick.setBrakeRange(40, 890);
25 Joystick.setThrottleRange(40, 910);
26}
27
28void loop(){
29 Joystick.setAccelerator(analogRead(A0))
30 Joystick.setBrake(analogRead(A1))
31 Joystick.setThrottle(analogRead(A2))
32}
こんな感じで値が取れるので確認しておかしなところがないか確認します.
ゲーム側で設定値の反転があることが多いので回避できること多いですが,
いくつかゲームで設定してみて使った感じアクセルとブレーキはRange逆の方が良さそうですね.
頭空っぽでも一瞬でできるし最高過ぎた pic.twitter.com/WvHkNyMn5S
— スカイ (@skyblue3350) September 29, 2018
おまけ
雰囲気で書いたFritzingです
雰囲気過ぎる pic.twitter.com/Orx52OYScC
— スカイ (@skyblue3350) October 3, 2018