コンピューターをターゲットにしていないが、NXTではなくLabViewでこのプログラムが機能するのはなぜですか?

StackOverflow https://stackoverflow.com/questions/8404029

  •  28-10-2019
  •  | 
  •  

質問

Lego MindStorms NXT 2.0のLabViewで書かれたプログラムがあります。ターゲットがコンピューターに設定されている場合、プログラムは正常に機能します。ただし、ターゲットをNXTに設定すると、プログラムはコンピューターのターゲットを絞ったときと同じように機能しません。

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

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

これがブロック図のスクリーンショットです:block diagram

プログラムのソースコードへのリンクを次に示します。

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

役に立ちましたか?

解決 3

NXTを遅くするために200msの待機ブロックを追加してこれを修正しました。これはうまくいき、レンガがそれ自体を前進しているように見えました。

他のヒント

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

サイドポイントとして、LVでは、実行率を制御するものを持たないループを持つことは一般に推奨されません。これは、NXTで実行されているコードでは異なる場合がありますが、ループに簡単な待機を追加することをお勧めします。

あなたのコードに間違いはありませんが、NXTターゲットに展開するときに私がすることは、ループを無限にし(停止を偽定数に置き換えて)、波形チャートを削除することです。 NXTでは必要ありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top