HOME >> 鉄道模型工学 > 動力特性の測定の自動化 > システム構想と回路図

鉄道模型工学  動力特性の測定の自動化  システム構想と回路図

■ はじめに

 鉄道模型工学の要となる性能測定装置について、改善と工夫を積み重ねて来ましたが、なんとか安定的に計測出来る装置となってきました。 しかし、だんだんと慾が出て来て、もっと簡単に測定出来ないだろうかと考えるようになりました。 その方法として、計測データを目で読むのではなく、自動的に計測したデータをパソコンに転送できれば、測定作業の手間が省け、かつ測定時間も短くなります。 そこで、あれこれ調べた結果、 Arduino を使用したら自動化出来そうなので、今年の目標としてチャレンジしてみることにしました。

 この自動計測を実施する前提として、まず、この測定装置の改良から取りかかり、「実験装置 傾斜台のさらなる改良」で報告のように、完成することが出来た。 そこでいよいよ、自動測定システムの製作に足を踏み入れることにした。

 

 

■ 自動測定システムのイメージ

 どの様なシステムにするかは、今までも頭では考えていたが、とにかく絵にすることから始めた。 右のメモ参照。 自動化する計測項目は、供給電圧と電流、車速、傾斜角の4項目である。 出来れば、走行中の動力車のモータ回転数か、モータの端子電圧が測定できれば、動力解析が容易になるであるが、難しそうなので将来課題とする。

 電圧と電流は電気回路で対応し、車速は直線部の終端でフォトセンサー等を利用して2点間の通過時間を計測する。 そして傾斜台の傾斜角はリフト装置の高さか角度を検出して勾配を計算することにする。

 測定データをリアルタイムにパソコンに取り込み、グラフ化されたデータの状態をチェックしつつ、測定状態をモニターしていく。 これによって、動力車の不具合や測定中のミスを発見しやすくする。

 

■ 必要となる知識

 この様なイメージを描きながら、必要な部品や勉強すべき内容を念頭に於いて、ネットで調査を始める。 まず、キーとなるArduinoに関するサイトを色々見ながら、その概要を勉強した。 そして、入門書として、

(参考書 1) たのしい電子工作 「Arduino で電子工作をはじめよう!」 高橋隆雄著、秀和システム社、\2,200.-

を購入して、使い方やスケッチの書き方を学ぶ。

 次に、パソコン側の処理として、USB通信でデータを受け取り、Excelに書込むまでの処理を実施する方法を探した。 Excelにデータを書込んだら、数値の計算処理やグラフ化は容易に実施できると踏んでいるので、如何にデータを読込むかが、課題と考えている。 WEBサイトでこの様な処理を実施している例を探したら、「戸田よろず研究所」の「赤外線距離センサーとエクセルVBAを用いた物体、生体の運動記録 Arduinoのシリアル信号をエクセルで読み取る方法。」を見つけた。 そこで早速ダウンロードしてVBAの内容を参考にさせてもらおうとしたが、パスワードが違いますと言って中身を見せてくれなかった。 ちゃんと今月のパスワードを入力したのに・・・・・・・・・・!。

本日、研究所の方からメールを頂きました。 パスワードはマクロを動作させるためにのもので、ソースコードを開くためのパスワードではないとのこと。このプログラムは依頼されて作製したものであるため、非公開にされているとのことでした。了解いたしました。 ご連絡ありがとうございました。 2013年3月9日 追記

 そこで、次の書籍を参考書とすることにした。

(参考書 2) 「お手軽マイコン・ボード Arduinoとセンサで計測&解析」 大川善邦著、CQ出版社、\2,400.-

 自分の欲しかった部分は、VBAでの処理方法であるが、何やら難しそうであるものの、そのまま活用できそうである。

 しかし、この参考書1&2を見ていても、Arduino回りのハード構成がいまいち良く理解出来なかったので、次の書籍も購入してしまった。

(参考書 3) 「Arduino ではじめる電子工作」 nekosan 著、工学社、\2,300.-

 WEBの関係サイトと参考書により、なんとか出来そうな気がしてきたので、システム構築に向けて踏み出す事にした。

 

■ システムの構成

 まず、自動計測システムは、どのような回路を使って、どのように処理するのかを考えなくてはならない。 このため、WEBの関係サイトと参考書で勉強した内容をもとにまとめて見た。

 ◆ 電圧と電流の検知方法。
WEBサイトを参考にさせてもらい、素人でも理解できる、より簡単な方法を使って見る事にする。 電流を検知するための抵抗について、1〜2Ωの抵抗を使うと、300mAでは、0.3〜0.6 Volt が発生するので、Arduino のA/D変換の参照電圧を1.1Voltにすると行けそうな気がした。 しかし、あるサイトで「参照電圧を1.1Voltにすると誤差が大きくなる」と書いてあった。 このため、参照電圧を標準の5.0Voltにするためには、電流検知抵抗をアップする必要があるが、動力車への影響が大きそうであり、発熱も心配であったので、もっと小さな抵抗にしてオペアンプで増幅する方法を使うことにする。 オペアンプに関してはWEBサイトで親切に解説してあったので、自分でも使えそうな気がしてきたのである。 サイトの著者に感謝である。 昔はアンプと言えばトランジスタを使用するもの思っていたが、今は便利なICが出来てるのですね。 抵抗値の計算だけで増幅率が計算出来、簡単な回路設計なら素人でも手が出せそうである。 本当は奥の深いジャンルと思うけど!。
 ◆ 車速検知方法。
車速を検知する方法は、現在使用している「簡易速度計測器ビースピV」と同じ様に、2点間の光のビームを横切る時間差を計測し、速度に換算する方法を採用することにする。 非接触で確実な方法の様な気がした。 LEDで発光し光を、スリットを通して光センサで受け、車両が通過する瞬間を検知する。 この二つの信号の時間差をArduinoで計算すれば、速度に換算出来る。 millis() という命令が使えるのだ。
 ◆ 傾斜角の検知
角度と言っても、max 200パーミル程度の角度を測定するので、持ち上げる側の高さを計測するので正確と考えているが、長さを計測してArduinoに簡単に入力出来る方法は何かを色々調べた。 距離センサは精度が甘そうだし、Gセンサで勾配を検知するのも検出精度は無理の様である。 結局、レバーと可変抵抗器(いわゆるボリューム)で回転角を検出する方法で考える事にした。 この場合、レバー機構の構成から、回転角は90度以内しか取れないだろうと思われる。 可変抵抗器の回転角は300度近くもあるので抵抗の可変範囲の 90度/300度=3/10 しか使わない事になる。 「登り坂の手助け」対策も考えながら、可変抵抗器をダブルで使ったらどうかなどあれこれ悩んだ。 しかし、より簡単なシステムにするために、傾斜台を手で持ち上げた時はキャンセルスイッチを働かせ、可変抵抗器の使用範囲の問題は、オペアンプを使って増幅することにした。 可変抵抗器の両端に基準電圧の 5Volt を掛けて、スライド部の電圧を取り出し、 ArduinoのA/D変換に掛けるためにオペアンプで増幅させておくのである。 リンク機構による非線形性は EXCEL 上で補正すればよいと考えている。
 ◆ モータの電流変動対策
模型車両の動力車に使用されているモータは、脈動が大きいと聞いている。 ネットでも測定された電流波形が報告されていた。 モータは2万回(20,000rpm)は回転するので、一般的な2ポール5スリットのモータでは、スリット毎に脈動するとすると、20,000回×5÷60 = 1,670 回/sec の脈動はあると覚悟すべきである。 また、Arduinoの計算スピードがいくらになるかはまだ勉強していないので不安があるが、とにかく実験してみる事にする。  電流の脈動対策としては、車速を検知している間は、電圧と電流を何度も計測し、その平均値を求めれば対応できるだろう決断する。
 ◆ 大まかな計算フロー
頭の中で考えているArduinoの演算フローは次のとおりである。
スタンバイ状態において、
  1) 入口のスロットを通過した信号をもとに、その時刻を記憶し、次のループを開始する。
  2)電圧と電流を A/D変換し、それぞれの累積を計算し、カウンタ(累積回数)をひとつ加える。
  3)出口のスロットの通過信号が入力されるまで、2)の作業を繰り返す。
  4)出口のスロットの通過信号が入力されたら、 その時刻を計測し、入口との時刻差を計算して、通過時間とする。
  5)この時の傾斜角を計測する。
  6)電圧の累積値、電流の累積値、累積回数、通過時間、傾斜角のデータをUSB通信を使ってパソコンに送信する。
  7)次の入力スロットの通過までスタンバイ状態にする。

そして、データを受け取ったパソコン側は、データセットを項目に分解して EXCEL のセルに書き込んでいく。
EXCELでは、補正や計算処理が設定されているため、自動的に平均電圧やスケール速度、あるいは牽引力などに計算され、グラフに表示する。 

  .

■ 回路図の作製

 上記で考えた回路構成を実現し、どのような部品を購入するか決めなくてはならない。このために、回路図を作成した。 作製は回路図エディタのフリーソフトBSch3Vをダウンロードして使用した。

 電流の検出には、0.22Ωの抵抗を使用する。 500mA 流すと 0.11Volt の電圧差が生じる。 これを 510Ωと20kΩを使用して40倍に増幅すると、4.4Volt となる。

 電圧は、コントローラの最大電圧を15Volt と考えて、1/3に分圧すれば良いと当初は考えていたはずであるが、いつの間にか オペアンプを使用した回路になっている。 自分でもどうしてこうなったのか、メモが残っていないので不明である。 実際に作った回路は単なる抵抗を使った分圧回路にしている。

 この回路において、コントローラのGNDと測定側のGNDが連結しているが、本当に大丈夫だろうか心配である。 もし遮断するのであればフォトカプラー(アナログ・リニア・フォトカプラ)が必要になる様ですが、良く解りません。 問題になったら勉強する事にします。 また、コントローラの進行方向スイッチを不用意に逆転させたら、電源ラインのプラスとマイナスが逆転してしまい、回路が壊れてしまいそうである。 Arduinoも大丈夫だろうかと心配になるが、対策が判らないのでコントローラの逆転スイッチにガムテープを貼ってポカよけとする事にする。 ・・・・・・・・・本当に大丈夫だろうか?

 

 模型車両のモータのノイズの問題も心配しています。 ここでは、室内灯(夕庵式)で使用した10μFのコンデンサが手持ちにあったので取りあえず使用することにしました。

 角度検出は、10kΩのボリュームを使用して、その分圧を取り出し、オペアンプで5倍に増幅する。 タクトスイッチは傾斜台を持ち上げた時の信号用に使用し、正常時にはHIGTとなる様にする。

 通過信号用の発光と受光回路は、同じ物を4個作りデジタル入力とする。 光らせる方は室内灯やレイアウトで実践済みなので問題ないが、光を受ける方はやって見なければ分から無い状態である。

 回路の概略が出来つつあるが、基板をどう構成するのか検討して、絵にしたのが左の落書きである。 信号処理は検出部の近くで処理して、Arduinoに入力させるようにするのが、得策と考えた。

 電圧と電流検出部は測定台の中央に設置して、コントローラから線路に配線する途中に挿入する。 速度検出部は、「ビースピV」と同様に線路の直線部の終端に設置する。 そして、それは登り坂と下り坂の2ヶ所に設置が必要である。 傾斜角検出部は測定台の側面に設置する。

  .

 これらの配線を集めて処理するArduino搭載のボードを手元に設置し、パソコンと電源に接続する。 これらのボードを接続する信号線は、ノイズ防止としてシールド線を使用することにしよう。

 部品を注文するには、その種類と仕様を決めなければならないので、ネット情報をもとに決めて行った。

 良く使う抵抗類は100本単位で発売しているので、種類が少なくなるように設定し、20kΩ、10kΩ、5.1kΩ、510Ω の4種類に絞った。  また、LEDの回路は、電圧が一定しているのでCRDではなく、510Ωを使うことにした。

 オペアンプは一般的なLM358を使用し、通過信号の受光回路はフォトICダイオード(浜松ホトニクス)が使いやすそうなのでこの素子で試してみる事にする。

 Arduinoに接続する基板(シールドと呼ぶらしい)は専用の基板が幾つか用意されているので、その中から接続コネクタ付きの基板 UB-ARD03-P を使用する。

 こうして見直した回路(Ver.1.2)を右に示す。

■ 部品の発注

 今回注文した部品は下記の通りである。 この他にも室内灯加工のためストックしていた部品も流用する。

 注文先はネット通販で利用しているマルツと秋月を利用した。 どちらか一方で済まそうとしたが、片方にしか無い部品があり、適当に分散して依頼した。

********************************

部品を発注してしまったので、もう後戻りは出来ない。 でも実際に物をいじっての作業となるため、楽しみである。

頑張るぞ!