我正在尝试使用 NBC(下一个字节码)在 NXT 上创建一个简单版本的 VFH(矢量场直方图)。为此,我需要准确测量机器人与物体之间的距离。既然NXT可以以厘米为单位显示距离,我想在我的程序中编程以厘米为单位的距离?由于没有默认的厘米读数(或者有吗?),可以这样做还是我必须使用默认的传感器值?如果可以,我该怎么做?如果不是,我如何将超声波传感器读数转换为厘米读数?
提前致谢。
默认输出是一个字节值,给你厘米。
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 厘米)。但是 NXC 编译器会即时将其转换为 int。
请注意,虽然传感器不是很准确!特别是如果您在移动时阅读它。因此,预计读数中会有很多错误和噪音。