EV3 MicroPython 指南

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

NXT 设备

将 LEGO® MINDSTORMS® NXT 电机和传感器与 EV3 积木一起使用。

1.NXT 电机

该电机的工作原理就像乐高 MINDSTORMS EV3 大型电机一样。您可以使用 Motor 类在程序中使用它。

2.NXT 触摸传感器

NXT 设备

class TouchSensor(port)

LEGO® MINDSTORMS® NXT 触摸传感器。

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

pressed()

检查传感器是否被按下。

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

3.NXT 光传感器

NXT 设备

class LightSensor(port)

LEGO® MINDSTORMS® NXT 颜色传感器。

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

ambient()

测量环境光强度。

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

reflection()

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

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

4.NXT 颜色传感器

NXT 设备

class ColorSensor(port)

LEGO® MINDSTORMS® NXT 颜色传感器。

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

color()

测量曲面的颜色。

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

ambient()

测量环境光强度。

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

reflection()

测量表面的反射。

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

rgb()

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

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

内置灯

该传感器具有内置灯。您可以将其设为红色、绿色、蓝色或将其关闭。

light.on(color)

以指定颜色打开灯光。

参数: color (Color) – 光的颜色。如果选择 “无” 或不可用的颜色,则指示灯将关闭。

light.off()

关灯。

5.NXT 超声波传感器

NXT 设备

class UltrasonicSensor(port)

LEGO® MINDSTORMS® NXT 超声波传感器。

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

distance()

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

返回: 距离。
返回类型: 距离:毫米

6.NXT 声音传感器

NXT 设备

class SoundSensor(port)

LEGO® MINDSTORMS® NXT 声音传感器。

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

intensity(audible_only=True)

测量环境声音强度(响度)。

参数: audible_only (bool) – 仅检测可听见的声音。这试图过滤掉人耳听不到的频率。
返回: 声强。
返回类型: 百分比:%

7.NXT 温度传感器

NXT 设备

class TemperatureSensor(port)

LEGO® MINDSTORMS® NXT 温度传感器。

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

temperature()

测量温度。

返回: 测量温度。
返回类型: 温度:°C

8.NXT 电能表

NXT 设备

class EnergyMeter(port)

乐高® MINDSTORMS® 教育 NXT 能量计。

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

storage()

获取电池中存储的总可用能量。

返回: 剩余储存的能量。
返回类型: 能量:J

input()

测量电能表输入(底部)侧的电信号。它测量施加在其上的电压和通过它的电流。这两个值的乘积就是功率。该功率值是存储能量增加的速率。该电力由能源提供,例如提供的太阳能电池板或外部驱动电机。

返回: 在输入端口测量的电压、电流和功率。
返回类型: ( 电压:mV, 电流:mA, 功率:mW)

output()

测量电能表输出(顶部)侧的电信号。它测量施加到外部负载的电压和流向其的电流。这两个值的乘积就是功率。该功率值是存储能量减少的速率。该功率由负载消耗,例如灯或电机。

返回: 在输出端口测量的电压、电流和功率。
返回类型: ( 电压:mV, 电流:mA, 功率:mW)

9.游标适配器

class VernierAdapter(portconversion=None)

乐高® MINDSTORMS® 教育 NXT/EV3 游标传感器适配器。

参数:
  • port (Port) – 传感器连接的端口。
  • conversion (callable) – 格式 conversion() 的函数。此功能用于将原始模拟电压转换为传感器特定的输出值。每个游标传感器都有自己的转换功能。下面给出的示例演示了表面温度传感器的转换。

voltage()

测量原始模拟传感器电压。

返回: 模拟电压。
返回类型: 电压:mV

conversion(voltage)

将原始电压 (mV) 转换为传感器值。

如果您之前没有提供转换功能,则不会应用转换。

参数: 电压 ( 电压:mV)——模拟传感器电压
返回: 转换后的传感器值。
返回类型: float 

value()

测量传感器电压 () ,然后应用 conversion() 来给出传感器值。

Returns:  返回: 转换后的传感器值。
Return type:  返回类型: float


示例:使用表面温度传感器。

#!/usr/bin/env pybricks-micropython
from pybricks.parameters import Port
from pybricks.nxtdevices import VernierAdapter

from math import log

# Conversion formula for Surface Temperature Sensor
def convert_raw_to_temperature(voltage):

    # Convert the raw voltage to the NTC resistance
    # according to the Vernier Adapter EV3 block.
    counts = voltage/5000*4096
    ntc = 15000*(counts)/(4130-counts)

    # Handle log(0) safely: make sure that ntc value is positive.
    if ntc <= 0:
        ntc = 1

    # Apply Steinhart-Hart equation as given in the sensor documentation.
    K0 = 1.02119e-3
    K1 = 2.22468e-4
    K2 = 1.33342e-7
    return 1/(K0 + K1*log(ntc) + K2*log(ntc)**3)

# Initialize the adapter on port 1
thermometer = VernierAdapter(Port.S1, convert_raw_to_temperature)

# Get the measured value and print it
temp = thermometer.value()
print(temp)