プログラミング言語NBC(Next Byte Code)を使用して、レゴNXTロボットから超音波センサーの読み取り値を読み取ろうとしています。レゴのウェブサイトには、センサーの読み取り値は0〜255 cmの範囲であると記載されていますが、センサーデータを出力すると、255を超える値が表示されることがあります。これは通常、センサーが255の値を読み取ったときに発生します。その後、170〜900前後と表示されます。なぜこれを行っているのかわかりません。これが私のコードです:(私は最初にセンサーデータを読み取り、次にロボットを45度回転させ、データがどのように読み取られているかを調べるためだけに無期限に繰り返します。)
#include "NXTDefs.h"
// have the robot stay still and keep track of all the distances when turning around.
dseg segment
Distance udword 0
dseg ends
thread main
SetSensorUltrasonic(IN_4)
Forever:
ReadSensorUS(IN_4,Distance)
NumOut(0,10,Distance)
wait 1000
RotateMotor(OUT_B,100,180)
ClearSensor(IN_4)
ResetSensor(IN_4)
set Distance,0
jmp Forever
exit
endt