首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在发动机和传感器之间获得即时响应?

如何在发动机和传感器之间获得即时响应?
EN

Stack Overflow用户
提问于 2021-01-11 09:27:57
回答 2查看 76关注 0票数 1

我是pybricks的新手,几乎找不到文档来帮助我回答自己的问题。我已经写了一个我认为是简单的程序,让我的机器人在现场旋转,直到UltrasonicSensor看到什么。然后它就会向前推进。如果它被向后推,并看到一条黑线,它应该尝试并摆动到一边。

以下代码“有效”,但它对超声波和光传感器的响应明显延迟:

代码语言:javascript
复制
#!/usr/bin/env pybricks-micropython

from pybricks.hubs import EV3Brick
from pybricks.ev3devices import Motor, ColorSensor, UltrasonicSensor
from pybricks.parameters import Port
from pybricks.tools import wait

ev3 = EV3Brick()
eyes = UltrasonicSensor(Port.S2)
left_motor = Motor(Port.B)
right_motor = Motor(Port.A)
right_light = ColorSensor(Port.S1)
left_light = ColorSensor(Port.S4)

while True:

    if right_light.reflection() < 50:
        ev3.speaker.say('black')
        left_motor.run(500)
        right_motor.run(-100)
        wait(2000)
        left_motor.run(500)
        right_motor.run(500)
        wait(1000)
    if eyes.distance() > 200:
        left_motor.run(500)
        right_motor.run(-500)
    else:
        left_motor.run(-500)
        right_motor.run(-500)

我可以在(有限的) documentation中看到,你显然可以改变电机设置,但我找不到如何做到这一点的方向(或者它是否有用)。任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-14 07:17:39

所以问题是我使用了"run“命令来移动电机。Run似乎有一个加速和减速组件。

我使用了"dc“而不是"run”,现在马达会立即响应传感器数据。

票数 2
EN

Stack Overflow用户

发布于 2021-01-13 17:01:19

ev3.speaker.say(text)可以边走边合成语音。这很有趣,但它非常慢。这在像您这样的控制循环中尤其明显。

我建议使用ev3.speaker.beep()。你甚至可以根据反射值选择频率,这样你就可以“听到”传感器“看到”的东西。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65660308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档