0

LEGO Mindstorms NXT 2.0 用に Labview でプログラムを作成しました。ターゲットをコンピュータに設定すると、プログラムは問題なく動作します。しかし、ターゲットを NXT に設定すると、プログラムはコンピューターをターゲットにしたときと同じように動作しません。

このプログラムは、NXT の超音波センサーによって検出された物体から 30 cm 離れるまで、ロボットを前進させます。するとロボットが止まります。オブジェクトが移動され、NXT の超音波センサーの 30 cm 以内にオブジェクトがない場合、ロボットはオブジェクトから 30 cm 離れるまで再び前進します。その後、停止します。

これは、Labview でターゲットがコンピューターに設定されている場合は機能しますが、NXT に設定されている場合は機能しません。NXT に設定すると、最初のオブジェクトが検出されると停止します。ただし、オブジェクトが取り除かれ、超音波センサーの 30 cm 以内にオブジェクトがなくなると、ロボットは静止したままになり、前進しません。

ブロック図のスクリーンショットを次に示します。 ブロック図

プログラムのソース コードへのリンクは次のとおりです。

どんな助けでも大歓迎です。

4

3 に答える 3

1

NXTの速度を落とすために200msの待機ブロックを追加することでこれを修正しました。これはうまくいきました、レンガはそれ自身より進んでいるようでした。

于 2011-12-08T14:20:07.933 に答える
1

私のNXTの経験は非常に限られていますが、文字列VIを使用してNXTの画面にデバッグデータ(i、距離など)を表示することをお勧めします。これにより、プログラムがどこにあるかを特定でき、問題を見つけるのに役立つ場合があります。

余談ですが、LV では、実行速度を制御するものを持たないループを使用することは一般的に推奨されません。これは、NXT で実行されているコードでは異なる場合がありますが、ループに単純な待機を追加することをお勧めします。

于 2011-12-07T11:43:28.873 に答える
1

コードに間違いは見当たりませんが、NXT ターゲットに展開するときに行うことは、ループを無限にし (Stop を False 定数に置き換えます)、波形チャートを削除することです。NXTでは必要ありません。

于 2011-12-07T12:32:49.060 に答える