DIYハンコンをPicossci CANドライバーボードで作る
概要
ドライビングやレース系シミュレータには「Force Feed Back」通称FFBと呼ばれるゲーム中に発生する反力をステアリングに反映させる機能を持つものがあります。
近年、この業界はダイレクトドライブモーターの採用が進んでおり、高い耐久性や実車に近しい反力の再現度を高めた製品が主流になりつつあります。
必要なもの
以下のいずれかをひとつ。
https://www.switch-science.com/products/8248
DDT M1502D_233 左タイヤ付きダイレクトドライブモーター 24V/9.6Nm/115rpm
DDT M1502D_233 右タイヤ付きダイレクトドライブモーター 24V/9.6Nm/115rpm
DDT M1502D_211 タイヤ付きダイレクトドライブモーター 24V/9.6Nm/115rpm--在庫限り
https://www.amazon.co.jp/gp/product/B09PRD74V4
DROK スイッチング電源 24VDC20A 480W
筐体関連
ステアリング 35φ 車用 カー ハンドル ディープコーン 直径350mm
- ハンドル固定プレート(3Dプリント)
- ハンドルとハンドル固定プレートを留めるワッシャとナット(M4 x 8セット)
- モーター固定アングル(3Dプリント、耐熱60度程度が必要でABS推奨)
- 固定用の板(450x250x15mmの木材など)
- 板と電源を固定するネジ(M3-20mm x 4本)
- 板とモーター固定アングルを固定するボルト&ナット(M5-30mm x 4本)
- 板を机に固定するためのクランプ(50mm x 2本)
ハンドル固定プレートとモーターを固定するネジはモーターに付属のものを利用。
ハンドルとハンドル固定プレートを固定するボルトはハンドルに付属のものを利用。
結線
電源ユニット
ラベル | 接続先 |
---|---|
+V | モーター(赤) |
-V | モーター(黒) |
アース | ACコンセント |
N | ACコンセント |
L | ACコンセント |
モーター(4芯ケーブル)
番号 | 役割 | 色 | 接続先 |
---|---|---|---|
1 | VCC(24V) | 赤 | 電源ユニット |
2 | GND | 黒 | 電源ユニット |
3 | CAN High | 黄 | CANボード(H) |
4 | CAN Low | 白 | CANボード(L) |
配線図
ファームウェア開発環境
- TinyGo(dev版 または version 0.27以降)
- Go(1.19以降)
TinyGoのdev版インストールは少し手間がかかるので割愛します。
ここではdockerを使ってビルドします。
ソースコード
ビルド
ソースのクローン
git clone https://github.com/SWITCHSCIENCE/picossci-ffb-wheel cd
picossci-ffb-wheel
make build
書き込み
「BOOT SEL」ボタンを押しながらpicossci-canボードをPCに繋ぎます。
「RPI-RP2」という名称のドライブが見えたらそこにbuildフォルダにある「diy-ffb-wheel.uf2」をドラッグ&ドロップします。
組み立て例
動作テスト
- 電源が24V出力になるよう調整、カレントリミッタはMAX寄り(最大から少し戻す程度)
- 電源をコンセントに繋いだ状態でPICOのUSBをPCに繋ぐ
状況によっては「ガツッ」とか言うかもしれませんが、センターにて落ち着くのを確認しましょう。
以下を開いて、ステアリング操作が反映されることを確認しましょう。
トラブルシュート
- ステアリングが軽いままなにも感じないもしくはストンと軽くなった
- 電源が有効じゃないまたは、コントローラがエラーで動作無効になっている
- 電源がカレントリミットでOFFになっていることも。カレントリミットを調整してPicoをリブートしてみよう。
- ステアリングが重いまま
- 電源は有効だけど、モーターへのコマンドが効いていない
- CAN通信周りの結線を確認しよう
- Web確認で「gamepad: Pico (Vendor: 2e8a Product: 000a)」が表示されない
- USBデバイスの認識ができていない?
- デバイスマネージャにて非表示のデバイスを表示、Picoを抜いた状態でグレーのデバイス群をアンインストール
- 再度Picoを繋いでみる
動作確認タイトル
確認環境はWindows11(version 22H2)です。
(PS4/5では正式ライセンス品でないと使えません。)
動作良好
- DiRT Rally
- DiRT Rally 2.0
- Assetto Corsa
- Euro Track Simulator 2
- WRC 8 / 9 / 10 / Generations
- Kart Craft
- V-Rally 4
- GRID Legends
認識されない
- Assetto Corsa Competizione
- RaceRoom
- Automobilista 2
- Speed Dreams 2.2
- rFactor2
- Art of Rally
- Rush Rally 3
未検証
- iRacing
- GRID Autosport
- F1 Series
- Forza Motorsport / Horizon Series
- Need for Speed Series
- その他
補足
- 車ゲームを楽しむには追加でペダル類やシフト、サイドブレーキなどを揃えましょう。
- 安上りな方法は中古ないしエントリモデルのハンドル型コントローラーを入手することです。
- jsのステート自体はあと4軸、ボタン16bitsが空いているのでもちろん、このPicoにボタン類やペダル類をつなぎこむことも可能です。
- 一部のタイトルでは複数のコントローラーデバイスを同時に使えない場合がありますがSteam入力を無効設定にすることでできたという情報があります(未確認)。
- センターのずれはソースコードのここを調整してください。
感想
- 市場にある似たスペックのDD型ハンコンの最安値と同レベルの価格で自作できました。
- ハンドル周辺に操作ボタン類を設置するのは難しいですが、別途Bluetooth型のゲームパッドがあれば困らないと思います。
- シンプルなつくりのおかげでハンドルに関して数十時間稼働させたり展示したりしても故障知らずです。
発展案
- パドルシフトをBluetoothデバイスで作るのはどうだろうか。
- ハードコードしているセンター調整、センタリングフォース、ロックトゥロック幅を液晶+操作パネルで調整可能になるとなおよさそう。
- FFBプロトコルの未実装部分などを埋めることで対応タイトルを増やせるかもしれません。
関連記事
高トルクモーターDDT-M15の使い方MakerFaireTokyoで展示されました