コンテンツにスキップ
DIYハンコンをPicossci CANドライバーボードで作る

DIYハンコンをPicossci CANドライバーボードで作る

概要

ドライビングやレース系シミュレータには「Force Feed Back」通称FFBと呼ばれるゲーム中に発生する反力をステアリングに反映させる機能を持つものがあります。

近年、この業界はダイレクトドライブモーターの採用が進んでおり、高い耐久性や実車に近しい反力の再現度を高めた製品が主流になりつつあります。

そこで、ダイレクトドライブモーター「DDT M15」を利用してFFB機能を持ったハンドル型コントローラーを自作してみました。


必要なもの

パーツ類

https://www.switch-science.com/products/9279
Picossci MCP25625T搭載 CANドライバーボード(RP2040搭載)
thumbnail
CAN通信コントローラー/ドライバー(MCP25625T)を搭載した RP2040 マイコンボード(Picossci)です。CAN通信のデバイスや通信モニター、USB ⇔ CAN 変換基板などを作れます。
https://www.switch-science.com/products/9279
以下のいずれかをひとつ。
https://www.switch-science.com/products/9218
https://www.switch-science.com/products/9219
https://www.switch-science.com/products/8248
DDT M1502D_233 左タイヤ付きダイレクトドライブモーター 24V/9.6Nm/115rpm
thumbnail
高トルク、静音、高精度が特徴のタイヤ付きの永久磁石同期モーターです。サーボモーター、エンコーダ、ブラシレスモーターとして使用することができます。
https://www.switch-science.com/products/9218
DDT M1502D_233 右タイヤ付きダイレクトドライブモーター 24V/9.6Nm/115rpm
thumbnail
高トルク、静音、高精度が特徴のタイヤ付きの永久磁石同期モーターです。サーボモーター、エンコーダ、ブラシレスモーターとして使用することができます。
https://www.switch-science.com/products/9219
DDT M1502D_211 タイヤ付きダイレクトドライブモーター 24V/9.6Nm/115rpm--在庫限り
thumbnail
高トルク、静音、高精度が特徴のタイヤ付きの永久磁石同期モーターです。サーボモーター、エンコーダ、ブラシレスモーターとして使用することができます。
https://www.switch-science.com/products/8248

https://www.amazon.co.jp/gp/product/B09PRD74V4

DROK スイッチング電源 24VDC20A 480W
thumbnail
AC 110/220V→DC 0-24V 0-20A 480W 電圧電流調整可能 安定化電源
https://www.amazon.co.jp/gp/product/B09PRD74V4

筐体関連

ステアリング 35φ 車用 カー ハンドル ディープコーン 直径350mm
thumbnail
ブラックスポーク スポーツタイプ 軽量アルミニウム ライチ柄 ステアリングホイール PVC防錆 車用 ホーンボタン付き/黒
https://www.amazon.co.jp/gp/product/B09DYL19KQ

ハンドル固定プレートとモーターを固定するネジはモーターに付属のものを利用。
ハンドルとハンドル固定プレートを固定するボルトはハンドルに付属のものを利用。

結線

電源ユニット

ラベル 接続先
+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を使ってビルドします。

ソースコード

3Dプリントモデルの公開URL(GitHub)

ファームウェアのソースコード公開URL(GitHub)

ビルド

ソースのクローン

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に繋ぐ

状況によっては「ガツッ」とか言うかもしれませんが、センターにて落ち着くのを確認しましょう。

以下を開いて、ステアリング操作が反映されることを確認しましょう。

Webゲームコントローラーテスト

トラブルシュート

  • ステアリングが軽いままなにも感じないもしくはストンと軽くなった
    • 電源が有効じゃないまたは、コントローラがエラーで動作無効になっている
    • 電源がカレントリミットで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で展示されました
前の記事 Sun's Around, Muscles Abound!