2012年4月10日

Arduino on iRacing

iRacing のテレメトリ情報で Arduino を動かしていろいろ遊ぼうという新シリーズ第1弾!

僕はプログラミングの知識もハードウェア制御の知識もほとんどありません!
そこから始めるよ!間違いや勘違いが多々あると思うよ!



目的
・iRacingのリアルタイムテレメトリを参照して何か動くものを作る。

手段
・ソフトウェア開発環境: 初心者向けらしい Microsoft Visual Basic 2010 Express でいいのかな。無償。太っ腹。
・ハードウェア: 定番らしく情報も多い Arduino UNO R3 にしてみる。かわいい。


いまのところ調べてみたこと
iRacing SDK スレッドで公開されている irsdk 1.02.zip の中の irsdk_defines.h を理解できないまま読んでみた。
iRacingのテレメトリ情報のうちリアルタイムな部分は MemoryMappedFile という、C#かVBで使える.NETな機能を使って参照できる状態にあるらしい。どれかのメソッド?を使うとデータが拾える、のはずだ。たぶん。irsdk 1_0 data vars.csvも拾っておく。



とりあえずここまで。すべてが初めてなので何がなんだかさっぱりわからん。
目的のための手段が困難すぎて困った。
VBからArduinoとシリアル通信してLEDピカピカはできたので、あとはiRacingテレメトリ情報をVBで拾えればなんでもできそうなのに、そこが理解できない。
サンプルソース無いかなぁ。どなたかたすけて!


アイデア
・ギアがちゃんと変わってるか判定して、シム側でギアが入らないとレバーが奥まで倒れないFFBシフター。
・アクセルをちゃんと100%まで踏めてるか緑色LEDで表示するリアルタイムペダルチェッカー。人によっては便利。
・フロントウインドウに吸盤でぶらさげたお守りを小型サーボで傾け、視界の片隅でGを体感するバーチャルGシミュレーター。物理演算でGが消えたあともゆらゆらする。例えるならばDiRTシリーズのアレ。
・後ろの車との距離に応じてLEDが輝度を増し、近くにくると高速点滅するバーチャルSUPER GTパッシングヘッドライト。
・上下Gを音声情報に変換して、FunSonicやButtKickerを動作させる路面凸凹シミュレーター。Forzaのような路面フィードバック体験。
・レース中の各種フラッグをフルカラーLCDかマトリックスLEDに全面表示して、F1サーキットのストリートコースにあるような電光掲示板風フラッグ。
・残り周回数やタイムをホームストレートのピットロード付近でだけグラフィック液晶に表示するバーチャルサインボード
・まだまだあるよ!

アイデアはたくさんあるけど、システム的に実現可能かどうかはともかく、速さに繋がらないものばっかりだね。
あ、繋がったらチートか。

2 コメント:

T2R さんのコメント...

フォーラムで公開されているラッパーを利用すると楽できます。付属のサンプル見れば、わかると思います。iRTVOがオープンソースなので、ソースコード眺めると参考になるはず。(C#のどちらかのラッパーを使ってたはず)

VB
http://members.iracing.com/jforum/posts/list/1464655.page

C#
http://members.iracing.com/jforum/posts/list/1474031.page
http://members.iracing.com/jforum/posts/list/1826390.page

一応公式SDKのフォルダ内にもC#のサンプルコードあります。VBとさほど変わらないので見てみて下さい。こだわり無ければC#の方がサンプルコード見つけやすいかも。

がんばってください :)

uk さんのコメント...

あたたかいお言葉ありがとうございます。
VBに拘りはなく、学生時代Cを齧ったせいでVBの文法に違和感があったので、C#でいってみます。
まずソースを読むぞー。

コメントを投稿