Skip to content
実物のマスコンやブレーキの接点を活用してGIPIに情報を送信するためのスケッチ
C++ C
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
MCBTF_forGIPI
.gitattributes
.gitignore
LICENSE
MCBTF_forGIPI.sln
README.md

README.md

MCBTF_forGIPI

実物のマスコンやブレーキの接点を活用してGIPIに情報を送信するためのスケッチ

あくまでサンプルスケッチです。

将来的に、GUIを用いて各種設定を行えるようにするソフトウェアを開発し、それを用いて楽にこれ同様のスケッチを作成することができるようにする予定です。

設定解説

名称 解説
12 READMODE pinModeに設定する値を定義します。
外部プルダウン抵抗を使用する場合は、INPUTを設定します。
内部プルアップ抵抗を使用する場合は、INPUT_PULLUPを設定します。
24 MaxP 力行段数を設定します。P5まである場合、「5」を設定します。
25 MaxB 制動段数を設定します。B8まである場合、非常ブレーキ段を含めて「9」を設定します。
27 PPinNum 力行ハンドルにおいて、接点状態の組み合わせからハンドル位置を指定する場合、接点につないだピンの個数をここに指定します。
28 PPin 力行ハンドルの接点をつないだ端子を指定します。PPinNumで指定した個数だけ、設定してください。
29 PHL 力行ハンドルの接点状態とハンドル位置の紐づけを行います。
接点が接触していればHを、離れていればLを、PPinで指定したピンの順に、P0から指定してください。
38 BPinNum 制動ハンドルにおいて、接点状態の組み合わせからハンドル位置を指定する場合、接点につないだピンの個数をここに指定します。
39 BPin 制動ハンドルの接点をつないだ端子を指定します。BPinNumで指定した個数だけ、設定してください。
40 BHL 制動ハンドルの接点状態とハンドル位置の紐づけを行います。
接点が接触していればHを、離れていればLを、BPinで指定したピンの順に、B0から指定してください。
47 RPinNum 逆転ハンドルにおいて、接点状態の組み合わせからハンドル位置を指定する場合、接点につないだピンの個数をここに指定します。
48 RPin 逆転ハンドルの接点をつないだ端子を指定します。PPinNumで指定した個数だけ、設定してください。
49 RHL 逆転ハンドルの接点状態とハンドル位置の紐づけを行います。
接点が接触していればHを、離れていればLを、RPinで指定したピンの順に、前, 中, 後の順で指定してください。
56 TSMCMode TSマスコン互換のコマンドを送出するかどうかを設定します。
trueでTSMC互換コマンドを、falseでGIPI規格コマンドを送出します。
58 BVRPin 制動ハンドル位置を、可変抵抗を用いて検出する場合、可変抵抗を接続したピンをここに指定します。
不要時は-1を設定してください。
59 PVRPin 力行ハンドル位置を、可変抵抗を用いて検出する場合、可変抵抗を接続したピンをここに指定します。
不要時は-1を設定してください。
62 BVRNum analogRead値と制動ハンドル位置の紐づけを行う。
B0から順に、数値が大きくなるように設定する。

設定は以上です。

実装解説

グローバル変数

名称 解説
67 BVRSiki 制動ハンドル用可変抵抗の、位置判定の閾値を格納します。
86~88行目にて設定されます。
123 OldPi 前回周回時の力行ハンドル位置を記録します。
124 OldBi 前回周回時の制動ハンドル位置を記録します。
125 OldRi 前回周回時の逆転ハンドル位置を記録します。

関数一覧

名称 解説
68-121 setup 起動時に1回だけ実行される。初期設定をここで行う。
126-210 loop setup完了後、無限に実行される。
212-253 brcom 制動ハンドル位置設定コマンドを送出します。
254-283 nocom 力行ハンドル位置設定コマンドを送出します。
285-311 aveB 可変抵抗を用いた制動ハンドルの位置検出を行う。

void setup(void)

Now writing...

void loop(void)

Now writing...

void brcom(int command)

Now writing...

void nocom(int command)

Now writing...

void aveB(float num)

Now writing...

処理の流れ

Now printing...

You can’t perform that action at this time.