Arduinoとロードセルで自作する、PC用USB高精度ハンドブレーキの構築術
市販のシムレーシング用ハンドブレーキは高価な上、その多くはボタン式か、高精度なアナログタイプはさらに手が出しにくい。しかし、諦める必要はない。わずかな電子部品とDIY精神があれば、プロレベルのフィーリングを持つロードセル式USBハンドブレーキを自作し、圧倒的な操作性を手に入れることができる。この技術は、あなたのラップタイムを確実に向上させるだろう。
必要な材料を揃えろ!低コストで高性能を実現する部品リスト
このプロジェクト成功の鍵は、適切な部品選びにある。無駄を省き、高性能を実現するための厳選されたリストだ。
- Arduino Pro Micro (またはArduino Leonardo互換ボード): これがあなたのハンドブレーキの脳となる。PCからは汎用USBジョイスティックとして認識される。約500円〜1000円。
- ロードセル (5kg〜10kg推奨): ハンドブレーキを引く「力」を正確に測定するセンサー。感度と耐久性を考慮し、適切な荷重範囲を選べ。約500円〜1500円。
- HX711 ロードセルアンプモジュール: ロードセルからの微弱な電気信号をArduinoが読み取れるように増幅・デジタル変換する。非常に重要な部品だ。約300円〜800円。
- ジャンパーワイヤー各種: 部品間の接続に必須。オス-メス、オス-オスなどを用意しておくと良い。
- USB micro-Bケーブル: Arduino Pro MicroとPCを接続する。データ転送と給電を兼ねる。
- 筐体・レバー機構の材料:
- 3Dプリンター用フィラメント (PLA, PETG, ABSなど): レバー、ベース、センサーマウントなどの部品を自作する場合。堅牢性と精度を求めるならPETGやABSが望ましい。
- アルミ角パイプ、アクリル板、木材など: 堅牢なフレームやベースを構築するための材料。
- M3/M4ボルト・ナット、ワッシャー各種: 各部品を確実に固定するために必要。長さ違いで複数用意すること。
- はんだごて、はんだ、熱収縮チューブ: 確実な電気的接続と絶縁のために。
- PC (Windows推奨): Arduino IDEでの開発と、完成したハンドブレーキの動作確認・ゲームでの設定用。
回路を組む!ロードセルとArduinoの確実な接続方法
配線は正確に行う必要がある。ここでミスがあると、正しい値が読み取れない。
- HX711とArduinoの接続:
- HX711のVCCをArduinoの5Vピンに接続。
- HX711のGNDをArduinoのGNDピンに接続。
- HX711のDT (Data)ピンをArduinoのデジタルピン(例: D2)に接続。
- HX711のSCK (Clock)ピンをArduinoのデジタルピン(例: D3)に接続。
- ロードセルとHX711の接続:
- ロードセルは通常4本の配線を持つ(Red: Excitation+, Black: Excitation-, White: Signal-, Green: Signal+)。
- HX711のE+にロードセルのRedを接続。
- HX711のE-にロードセルのBlackを接続。
- HX711のA-にロードセルのWhiteを接続。
- HX711のA+にロードセルのGreenを接続。
注意: ロードセルの配線の色と機能はメーカーによって異なる場合がある。必ずロードセルのデータシートを確認し、正しいピンアサインで接続すること。
Arduinoに魂を吹き込む!ファームウェアの書き込みとキャリブレーション
ArduinoをUSBハンドブレーキに変身させるためのソフトウェア設定だ。
- Arduino IDEの準備:
- 最新版のArduino IDEをダウンロードし、インストールする。
- 「ツール」→「ボード」→「ボードマネージャー」から「SparkFun AVR Boards」を検索・インストールする。
- 「ツール」→「ボード」で「SparkFun Pro Micro」を選択する(または使用している互換ボード)。
- 必要なライブラリのインストール:
- 「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理」を開く。
- 「HX711 by Bogde」を検索し、インストールする (ロードセルからの値読み取り用)。
- 「ArduinoJoystickLibrary by MHeironimus」を検索し、インストールする (ArduinoをUSBジョイスティックとして機能させるため)。
- スケッチ(コード)の作成と書き込み:
*
HX711ライブラリのサンプルコードを参考に、ロードセルからの生データを読み取る部分を実装する。
*
Joystickライブラリを使用し、読み取ったロードセル値を0〜1023(または0〜255、0〜65535など、ゲームで使いやすい範囲)のアナログ軸の値にマッピングする。
*
キャリブレーションは最重要だ。以下の手順で正確な値を設定する。- ハンドブレーキに何も力を加えていない状態で、ロードセルの値を読み取り、これを「無負荷時の基準値(OFFSET)」とする。
- 次に、既知の重さ(例えば1kgの重り)をレバーに加えたり、最大の力で引いた際のロードセル値を記録する。この値から「最大負荷時の値(SCALE)」を決定し、コードに反映させる。
hx711.set_scale(calibration_factor);やhx711.set_offset(offset_value);のような関数でキャリブレーション値を設定する。これらの値は試行錯誤で調整し、リニアな入力になるようにする。
*
作成したスケッチをArduino Pro Microに書き込む。
物理的な構造を構築する!3Dプリントと組み立て
電子回路が完成したら、いよいよ物理的な構造だ。堅牢さと操作性を両立させる。
- 設計のヒント:
- レバーは、ロードセルに圧縮力または引張力のどちらをかけるかで、設計が大きく変わる。ロードセルの動作原理とレバーの物理的な配置をよく考えること。
- てこの原理を最大限に活用し、少ない力で大きな変化を生むレバー比を設計する。
- ロードセルが直接レバーからの衝撃を受けないよう、適切なマウントと緩衝材(ゴムなど)を設ける。
- すべての電子部品が筐体内に収まり、配線が絡まないようにスペースを確保する。
- コックピットへの固定方法(デスククランプ、ボルト固定など)も考慮したベースデザインにする。
- 既存の設計を活用せよ!:
*
一から設計するのが難しい場合は、既存のオープンソースデザインを参考にしよう。
多くのシムレーサーがその知恵を共有している。
*
「Thingiverse: Sim Racing Load Cell Handbrake」や「Printables: Sim Racing Load Cell Handbrake」などで検索し、STLファイルをダウンロードして3Dプリントする。 - 組み立て:
- 3Dプリントしたパーツや加工したフレームを組み合わせ、レバー機構を構築する。
- ロードセルを所定の位置にしっかりと固定し、レバーからの力が確実に伝わるようにする。
- Arduino Pro MicroとHX711モジュールを筐体内に配置し、配線が物理的な干渉を受けないよう結束バンドなどで固定する。
- すべてのボルトとナットを確実に締め付け、操作時にガタつきや異音がないことを確認する。
最終調整とゲームでの設定
完成したハンドブレーキをPCに接続し、最後の仕上げを行う。
- PCでの認識確認:
- 完成したハンドブレーキをPCのUSBポートに接続する。
- Windowsの「ゲームコントローラーの設定」(「joy.cpl」で検索)を開き、新しいジョイスティックデバイスが認識されていることを確認する。
- ハンドブレーキを操作し、アナログ軸が0から最大値までリニアに変化するかどうかをテストする。
- ゲーム内での設定:
- 各シムレーシングゲームのコントローラー設定画面で、ハンドブレーキとして認識されたアナログ軸を割り当てる。
- ゲーム内のデッドゾーン、感度、ガンマカーブなどの設定を調整し、あなたのドライビングスタイルに最適なフィーリングを見つける。
これで、あなたは市販品に劣らない、いやそれ以上の操作感を持つロードセル式USBハンドブレーキを手に入れたはずだ。存分にその性能をサーキットで解放し、ライバルに差をつけろ!
