EV3 MicroPython 指南

EV3 MicroPython 指南 > PYBRICKS 模块 > EV3 设备

EV3 设备

乐高® MINDSTORMS® EV3 电机和传感器。

1.电机

EV3 设备

图 17 EV3 兼容电机。箭头指示默认的正方向。

class Motor(portpositive_direction=Direction.CLOCKWISEgears=None)

用于控制带有内置旋转传感器的电机的通用类。

参数:
  • port (Port) – 电机所连接的端口。
  • positive_direction 方向 )——当您给出正速度值或角度时,电机应该转向哪个方向。
  • 齿轮  列表 )–

    连接到电机的齿轮列表。

    例如:[12, 36] 表示具有 12 齿和 36 齿齿轮的齿轮系。使用多个齿轮系的列表,例如 [[12, 36], [20, 16, 40]]。

    指定齿轮系时,所有电机命令和设置都会自动调整,以考虑生成的齿轮比。电机方向因此保持不变。

1.1 测量

speed()

获取电机的速度。

返回: 电机转速。
返回类型: 转速:deg/s

angle()

获取电机的旋转角度。

返回: 电机角度。
返回类型: 角度:度

reset_angle(angle)

将电机的累积旋转角度设置为所需值。

参数: angle (angle: deg) – 角度应重置为的值。

1.2 停止

stop()

停止电机并让它自由旋转。

电机因摩擦而逐渐停止。

brake()

被动制动电机。

电机因摩擦以及电机仍在运动时产生的电压而停止。

hold()

停止电机并主动将其保持在当前角度。

1.3 动作

run(speed)

以恒定速度运行电机。

电机加速到给定的速度并继续以该速度运行,直到您发出新命令。

参数: 速度 ( 转速:度/秒 )——电机的速度。

run_time(speedtimetden=Stop.HOLDwait=True)

在给定的时间内以恒定速度运行电机。

电机加速到给定的速度,保持以这个速度运行,然后减速。总机动恰好持续给定的时间 。

参数:
  • 速度 ( 转速:度/秒 )——电机的速度。
  • 时间 ( 时间:毫秒 )——机动的持续时间。
  • 然后  停止 )——停下来后该怎么办。
  • wait (bool) – 等待作完成,然后再继续程序的其余部分。

run_angle(speedrotation_angletden=Stop.HOLDwait=True)

以给定角度以恒定速度运行电机。

参数:
  • 速度 ( 转速:度/秒 )——电机的速度。
  • rotation_angle( 角度:度 )——电机应旋转的角度。
  • 然后  停止 )——停下来后该怎么办。
  • wait (bool) – 等待作完成,然后再继续程序的其余部分。

run_target(speedtarget_angletden=Stop.HOLDwait=True)

以恒定速度向给定目标角度运行电机。

旋转方向是根据目标角度自动选择的。 速度是正的还是负的,这确实很重要。

Parameters:  参数:
  • 速度 ( 转速:度/秒 )——电机的速度。
  • target_angle( 角度:度 )——电机应旋转到的角度。
  • 然后  停止 )——停下来后该怎么办。
  • wait (bool) – 等待电机到达目标,然后再继续程序的其余部分。

run_until_stalled(speedtden=Stop.COASTduty_limit=None)

以恒定速度运行电机直至熄火。

参数:
  • 速度 ( 转速:度/秒 )——电机的速度。
  • 然后  停止 )——停下来后该怎么办。
  • duty_limit( 百分比:%)——此命令期间的扭矩限制。这对于避免将全部电机扭矩施加到齿轮或杠杆机构很有用。
返回:

电机熄火的角度。

返回类型:

角度:度

dc(duty)

在给定的占空比(也称为“功率”)下旋转电机。

此方法可让您像使用简单的直流电机一样使用电机。

参数: duty (percentage: %) – 占空比(-100.0 到 100)。

1.4 高级运动控制

track_target(target_angle)

跟踪目标角度。这类似于 run_target(), 但跳过了通常的平滑加速度:它将尽可能快地移动到目标角度。如果要连续更改目标角度,此方法非常有用。

参数: target_angle( 角度:度 )——电机应旋转到的目标角度。

control

电机采用 PID 控制,精确跟踪速度和 angle 目标。您可以通过 电机的控制属性。有关可用方法的概述,请参阅 Control 类 。

2.触摸传感器

EV3 设备

class TouchSensor(port)

乐高® MINDSTORMS® EV3 触摸传感器。

Parameters:  参数: port (Port) – 传感器连接的端口。

pressed()

检查传感器是否被按下。

返回: 如果按下传感器,则为 True,如果未按下传感器,则为 False。
返回类型: 布尔语

3.颜色传感器

EV3 设备

class ColorSensor(port)

乐高® MINDSTORMS® EV3 颜色传感器。

Parameters:  参数: port (Port) – 传感器连接的端口。

color()

测量曲面的颜色。

返回: Color.BLACK、Color.BLUR、Color.GREEN、Color.YELLOW、Color.RED、Color.WHITE、Color.BROWN 或 None。
返回类型: Color, 如果未检测到颜色,则为 None。

ambient()

测量环境光强度。

返回: 环境光强度,范围从 0(暗)到 100(亮)。
返回类型: 百分比:%

reflection()

使用红光测量表面的反射。

返回: 反射,范围从 0(无反射)到 100(高反射)。
返回类型: 百分比:%

rgb()

使用红色、绿色和蓝色光来测量表面的反射。

返回: 红光、绿光和蓝光的反射元组,每个反射的范围从 0.0(无反射)到 100.0(高反射)。
返回类型: ( 百分比:%, 百分比:%, 百分比:%)

4.红外传感器和信标

EV3 设备

class InfraredSensor(port)

乐高® MINDSTORMS® EV3 红外传感器和信标。

参数: port (Port) – 传感器连接的端口。

distance()

使用红外光测量传感器与物体之间的相对距离。

返回: 相对距离范围从 0(最近)到 100(最远)。
返回类型: 相对距离:%

beacon(channel)

测量遥控器和红外传感器之间的相对距离和角度。

参数: channel (int) – 遥控器的频道号。
返回: 遥控器和红外传感器之间的相对距离(0 到 100)和近似角度(-75 到 75 度)的元组。
返回类型: ( 相对距离:%, 角度:度 )或( 无 , 无 )如果未检测到遥控器。

buttons(channel)

检查按下了红外遥控器上的哪些按钮。

此方法最多可以同时检测两个按钮。如果您按更多按钮,您可能无法获得有用的数据。

参数: channel (int) – 遥控器的频道号。
返回: 所选频道遥控器上按下的按钮列表。
返回类型: 按钮列表

keypad()

检查按下了红外遥控器上的哪些按钮。

该方法可以独立检测所有 4 个向上/向下按钮,但无法检测信标按钮。

此方法仅适用于通道 1 中的遥控器。

返回: 所选频道遥控器上按下的按钮列表。
返回类型: 按钮列表

5.超声波传感器

EV3 设备

class UltrasonicSensor(port)

乐高® MINDSTORMS® EV3 超声波传感器。

参数: port (Port) – 传感器连接的端口。

distance(silent=False)

使用超声波测量传感器与物体之间的距离。

参数: silent (bool) – 选择 True 在测量距离后关闭传感器。这减少了对其他超声波传感器的干扰。如果过于频繁地执行此作,传感器可能会冻结。如果发生这种情况,请拔下插头并重新插入。
返回: 距离。
返回类型: 距离:毫米

presence()

通过检测超声波来检查是否存在其他超声波传感器。

如果另一个超声波传感器在静音模式下运行,则只能在测量时检测到该传感器的存在。

返回: 如果检测到超声波,则为 true, 如果不是,则为 False。
返回类型: 布尔语

6.陀螺仪传感器

EV3 设备

class GyroSensor(portpositive_direction=Direction.CLOCKWISE)

乐高® MINDSTORMS® EV3 陀螺仪传感器。

参数:
  • port (Port) – 传感器连接的端口。
  • positive_direction 方向 )——查看传感器顶部的红点时的正旋转方向。

speed()

获取传感器的速度(角速度)。

返回: 传感器角速度。
返回类型: 转速:deg/s

angle()

获取传感器的累积角度。

返回: 旋转角度。
返回类型: 角度:度

如果使用 angle() 方法,则不能使用 speed() 方法。这样做会在每次读取速度时将传感器角度重置为零。

reset_angle(angle)

将传感器的旋转角度设置为所需值。

参数: angle (angle: deg) – 角度应重置为的值。