我在编程新手,所以我需要我的超声波传感器驱动的NXT机器人帮助。 它与电机(A)相连,我希望它以30°为增量(总共7次测量)将机器人中心线上的房间扫描到90°左侧和90°右侧,将数据存储到一个阵列中,并以最大距离点我的机器人在测量方向,以避免阻塞。 这可能吗?或者有更好的解决方案吗? 任何意见或建议都是值得欢迎的。乐高NXT-RobotC超声波传感器
0
A
回答
0
这对避免障碍物有一定的作用,至于实现它,它取决于你在编程机器人的方式。我只知道lejos(java),其中用于获取角度的函数应该是这样的:
public static int scanArea(RegulatedMotor motorTop, UltrasonicSensor sonar) {
int theAngle = 0;
int largestDist = 0;
int currentDist;
for (int rotateAngle = -90; rotateAngle <= 90; rotateAngle += 30) {
motorTop.rotateTo(rotateAngle);
currentDist = sonar.getDistance();
if (currentDist > largestDist) {
largestDist = currentDist;
theAngle = rotateAngle;
}
Delay.msDelay(25);
}
motorTop.rotateTo(0);
return theAngle;
}
如果你的编码在任何基于代码的语言的机器人,应该是相当容易转换(假设你有功能,如rotateTo,否则你将不得不使用相对运动)。否则,我不知道在你最初使用的图形化编程语言中这会是多么容易。
0
我建议超声波传感器附接至180°伺服是垂直的。您可以通过将该程度分配给伺服来进行特定程度的测量。使用这个:
int largestDistance = 0;
int Angle =0;
for (int servovalue = 0; servovalue <= 255; rotateAngle += 30){
Servo[servo1] = servovalue;
if (SensorValue[Sonar] > largestDist) {
largestDist = SensorValue[Sonar];
Angle = servovalue;
}
}
return Angle;
}
它假设servo1是你的垂直伺服,但是如果你在RobotC中编程,这应该是可行的。
相关问题
- 1. 乐高NXT超声波传感器的输出值
- 2. ARDUINO DUE&SRF10超声波传感器
- 3. 超声波传感器状态机图
- 4. AVR中的超声波传感器
- 5. Arduino超声波距离传感器
- 6. 如何在Matlab中配置超声波传感器?
- 7. 使用python读取BBB的多个超声波传感器
- 8. 的Arduino +多个超声波传感器+干扰
- 9. 使用Z-Wave接口超声波传感器
- 10. HC-SR4超声波传感器与STM32L1的接口
- 11. 与AVR接口的超声波传感器
- 12. Arduino超声波传感器pulseIn只有3或4个
- 13. 用超声波传感器和覆盆子测量距离
- 14. 树莓派伺服和超声波传感器抖动
- 15. 使用DYP-ME007Y-PWM超声波传感器
- 16. 6旋转伺服电机的超声波传感器
- 17. 使用超声波传感器在Arduino中获得英寸距离和Cm从超声波传感器获取距离
- 18. 如何将两个超声波传感器添加到PIC微控制器
- 19. 如何使用超声波传感器和Arduino控制机器人手臂
- 20. 如何在arduino上使用毫秒运行伺服和超声波传感器?
- 21. Raspberry pi 2B +的单超声波传感器不能从Pi端子运行
- 22. 问题超声波传感器和以太网盾的Arduino之间
- 23. Raspberry Pi超声波传感器输出在几次循环迭代后失速
- 24. 使用arduino和超声波hc-sr04传感器进行速度测量?
- 25. 带有树莓派2b +的超声波传感器造成编译错误
- 26. 如何使用NXT超声波传感器读取厘米数值?
- 27. 如何让超声波传感器与Arduino Uno一起正常工作?
- 28. 树莓派上的两个超声波传感器与Python脚本
- 29. 乐高头脑风暴NXT,可可和HiTechnic传感器
- 30. 超声波通讯
谢谢安德烈亚斯以光速回答:) – Strma 2013-04-21 12:59:57
我使用RobotC进行编程,没有“rotateTo”函数,但MotorEncoderTarget看起来很接近......在你的例子中,“motorTop”是所涉及的电机的“名称” ? – Strma 2013-04-21 13:16:45
motorTop只是一个对象的名称,该对象是包含用于控制电机的方法的RegulatedMotor类的实例。 – dukky 2013-04-21 14:07:37