見出し画像

速度測定の自動化を考える

 前回は速度計測器を使って,PWM値とその時の速度計測器が示す値から求めた換算速度との関係を複数点で取って特性を求める方法を考えました。

 動力ユニットが数種類で,同じ動力ユニットなら特性も同じというならこの方法でも特に困りません。でも,動力ユニットの種類が多かったり,車両によって特性が異なったりするとそれぞれの車両で特性を取る必要があり大変です。簡単な楕円軌道でも速度が遅いと一周にそれなりに時間がかかりますから,測定するのに1時間ほどかかるかもしれません。自動化する方法を考えてみましょう。

①ラズパイで画像処理

 せっかくラズパイを使って速度(PWM値)の指示をするのですから,ラズパイにカメラを接続して速度計測器の値を読み取って画像処理を行えば,自動計測ができるようになるはずですね。しかも画像処理はそんなに難しくないようです。

速度計測器を自作する

 市販の速度計測器は簡単に測定できて良いのですが,測定結果を外部機器に取り出す手段がありません。自動でデータを取得するにはやっぱり速度計測器を作る必要があります。
 原理は,予め距離がわかっている2点間の通過時間を測定する事ですから,列車の通過を検知できる手段を2点設ければ良いのです。検知する手段としては光学式と磁気式が考えられます。光学式の場合は,赤外線LEDとフォトダイオードの組み合わせで検知できます。反射型と透過型があります。照度センサーも使えますが,部屋の明るさの影響を受ける点に注意する必要があります。磁気式の場合は磁石とホールセンサーを使います。

②光学式検知

 反射型は赤外線LEDから発せられた赤外光が車両に当たって反射してくるのをフォトダイオードで検知します。透過型は赤外線LEDの赤外光が車両で遮られた事をフォトダイオードで検知します。先の速度計測器は透過型ですね。反射型は線路の片側に装置を置けば良いです。透過型は線路の片側に赤外線LED,反対側にフォトダイオードを設置します。

③磁気式検知

 磁気式の場合は永久磁石を車上に配置して,それを線路脇などに配置したホールセンサーで磁界の変化を検出します。
 磁石を車両の床下に設置した場合は線路上にホールセンサーを配置する必要があります。磁石を側面に設置した場合は,その磁石が真横を通るように地上側のホールセンサーの位置を調整します。
 ホールセンサーはホール素子やホールICと呼ばれる事もあります。

マイコンで演算

 2つのセンサーで時間を測定するにはラズパイよりマイコンを使う方が正確です。この場合はマイコンのカウンター機能を利用します。例えばPICマイコンでは1つ目のセンサーが反応した瞬間のカウント値を取得し,次に2つ目のセンサーが反応した瞬間のカウント値を取得して,2つ目のカウント値から1つ目のカウント値を減算すると2つのセンサー間の通過にかかった時間を求める事ができます。

記録する

 速度を計測したら,その時のPWM値と合わせて記録する必要があります。PICを使って記録するなら,PIC内にあるメモリーに保存する事もできますが,それを取り出す手段が必要になります。SDカードを使えばログファイルとして残す事ができます。ただPICでSDカードを使うのは少し面倒なんですよね。8ビットマイコンでできたかなぁ?組み込み用としてはFatFsが有名です。
http://irtos.sourceforge.net/FAT32_ChaN/doc/00index_j.html

 今の段階では速度制御を地上設備で行っています。線路への供給電力をPWMで行っているのですね。その地上設備(PICマイコン)にラズパイから指令を送って速度を変えようとしています。なので,PICからラズパイにデータを送信すればラズパイで簡単に記録する事ができます。

④車上速度計を作る

 上記の方法で地上設備と車上設備を入れ換えると車上で速度計測ができる様になります。他には,車軸に永久磁石を取り付けてホールICで一定時間当たりの回転数を計測するという方法もあります。この方法を用いると,走行中いつでも速度計測ができるようになるので測定時間を短縮できますね。
 この場合は車上にマイコンが必要になります。いよいよDCCシステムの出番です。DCCはデータ送信が一方通行(地上→車上)なので,速度制御はできても記録ができません。この時は特別に無線通信を行いましょう。例えばBluetoothを使えばラズパイと接続できます。WiFiはアンテナが大きいので不向きです。

 IMBLEはBluetoothの規格を意識する事なく,マイコンとはUARTで通信できるので使いやすいと思います。対応している規格が少し古くBluetooth Low Energy 4.1ですが,この様な使い方の場合は特に影響ありません。これを使えば速度指令もDCCシステムを使わずBluetoothでできますけどね。制御する車両が多いとBluetoothも使えなくなりますからやっぱりDCCシステムが必要です。

どの方法を使う?

 結局のところ,すぐに自動化しようとは思っていません。手っ取り早く速度制御をする為に速度計測器を買いましたので。やるとすれば車上計測が良いですね。永久磁石を車軸に貼り付けてホールICで検出するのが,測定時間を一番短縮できそうです。この実験は後々行う事にしましょう。

 尚,車両の位置を検出する為に地上に反射型光学検知器を設置する予定はあります。これについても後々実験してみます。

いいなと思ったら応援しよう!