2016年10月29日土曜日

モニターカバー使っていますか?

意外と存在が知られていないような気がするアイテム。

超安価ながら効果絶大のモニターカバー
皆さんは使っていますか?
後ろから見るとこんな感じ
箱車なら画面の外はどうせ車内の壁なので、黒のカバーで没入感が増します。
フォーミュラでも余計な家具などが視界に入らないので
より集中しやすいような気がします。

デメリットを挙げるとすれば
カバーに囲まれた個室のようになるので熱気がこもります。
人間の体温と、モニタからの熱が馬鹿にならない。
私の場合、真後ろがすぐ壁なので余計にこもりやすくて暑い。

カバーは段ボールに100均のフェルトをガムテで付けるだけ。
カバー1枚あたり、段ボール200円弱、フェルト100円。

固定は100均で手に入る汎用ブラケットを
モニタアームのブラケットと一緒に固定して
できた溝にカバーを引っかけるだけ。

なので取り外しも簡単です。

モニタが揺れても落ちないよう、ボルトの頭で押さえつけています。
この汎用ブラケット、穴が5mm。つまりM6の下穴径と同じなので
タップを通してねじ穴にしてあります。

かかった費用は1000円ちょっと。
お手軽DIYの紹介でした!

2016年10月18日火曜日

CSR Elite Pedals 改造記録

CSREWと一緒に購入したCSR Elite Pedalsですが、例によって改造しています。
当時は吊り下げキットを使っていましたが、今は机の背面に固定して使用中。

ペダルはFANATEC製品の中でも比較的単純な構造なので
素人でも簡単に全バラできますよ!

あ、当然自己責任でよろしくです。


●配線やり直し
全ての元凶。

当時は未発表だったサイドブレーキ用の回路があると情報を得て
基盤から引っ張ってくることに。
(元々ハンコンを買った理由がForza4でシュルシュルドリフトしたかったから)

基盤を取り出すためブレーキアクセルセンサのコネクタを引っこ抜く際
やってしまいました。ブチッと。
(コレ、開封1週間後の話。血の気が引いたのを覚えている)

ハンダで直すも接触が悪く、何故か他のペダルにもノイズが乗る。
原因究明に各ペダルの付け外しを繰り返すので、カプラー化しました。
カプラーはhi-1000.comで購入。バイク用のカプラーなのでちょっとデカい。
(当時は電子工作用コネクタの存在を知らなかった)

未だに若干ノイズがありますが、ギリギリ実用範囲。
ちなみに取り出したサイドブレーキ回路はCS機専用なので
PC専となった今では使っていません。


●ブレーキバイブモーター追加
配線を弄ったついでに、バイブレーション用の配線も取り出しました。
最初はビニールテープでペダルアームに括り付けていましたが
後にブラケットを製作し機械締結に変更。

材料は私が初めて旋盤回したときの練習用アルミ材。
当時中ぐりを練習した穴にモーターがぴったりはまりました。奇跡。
モーターは使わなくなったUSBゲームパッドから略奪。


●バネ変更
私はシューズを履いてプレイする派なので、ペダルはやや重めが好み。
正直実車のアクセルペダルはもっと重くていいと思っています。

DAIスプリングが安くて種類が豊富なので、ここから選ぶことに。

基本諸元は(Elite Pedalsの場合)
内径11mm以上、外形22mm以下、長さ65mm

あとはバネ定数を決めるだけ。

3kgのダンベルをバネの上に乗せて縮み量を測るという
超アナログな方法で純正のばね定数を測った結果、
一番重いクラッチのバネが7.35[N/mm]

FANATECのTuning Kitなるものの中には
30%増のバネが入っているらしい。
単純計算でコレが 7.35*1.3 = 9.6[N/mm] と推測。
実際3割増しでどんな感じかまったく予想つかなかったので
25, 12, 9.6 の3種類を購入。

実際に取り付けて試した結果、
・純正(7.3)と9.6は違いがよくわからない。12で少し重くなったと感じる。
・25は重すぎ。FANATECのペダル構造でヒザ使うって何事w

ということで、最終的には
アクセル:9.6
クラッチ:12
で運用しています。

もう軽いペダルには戻れんねコレ。


●ブレーキスポンジ除去
感圧板に至るシリンダー内にはスポンジ状の部品が入っています。
以前FANATECのBlogで記事になっていた
Brake Performance Kitと同じ役割の部品です。

純正ではこのスポンジが圧縮されることで
多少ふわっとしたブレーキタッチにすると同時に
元の位置に戻すスプリングの役割も担っています。

ある時ブレーキランプが点灯したままになっていることに気づき
原因を調べたらこのスポンジが粉砕されて詰まっていました。

代わりの材料として色々試したのですが
・耐震用のジェル → 柔らかすぎて詰まる
・木材 → 一瞬で粉砕
・鉄芯 → 倍力装置等が一切ない、シンプルなブレーキ構造の某フォーミュラカー

踏み心地は正直どれもイマイチでしたが
鉄芯が一番マシだったのでこれで妥協。

適当な長さの端材がなかったので
足りない分はM6のナットを詰め込みました。

このままではスプリングの役割をするものがないので
純正アクセルのスプリングを短く切って入れてあります。


●角度変更ステー製作(失敗)
現在は机の背面にボルトで固定する形で吊り下げにしているのですが
もう少し角度調整したらどうだろうと
興味本位で作ってみたもの。
が大失敗。
一応角度を選べるようにしたものの
一番浅い角度でもペダルが踏みづらい。
この失敗作はキーボードスタンドになりましたとさ☆

次はクラッチのストローク伸ばしてカックンにしたい。
いっそ買い替えるか。

2016年10月15日土曜日

湾岸マキシ動画の技術解説

The Crewを湾岸マキシ風にプレイする動画つくりました。

https://www.youtube.com/watch?v=7uor2Oxmc6c&t=1s

動画説明文にも記載しましたが
ゲームデータに介入するMODを使用した訳ではありません。

今回はその辺の技術的なお話。

●プログラム
撮影にあたり、作ったプログラムは次の3つ。
①画像認識を用いた速度値取得
②湾岸マキシ風のタイム表示
③ウィンカー表示

各プログラムではDXライブラリを使用しました。
Windowsアプリケーション開発に付き物の
ウィンドウプロシージャ云々、ウィンドウ生成云々の
糞面倒な処理を関数1つでやってくれる便利なライブラリです。

DXライブラリ本家サイトでは初心者向けの解説ページもあり
専門知識ゼロでも、開発環境の導入からプログラム実行まで
超わかりやい解説があります。必見!

①画像認識を用いた速度値取得
後述の距離計算のために速度を取得する必要があります。
そこでThe Crewのメーターを画像としてキャプチャし
OpenCVのテンプレートマッチングを用いて数値として認識しています。

キャプチャについてはコチラが参考になると思います。
ただしThe Crewのメーターは加速度に応じて微妙に動くので
テンプレートマッチングする際の座標には注意が必要です。

マッチング処理の前に、キャプチャしたメーター画像を白黒にして
数字の左上座標を検出してからマッチングさせると精度が上がります。

ちなみにWildRunアプデ前は数字が斜体になっててもっと面倒だった。

取得した値は②のプログラムに送信する必要がありますが
私はプロセス間通信についてはよくわからなかったので(ォィ
①が.txtに値を書き出して②が読み取るという手法を用いました。

アクセス権利のデッドロックを心配しましたが、杞憂でした。

①②③どのプログラムにも言えることですが
DXライブラリは非アクティブウィンドウになると処理が止まってしまうので
SetAlwaysRunFlag(TRUE);
を用いて常に実行させてやる必要があります。

②湾岸マキシ風のタイム表示
通常Windowsアプリケーションはウィンドウを持ち
他のウィンドウの上に透過して表示はできませんが
ウィンドウ自体を取っ払い、透過して表示させることは可能です。
いわゆる「オーバーレイ」というやつ。

DXライブラリを用いてオーバーレイを実現する方法はコチラに詳細があります。
The Crewはボーダーレスモードで起動し
その上に「常に手前に表示」属性を付与した自作アプリを描画しています。

DXライブラリで作ったプログラムを手前固定にするには
SetWindowZOrder(DX_WIN_ZTYPE_TOPMOST);
をDXライブラリ初期化前に記述すればOK

フィニッシュまでの距離や矢印を表示させるタイミングを計るためには
現在位置を知る必要があります。

しかし、残念ながらThe Crewからは座標の類を取得できないので
最も原始的な『距離=速さ×時間』で計算することにしました。

湾岸アプリが60fpsで実行しているとすると
1フレームあたり1/60=0.0166[s]
速度は①のプログラムから取得。
これらをかけ算してあげれば、1フレーム当たりの距離が算出できます。
あとはフレーム毎の距離を足し算してあげれば走行距離を算出できます。

コレ、結局は速度の時間積分やっているだけです。

ただし、この手法では誤差が生じます。
激しい加減速を伴ったときに大きくズレたので
恐らく速度の取得頻度が少ないんだろうと予測。
浮動小数点の加算誤差もあるだろうし。

また雨が降るとものすごいズレます。
あのスピードメーター、ホイールの回転数から算出してるんだろうな。
だから雨で滑っている分がスピードメーターに反映されてないんだろうと推測。

なので、撮影自体は数十テイクやってますorz
ズレてもボツ。雨降ってもボツ。
WildRunアプデ後、雨降りすぎなんだよ(怒)
その中から一番ズレの少ないテイクを動画にしました。

ちなみに画像素材は全てOffice純正の図形を組み合わせて作りました。
私のような絵心のないプログラマにとってOfficeは画像処理ソフトになります。

③ウィンカー表示
これもウィンドウのオーバーレイをしているだけです。
このプログラムは普段The Crewでドライブするときに毎回使っています。
ウィンカーレバーやマイコンとPCの通信などの話題はまた今度のエントリで。

●スマホ動画
ディスプレイとは別にハンドル越しに見えるのは私のスマホです。
The Crewを起動したときに流れるロゴ映像をキャプチャして
諸々の画像を組み合わせた動画をループ再生しているだけです。

動画はPowerPoint2013を使用して制作。
短いくせに凝った映像を作るならパワポ使うと実は楽です。

アニメーション等を設定したら
「ファイル」→「エクスポート」→「ビデオの作成」
で簡単に映像化できます。

●撮影方法
アクションカムを頭に取り付けて撮影しました。
詳細はコチラのエントリで。

2016年10月11日火曜日

CSR Elite Wheel 改造記録

私にとって始めてのハンコンとなったCSREW。
ちょうど為替レートで1$が¥78だった超円高時代に個人輸入。

先日壊れるまで私が施した改造をご紹介。

●モーター&電源交換
購入から3年が過ぎた去年9月、FFBがゴリゴリ言うようになりました。
補償期間もとっくに過ぎてるし...と思い切って分解。
2つあるモーターの片方に異常。手で押さえただけで回転が止まり、
何かがつっかえているのか、自力では再び回転できなくなっていました。

モーターに記載された型番(RS-555PH)と同じものをPartsExpressから輸入。
1個$2.90で予備含め4個購入。送料$26.38で合計$37.98でした。

配線は短いので要注意。コネクタを外しての作業を推奨。
早速組み付けるも、キャリブレーション途中で電源が落ちて無限ループに。
モーターを1つ外してFFBを40%まで落とすと上手くいったので
恐らく電力不足だろうと予想(モーターは同じ型番のハズなんだけどなぁ)。

純正の電源が24V5A(=120W)だったので、単純に計算すると
モーター1個あたり120÷0.4=300Wの消費。2個で600W!!

さすがに600Wの電源は高額だし怖いと思い、
350Wの電源(MEAN WELL製 NES-350-24)を購入。
まさかOSWでもう一度MEAN WELLにお世話になるとは思っていませんでした。

で、この電源でも予想通り電力が足らず、結局FFB60%で運用することに。
それでも交換前よりパワフルになったので満足。

ちなみに組み立ての際のベルトテンションは適当に引っ張るだけで十分でした。


●クイックリリース化
どうせ分解してしまったのだから
ハンドルも交換してみようと思い立ちました。

CSREWの純正はφ30cmですが、もう少し大きくしたくて
φ33cmのD1SPEC(Amazonリンク)を購入。
当然ですがホーンボタンも付属しています。いらないのでポイ。

個人的にはボタンがゴテゴテ付いているより、シンプルなものが好きです。
元々Forza4でAクラスのS15を愛用していたせいかもしれない。

分解すると軸穴はPCD24(定規で測定)×5だったので
MOMO穴に変換する板(鋼、t=1.5mm)を自作。
と言っても鉄板に穴開けただけですが。

クイックリリースはEPMAN製EP-CA0011T(Amazonリンク)。
スプラインの軸だからガタもないだろうと予想し購入。
コレ、当時ググってもロクな画像出てこないし正直不安でした。
予想通りガタは一切なし。OSWのパワーでガタが発生しましたorz
ハンドルとの信号線は最初からコネクタで分離できるようになっていました。
純正ハンドルは接続されていないとキャリブレーションが始まらないため
秋葉原で探し出した12芯のカールコードでつなげておきました。
(お店の人に「12芯欲しがるなんて珍しいね。センサーか何か?」って聞かれて返答に困った記憶)

運よく純正で使われていたコネクタ(ZL2505-6PS)もマルツで発見できました。


●CSREWの最期
日本のiRacer達がOSWを導入し、ブログなんかでチラホラ情報が出始め
自分のもギリギリまで出力上げようと調子乗って弄っていた矢先
FFBが突然抜けてモクモク煙が出ました。
溶けた配線(左)。赤と黒が溶けて合体している。
「またモーターが壊れただけだろう。予備あるし」と軽く考えていましたが
分解すると配線が溶けてショートしていました。
モーターを交換しても復活せず。再起不能を悟りました。

で、OSW購入を決意するに至ったわけです。

2016年10月9日日曜日

1人称動画の撮影

最近動画のアップロードを始めました。


https://www.youtube.com/watch?v=OcyiBObfS2g

頭にカメラを付けて撮影した1人称動画です。
視角は私とほぼ同じ。ミラーをチラチラ見ているのがわかります。

カメラの手ぶれ補正はON。OFFだと振動が酷い。

カメラはソニーのアクションカムHDR-AS200Vを使用。
GoProはちと値段が高かったので、ソニーにしました。

これを自作のヘッドバンドに括り付けて装着。
アルミ板と100均の荷物固定用バンドを使って製作しました。

音はPC出力をスピーカー用とカメラ用に分岐させ
カメラの外部入力に直接入力。
ただ現状だとノイズが酷いです。

傍から見れば変な恰好ですが、キニシナイ。

今後もこんな感じの1人称動画を撮っていく予定です。

2016年10月5日水曜日

「システムの復元」で自作の.exeまで復元される

ようやく日曜プログラマーらしい話題。

先日のWindows Updateが原因なのか、
the crewが起動しなくなりました。

最終的にシステムの復元で直ったのですが
その際にVisual Studio 2013フォルダ内にある
私が作ったプログラムの類いまで復元してやがりました。

具体的には.exeだけロールバックしており
その他プロジェクトファイル等は手付かず。

なので、リビルドして事なきを得ました。

まさかユーザーフォルダ内のファイルも弄られるとは。
勘弁してくださいよマイクロソフトさん。


...という愚痴でした。

2016年10月3日月曜日

the crewでOSWを使う方法

OSWでthe crewプレイする人間は私くらいな気がしますが一応メモ。
Wild Runが発表される遥か昔のツーリングスクショ
デフォルトの状態でOSWを認識はしますが、fpsが異常なまでに下がり
とてもゲームができる状態ではなくなります。原因はFFBの出力情報。

対処は簡単にできます。情報ソースはコチラ

C:/Users/【ユーザー名】/Documents/The Crew の中に
下記内容の ExtraConfig.xml を作成します。

<ExtraConfig
FFB_Factor="1.5f"
FFB_LoadFactor="1.0f"
FFB_LoadPower="1.5f"
FFB_LatFactor="1.0f"
FFB_SlipAngleFactor="2.0f"
FFB_CamberFactor="0.1f"
FFB_CamberOffset="2.5f"
FFB_DamperFactor="0.2f"
FFB_DamperMaxRoll="1.0f"
FFB_DamperMaxRollVal="0.1f"
FFB_DamperMaxSlipAngle="0.25f"
FFB_WaitRate="4"
FFB_SpringNoControl="0.25f"
/>


この内容で保存してthe crewを起動すればOK

重要なのはFFB_WaitRate="4"です。
the crewでの物理演算は300Hzだそうで、WaitRateが1の場合
FFBのリフレッシュレートも300Hzになるそうです。
WaitRateを2,...にするとFFBリフレッシュレートは150,...になるとのこと。

で、OSW等の高リフレッシュレートに対応していないハンコンは
WaitRateの値を大きくし、FFBリフレッシュレートを低くする必要があります。

デフォルトでは1のようですが、私の場合は4で問題なくプレイできています。
※最適値はPC環境により異なるかもしれません。


蛇足:
the crewでのOSWの使い心地は...正直よくわかりません。
なぜならドライブ目的でしかプレイしないので。
(私の要求レベルが低いせいかもですが)不満のないFFBです。

GTX970のフルHD3画面、グラフィック設定は全て低(ジオメトリのみ高)で
なんとか30fpsを維持できています。60fpsは無理です。

nVidiaのベゼル補正は有効ですが、the crewはDiRT RallyやProject CARS同様
iRacingやAssetto Corsaでは可能なディスプレイごとの描画ができないので
画面端になるほど変に間延びしており、違和感があります。

SMP対応してくれないかなぁ。そしたらGTX1080買います。

2016年10月1日土曜日

OSW購入ログ - 開封レビュー

OSWの部品リストは細々としているので、注文当初は
「実は他にも必要な部品があるのでは…」と不安でした。

が、そんなことはなかった!

実際に必要になったのはUSBケーブルと電源ケーブルだけでした。
どちらも家にあったので問題なし。

以下、付属部品の写真とレビューです。

●MiGE motor package ( MiGE 130ST-M15015 30Nm 10000ppr(40000cpr) )
ケーブル類は既に端子が接続された状態でした。
自分で加工したりハンダしたりは必要ありません。そのまま使えます。

軸変換アダプタの灰色の部品2つと、MiGEの軸は
未塗装なので、下手にベタベタ触るとすぐ錆びると思います。

M5のボルトはステアリング(別途用意)と軸変換アダプタの締結に使います。
私の場合はクイックリリースとボスを合わせたため(詳しくはコチラ)
写真のボルトはねじ部の長さが足りず使っていません。
(手持ちのボルトで代用しました)

袋ナットが1つ足りていませんでしたが(恐らく先方のミス)
どうせ全部は使わないので問題なし。


●SimuCUBE
全ての部品がラベルのない箱に入っていたので
どの部品がどの商品に付属していることになっているかは不明です。

写真2枚目、末端が未処理の配線が数本ありますが、
これらはワイヤーストリッパーで剥く必要があります(カッターナイフでも可)。
剥いた配線は写真左上、ピンクのゴムで覆われた圧着端子につけます。
本来は専用の工具が必要ですが、ペンチで力任せに潰しても大丈夫です。
一応ハンダ流しておこうかと思いましたが
ゴムのカバーが溶けそうなので止めました。

写真のボルト類は全てSimuCUBEに使用します。

必要な六角レンチは3、2.5、2の3種類です。
これらの小さな六角レンチは100均でも手に入ります。