我使用的是一个涂鸦机器人,用Python编写代码。当它看到障碍的时候我想让它停下来
因此,我为左边的障碍物传感器,中间的障碍物传感器和右边的障碍物传感器创建了变量。
left = getObstacle(0)
center = getObstacle(1)
right = getObstacle(2)然后是if语句
if (left < 6400 & center < 6400 & right < 6400):
forward(1,1)
else:
stop()基本的想法是,如果传感器的读数小于6400,它应该向前移动,否则,它应该停止。当我用senses函数测试画写器时,我注意到当我把机器人靠近一个物体时,它会读到大约6400。
下面是我对main()代码的理解
def main():
while True:
left = getObstacle(0)
center = getObstacle(1)
right = getObstacle(2)
lir = getIR(0)
rir = getIR(1)
if (left < 6400 & center < 6400 & right < 6400):
forward(1,1)
else:
stop()为什么我的机器人没有反应?当我将Python代码放入shell时,它不会显示任何错误,但我的机器人没有发生任何错误。
编辑:
一些代码更改。到目前为止,机器人将移动,但它不会停止。我的if和else语句是否不正确?
center = getObstacle(1)
def main():
if (center < 5400):
forward(0.5)
else:
stop()发布于 2014-10-12 21:10:39
听起来你很接近你的原始代码:
def main():
while True:
left = getObstacle(0)
center = getObstacle(1)
right = getObstacle(2)
#lir = getIR(0)
#rir = getIR(1)
if (left < 6400 and center < 6400 and right < 6400):
forward(1, 0.1)
else:
stop()
break这个循环既测量left、center和right,又执行每次循环的比较。我修改了对forward的调用,使其在进行更多测量之前仅移动十分之一秒。另外,当条件不满足时,机器人和环路都会停止。
顺便说一句,你似乎不使用lir和rir。
https://stackoverflow.com/questions/26327267
复制相似问题