BVEワンコインマスコンをつくる(3)

スポンサーリンク

みなさんこんにちは。とりあえず前回でワンコインマスコンの記事は終わろうと思っていましたが、なんか読み返してみるとやっぱりちょっと無駄なことが多くてわかりにくいような気がするので、要点だけをまとめて、簡単にワンコインマスコンを作れるように記事を作り直すことにしました。この記事を読むだけでたぶんワンコインマスコンが作れます。たぶん。たぶん。

2017年07月17日一部修正(主にソフトウェアインストールに関するところ)

2017年08月22日ファイル差し替え(スケッチのエラー修正)

2017年10月17日一部修正(ボタンの最大個数)・2ハンドルに対応した旨の追記

2018年08月09日一部修正(スケッチ公開一時停止告知)


ここで公開しているOne_Coin_M@STERですが、1軸マスコン・2軸マスコンに両対応したversion2をリリースしました!詳細はこちらをご確認ください。

 

早速作業に取り掛かります。なお、途中でファイルをダウンロードする場合があります。その際のパスワードは「0000」(半角数字)となります。パスワードを入力後、エンターキーを押してください。

準備するもの

  • パソコン:ないとBVEができませんね。
  • USB-A対ミニBケーブル:マイクロUSB-Bケーブルは使えません。詳細はこちら(Wikipediaへ)
  • Arduino NANO:互換品をAmazonで330円で購入できます。詳細は後述
  • 可変抵抗(10kΩ程度):東京 秋葉原や、大阪 日本橋にあるような電子部品販売店で購入できます。コーナンなどのホームセンターでも取り扱っているかもしれません。秋月電機通商で1個40円で販売されています。今回は2つ使います。
  • スイッチ:スイッチであれば何でも構いませんが、今回は1個10円と安いタクトスイッチを使用します。4個使用します。
  • はんだごて&はんだ:ホームセンターで合計1500円程度で購入できます。なければ購入しておくといいでしょう。なくても何とかなる場合もあります。
  • 導線:エナメル線でも何でも、電気を通しさえすれば構いません。ただ、太すぎると扱いづらいので注意してください。
  • :四角いペットボトルでも何でも構いませんが、ある程度強度のあるものにしましょう。ただし、加工性に難があるものはNGです。
  • :マスコンハンドルとレバーサーハンドルに使用します。
  • やる気:なければつくれません。用意できなければ作るのはあきらめたほうがいいです。

こんなもんです。

Arduino NANOとは

Arduino NANOは、公式ページによると以下のようになっています。

The Arduino Nano is a small, complete, and breadboard-friendly board based on the ATmega328 (Arduino Nano 3.x). It has more or less the same functionality of the Arduino Duemilanove, but in a different package. It lacks only a DC power jack, and works with a Mini-B USB cable instead of a standard one.

(Arduino公式ページより引用)

Google翻訳にかけてみると、以下のように出てきます。

Arduino Nanoは、ATmega328(Arduino Nano 3.x)をベースにした小型で、完全で、ブレッドボードに優しいボードです。 Arduino Duemilanoveの機能と多少の違いはありますが、異なるパッケージになっています。 DC電源ジャックがなく、標準のUSBケーブルではなくMini-B USBケーブルで動作します。

…らしいです。まぁこれは知っていなくても構いません。とりあえず、小型なマイコンっていう風に考えておくといいでしょう。

定価は22ドルです。今は111円/ドルくらいなので、2440円くらいですね。スイッチサイエンスというサイトで2880円で売られています。が、今回は「安さ」を重視したいので、その互換品を用います。Amazonで330円で売られているので購入しましょう。ピンヘッダははんだ付けされているタイプでもされていないタイプでもどちらでもかまいません。1~2週間で郵便受けに届くことでしょう。届くまでが長いので気長に待ちましょう。なお、Arduinoシリーズであれば何でも構いません。

 

 

作ってみよう

実際に作ってみましょう。

まずはパソコンを用意します。Windows7の場合は管理者権限が必要です。

Windows 8 , 8.1 , 10 の場合

スタートメニューからストアを開き、検索欄に「Arduino IDE」と入力して、出てきたアプリをインストールします。これで、ArduinoにBVEと通信するためのプログラムを書き込む準備ができました。

Windows 7の場合

こちらのサイトからArduino IDE(インストーラ版、ZIP版どちらでも構いません。)をダウンロードし、ダウンロードしたソフトを起動して指示に従いながらインストールします。インストーラ版の場合、途中でユーザーアカウント制御(UAC)の画面が出てきます。許可できると思うなら許可してください。(許可しないとインストールできませんが。)

インストールが終了したら、こちらのページを参考に、Arduino互換品を扱うためのデバイスドライバをインストールします。インストールの際にUACの画面が出てきます。許可できると思うなら許可してください。(許可しないとインストールできませんが。) 許可したくない場合は、Arduino NANOの純正品を購入しましょう。

 

ここからは共通です。

いったんパソコンを閉じて、物理面の制作に取り掛かります。
まずArduino NANOと可変抵抗を用意し、可変抵抗から出ている3個の端子のうち、真ん中の端子をArduino NANOのA0~A7ピンのどこかに、可変抵抗の両端の端子をそれぞれArduino NANOの「5V」端子と「GND」端子にそれぞれ接続します。次にスイッチを用意し、片方をD2~D12端子のいずれか、もう片方をGND端子に接続に接続します。

そして、何か適当な箱の底に可変抵抗を固定し、そこに棒を取り付けます。箱の天面が干渉するので、干渉する部分は切り取りましょう。これでマスコンハンドル部分及びレバーサーハンドル部分は完成です。マスコンハンドルの可動域の最大と最小の位置を箱に書き、その間に、自らが求める力行・制動段数分だけ線を引いてください。レバーサーハンドル部分も同様です。最大位置と最小位置を記録し、その間の中心に線を引いてください。
次にスイッチを設置していきます。スイッチのボタン部分の大きさに合わせて穴を開けてスイッチを設置します。

 

そして、またパソコンを開き、下のプログラムをArduinoに書き込みます。

 

※2018年8月9日追記 : 個体によって動作したりしなかったりすることが判明したため、一時的に公開を中止します。開発中ではありますが、GitHubにて修正後のものを公開しております。どうしても必要な場合は、こちらをご利用ください。

 

※2017年8月22日に上記ファイルのエラー修正版を公開しました。現在は修正版をダウンロードできるようになっております。それ以前にダウンロードした方は、更新版をダウンロードの上、ご利用ください。同様に、One_Coin_M@STERも更新してあります。

上のファイルをダウンロード後、解凍してください。
ダウンロードしたファイルをArduino IDEで開き、「ツール」からボードそしてCOMポートを選択します。ボードは「Arduino NANO」、COMポートはArduinoを接続しているCOMポートを選択します。
可変抵抗とボタンを接続したピンを、右のコメントに従って入力してください。
ここまで完了したら右矢印ボタンを押してプログラムをArduinoに書き込みます。そしてIDEの右上の虫眼鏡マークを押し、マスコンハンドルやレバーサーハンドルを先ほど設定した位置に動かし、ボタンを押します。すると、おそらく画面に「vol = n」(nは1023以下の自然数)が表示されるかと思います。それとハンドルの位置を関連付けて紙か何かに記録しておいてください。これをすべての位置に実行します。

 

 

ではではBVEとの通信に使うプログラムを書き込みます。下のファイルをダウンロードして解凍してください。

※2017年8月22日に上記ファイルのエラー修正版を公開しました。現在は修正版をダウンロードできるようになっております。それ以前にダウンロードした方は、更新版をダウンロードの上、ご利用ください。同様に、設定値を測定するスケッチも更新してあります。

※2017年10月17日に上記ファイルのversion2を公開しました。念のため現在もversion1をダウンロードできるようになっております。version2では2ハンドルマスコンも製作可能です!詳細はこちらをご確認ください。

この中に入っている「One_Coin_MASTER.ino」を開き、上のほうにある「const int」から始まる文字列の右にある=の右の数字を、右側のコメントを参考に、先ほど記録した各自の値や、ピンアサイン書き換えてください。
その11行を書き換えるだけでプログラムは完成です。

プログラムの注意事項

  • brnumとnonumの最大値はどちらも30です。それ以上はプラグインが認識しません。なお、あまりに多すぎると段と段の間が狭くなってしまい、本来出力されるべき段と少しずれた段を出力する場合があります。そういった場合は段数を減らすか、可変抵抗を2つ用いて「ある角度以下はこっちの可変抵抗、ある角度以上はこっちの可変抵抗」などとなるように、このプログラムを加工して使用すると良いかもしれません。
  • levFとlevNとlevRの値は、「levF > levN > levR」になるようにしてください。もし逆の動きになってしまうようであれば、可変抵抗の両端のピンの接続先を互いに交換してください。
  • brake[brnum]には、{}の中にbrnumで設定した個数だけ、数値を1つ1つ記述してください。数値は{B0の値,B1の値,B2の値,…}になるように記述しましょう。
  • ブレーキ段数が増えるごとに数値が減っていくような場合は、可変抵抗の両端のピンの接続先を互いに交換してください。
  • notch[nonum]には、{}の中にnonumで設定した個数だけ、数値を1つ1つ記述してください。数値は{P0の値,P1の値,P2の値,…}になるように記述しましょう。
  • ノッチ段数が増えるごとに数値が増加していくような場合は、可変抵抗の両端のピンの接続先を互いに交換してください。
  • button[btnum]には、{}の中にbtnumで設定した個数だけ、ピン番号を1つ1つ記述してください。番号は{ボタン1のピン番号,ボタン2のピン番号,ボタン3のピン番号,…}になるように記述しましょう。
  • ボタンの個数は最大で16個です。Arduino NANOのD2~D13ピンとA0~A4ピンを使用してボタンを1620個接続できます。それ以上接続してもBVE側で認識してくれません。
  • 「//ここから下は手を触れないでください。」より下にあるプログラムを改変した場合、意図しない動作をする場合があります。プログラムの作成に自信がない限り弄らないようにしましょう。
  • 手元にテストできる環境が整っていないため、このプログラムが意図した動作をするかどうかの確認がとれておりません。一応動くはずですが、何か不具合があればすぐに修正します。テストは2017/07/19あたりにできればなと思っています。 ※意図しない動作をするようになっていました…申し訳ありません… 2017年8月22日に更新したものはエラーを修正してあります。

 

このプログラムをArduinoに書き込み、線を接続していくとマスコンは完成です。お疲れ様でした。

 

運転してみよう!

ではでは、完成したマスコンを使って実際にBVEを操作してみましょう。まずはこちらのページより「汎用一軸入力プラグイン」をダウンロードし、説明書に従って設置してください。

設置が終了したら、BVEを起動してください。起動後、右クリックで設定を開き、「入力デバイス」タブを開き、汎用一軸入力プラグインを選択してください。選択後、「プロパティー」ボタンより、Arduinoの接続されているCOMポートを選択し、設定を閉じてください。

これですべての準備は整いました。さぁ、ハンドルを動かして操作してみましょう!

 

 

この記事はこれで以上です。何か質問がございましたら、Twitterもしくはお問合せフォームよりお問い合わせください。お問い合わせフォームからの場合、返信に時間がかかる可能性がございます。

 

ではでは、よいおウチ運転台生活を~

記事一覧

BVE, コンピュータ, 鉄道部品

Posted by Tetsu Otter