HOME >> 鉄道模型実験室 > パルス波形の観察

鉄道模型実験室 No.101  パルス波形の観察

■ はじめに

 先回の報告で、スリップ率の測定に対して疑問点が有ったので、その原因を調査して対策案を検討した。

   .

 

■ スリップ率不良の現象

 まず、不良の状態を整理しておこう。 スリップ率のデータについて、右のグラフに示すが、先回の測定データを黄色の点で、今回のデータを青色の点でプロットしている。

 先回のデータよりもバラバラとなっており、測定は平坦路単機走行時の状態を測定しているので、動輪がスリップしているとは考えららない。 即ち測定がおかしい事は明らかである。

 この時の測定データのなかで、モータ回転のパルスのデータも同様に比較して見たのが隣のグラフである。 明らかにパルス数が多くなっている。 測定間隔が 108mm のゲート間を通過するときのモータ回転パルスをスリップ率ゼロの場合として計算すると、

   パルス数 = 2×108×i /πD     2:回転マーキングによる一回転当たりのパルス数   i :ギヤ比   D :動輪直径 mm

で求められるので、通過速度に関係なく一定値となる。 今回の場合は、179.0 回のパルスがスリップ率ゼロとなる。 パルス測定なので、測定タイミングのずれにより前後数パルスは誤差になるので、先回の測定データは正確に測定している事を証明している。

 しかし、今回のデータは、余分にカウントしているのであるが、何故だろうか?

 ノイズを拾っているのか、パルスをダブルカウントしているのか、あるいは修正したプログラムが影響しているのだろうか? 「試験走行によるシステムの確認」でも同じような現象があったので、プログラム上の不具合かも知れない。 この時も本当の原因が分からずじまいであったのである・・・・・・・・・。

 

■ パルス波形を観察してみよう

 取りあえず、疑わしいパルスのダブルカウントについて調べることにして、パルス波形を観察することにした。

  .

 動力車の両端を木片で支え、動輪が空回りする状態にし、その時のモータ回転によるパルスの発生状態を観察することにする。 上の写真。 モータは端子電圧測定片を使って電力を供給し、パルス信号は右に示す回路をブレッドボード上に構成して、イ点とロ点の電圧を簡易オシロで観察するようにした。

 +5ボルトの電源は、オシロ・シールドから取り込み、イ点をCH1 に、ロ点をCH2に表示させた。 また、A、B、C の各抵抗の値を変えても波形を観察した。 その結果を下に示す。

 まず最初に、現在のを観察したが、何だか歪んだ波形をしていた。 モータが一回転する間に二つのパルスが出るが、一方のパルスは二つのコブが発生しており、これがパルスのダブルカウントになっているのではないかと考えて、早々と犯人に決めつけてしまった。 (本当かどうかは定かではない・・・・・・・)

 それにしても、トランジスタを使ってセンサからのパルス波形を整形させたつもりであるが、まったく機能していない事にガッカリしている。 LED電子工作等で、気楽にトランジスタを使っていたので、簡単に思っていたがとんでもない間違いであった。 測定点ロはCH2、即ち下側に表示させ、測定点イはCH1、即ち上側に表示させいるのであるが、ほとんど同じ形の波形である。 トランジスタは何の働きもしていないようである。

               ・・・・・・・・・本当は、トランジスタの使い方を知らないだけなのだ!  と影の声が聞こえる!

現状 ケース3 ケース6 ケース17
A = 10K  B = 5.1K  C = 0 A = 20K  B = 10K  C = 0 A = 20K  B = 5.1K  C = 1K A = 15.1K  B = 5.1K  C = 3.3K

 そこで、トランジスタの周辺の抵抗値をいろいろ変えてみて、波形の変化を観察し最適な組み合わせを探ってみた。 トランジスタの説明資料を漁ってみたが、ゴチョゴチョと説明されているものの、ちっとも頭に入らない。 そこで、手っとり早く トライ&カット の手法に走ったのである。 その結果の主なケースを上に示す。

 これらの結果を観察していて、自分の今までの認識が根底から崩れたしまった。 センサからのパルス波形は、小さくて崩れた波形だろうと予想し、それをトランジスタの増幅機能によって、ある閾値を超えると一気にフル電圧まで拡大してくれるものと勝手に想像していた。 でも、この様なパターンは見当たらなかった。

 さらに、上記のケースのように、出力側が矩形は状にすることが出来るのあるが、この場合には入力側も矩形波になってしまうのである。 これはどうなっているのか頭が混乱してしまったのである。 そして、自分が出した結論は、トランジスタ回路はアナログ回路であり、ある一か所の状態を変化させると、周辺も影響されてしまうのだ。 あたかも周りがゴム紐で連結されている物体のようであり、どこかを引っ張ると周辺のすべてが影響されるものなのだ。 これはデジタル回路のような論理回路とは違うのであると認識しなければならない。 ・・・・・・・との結論に達した。 このため、トランジスタ回路は奥が広く、素人が考えるほど簡単ではないという事を認識した次第である。

 また、この回路の出力は、Arduino のデジタル入力端子に入力されるので、digitalRead した時の電圧は、3v 以上で HIGH と、2v 以下でLOW と認識されるとのことであるので、ケース17の場合の条件を採用することにした。

■ パルスカウントの方法

 測定されたパルスをカウントして処理する方法には、いくつかの方法がある。

 まず最初は、Arduino のライブラリーである FreqCounter を使用してパルスを計測する方法であるが、「反射式回転センサーを使う」で紹介したように、原因は良く分からにが使用できなかった。

 次に外付けのパルスカウンタを使用方法である。 この場合には、指定時間でのパルス数を計測する方法と、逆に指定数になる時間を測定するの二つの方法があるが、前者では数値データの出力が必要となるので、Arduinoにどうやって取り込むのかの課題がある。 後者の方法では、カウント開始のと終了時のタイミングを送信すれば、Arduino 側でそのタイムスタンプを記録し計算することにより、容易に回転速度を計算出来る。 もしArduino内部でパルスカウント出来れば、前者の方法でパルス数の数値の処理は簡単だろうし、外部カウンタを使う方法では後者のタイムスタンプ方式が容易な気がするとの考えたので、「赤外線通信の確認」に紹介したように、サテライトユニットを使用した今までの方法では、指定数になる時間を測定する 方法を採用していた。

 今回は、上記の 「Arduino内部でパルスカウンが可能であれば、指定時間でのパルス数を計測する方法が採用できる」 と考えて、この方式を採用したのであるが、やはり不安が有るので、先回の方式と同じ方法でも実施出来るようにしておこうと考えて、サブ・シールドの修正に合わせて細工をしておくことにした。 

 この二つの方式には、一長一短があるが、問題なければ今回の方が良いと判断している。

■ サブ・シールドの修正

 パルスカウント部分のプリアンプ部の抵抗値修正の工作と共に、バイナリーカウント部のICをサテライトユニットで使用実績のあるIC(14ステージ・バイナリカウンタ 74HC4020 )に変更すると共に、周辺回路を修正した。

  .

 まず、プリアンプ部は 3.3KΩと 5.1KΩの抵抗を追加 するが、スペースが無かったのでチップ式の抵抗を用いた。 また、カウント方式の変更に備え、D2 入力端子の接続をジャンパーピンで変更できるように構成した。 右の回路図参照。

 修正したサブシールド基板を下に示す。

 修正したシールドを使用して、その出力波形を確認した。

 上左のオシロ画面は、D2 端子をCH1に接続して観察したものである。 波形が少し鈍ってしまっているが良しとしよう。 右のオシロ画面は、カウンタの出力を確認するもので、設定回数が128回に設定している。 D2に接続するためのジャンパピン部 (カウンタのQ8 端子に接続している)をCH2 に接続して観察したものである。 パルス入力に従って、確実にON/OFFを行っている事が確認出来た。 パルスのカウント数は確認できないが・・・・・・・・・・!

 次は、この修正版を使用して動力車を測定したので、その結果を報告しよう。

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

■ その後の追加検討

 やはり、プリアンプ部の構成が気になっていたので、もっと最適な回路構成はないかと調べた。 トランジスタによる回路は探せなかったが、NANDを使うもの、さらにはオペアンプのコンパレータ回路なども参考になった。 オペアンプは、空いている回路がすぐ傍にあるので、これを利用する方法がベターな気がしているが、またまた、基板を作り直す必要がありそうである。 ・・・・・・・・・・・だんだん面白くなってきました。