0

NBC (次のバイト コード) を使用して、NXT で VFH (ベクトル フィールド ヒストグラム) の単純なバージョンを作成しようとしています。これを行うには、ロボットと物体の間の距離を正確に測定する必要があります。NXT は距離をセンチメートルで表示できるので、プログラムで距離をセンチメートルでプログラムしたいのですが? デフォルトのセンチメートルの読み取り値がないため (または存在しますか?)、これを行うことができますか、またはデフォルトのセンサー値を使用する必要がありますか? できる場合、どうすればよいですか?そうでない場合、超音波センサーの読み取り値をセンチメートルの読み取り値に変換するにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1

1

デフォルトの出力は、センチメートルを示すバイト値です。

task main(){
   int DistanceInCm;

   SetSensorLowspeed(IN_4);
   while(true){
     DistanceInCm = SensorUS(IN_4);
     //do something with the value here.
     Wait(800); //or just wait.
   }
}

それはそれと同じくらい簡単です。センサーの読み取り値はバイト (0 ~ 255 cm) です。しかし、NXC コンパイラは、その場でそれを int にキャストします。

ただし、センサーはあまり正確ではないことに注意してください。特に移動中に読むと。そのため、読み取り値には多くのエラーとノイズが予想されます。

于 2012-04-19T10:31:14.187 に答える