ブログパーツUL5

超音波レーダーの試作(3)

 試作した超音波レーダーのサーボ用出力波形を観測してみました。サーボの仕様が違うため、まず、観測してからプログラムの修正をすることに。
サーボ用出力波形1
 オリジナルプログラムの高速旋回という出力波形です。
プログラムで設定しているパルス間隔:800=0.01秒(100Hz)


サーボ用出力波形2
 オリジナルプログラムの低速旋回という出力波形です。
プログラムで設定しているパルス間隔:1600=0.02秒(50Hz)


 HSR-4898HBを動かすためには、パルス間隔を20mSに固定すればいいので、1600に統一する。上記の出力波形をよく見ると異様にパルス幅が狭いのが問題である。これではサーボが動作しない。
サーボ用出力波形3
 オリジナルのプログラムの仕様では0.5mS〜2.5mSのはずですが、大幅に小さい値なので拡大してみると、パルス幅は0.2mSもない状態である。ここら辺にどうもバグがありそうである。

 ソースがうまく解読できていないせいもあるが、それらしきパラメータを変更してもうまく調整できない。ソース解析が問題となりそうである。


 当分はサーボを1個追加するつもりはないので、超音波センサーとして利用は出来そうである。それにしてもプログラムにはコメントが入っていて解析しやすいのですが、プログランムソースを見てもサーボの仕様変更がどのようにしていくのかわかりにくく難航しそうである。現象を見るとパルス幅が0.2mSで固定されていてパルス間隔が変化しており、パルス間隔と可変パルス幅を変数設定でわかりやすく可変できるようにしてほしかった。

 さらに、静止状態で観測してみると、超音波センサーの受信強度は±10%の誤差ですが、角度は40〜178と全く使い物にならない範囲でばらついています。これはアルゴリズム的に問題があるかもしれませんが、もう少し精度があるかと思って試作しましたが、2回試作して、超音波センサーは赤外線距測モジュールに比べるとノイズに弱く精度がでないようである。遊び程度なら良いが精度を要求されるような場合には、赤外線距測モジュールをお薦めします。

 参考までに超音波レーダーの受信強度と距離の関係をグラフにしました。
受信強度グラフ
【追記】2011/09/20
 オリジナルのプログラムによる出力波形を観測しても周期は変化するが、パルス幅は170μSと規格外なのでプログラムソースを修正しています。しかし、cc5xのコンパイラのクセがわからないため、パルス周期とパルス幅を設定しても周期が変化してパルス幅が全く変化しないので、サーボの制御信号の合せ込みに難航してます。

パルス幅を設定している部分が全く機能していないことがわかりました。
/=======
GPIO |= 0x04 ; /* 出力を Hi にセットする。 */
/* */
for( i = 0 ; i < wk ; i ++ ) /* サーボの制御パルス時間を作*/
{ /* る。 */
nop( ) ; /* " */
nop( ) ; /* " */
} /* " */
/* */
GPIO &= ~0x04 ; /* 出力を Low にセットする。 */
/=======

 wkを大きくしたり、ループ回数を増やしたり、nop()を増やしても全く変化せず、パルス幅は170μSのままでした。
0

    コメント
    コメントする








       
    この記事のトラックバックURL
    トラックバック

    カレンダ

    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
    << October 2017 >>