mirror of
https://github.com/pybricks/pybricks-api.git
synced 2026-09-11 09:05:07 +00:00
pybricks.ev3devices: Re-enable.
Also split out to separate class files like we did for pupdevices. Also make various EV3 and NXT sensor methods awaitable.
This commit is contained in:
@@ -192,11 +192,9 @@ htmlhelp_basename = "Pybricksdoc"
|
|||||||
|
|
||||||
|
|
||||||
exclude_patterns = [
|
exclude_patterns = [
|
||||||
"ev3devices.rst",
|
|
||||||
"hubs/ev3brick.rst",
|
"hubs/ev3brick.rst",
|
||||||
"media.rst",
|
"media.rst",
|
||||||
"messaging.rst",
|
"messaging.rst",
|
||||||
"nxtdevices.rst",
|
|
||||||
"tools/datalog.rst",
|
"tools/datalog.rst",
|
||||||
"*.rst.txt",
|
"*.rst.txt",
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,134 +0,0 @@
|
|||||||
:mod:`ev3devices <pybricks.ev3devices>` -- EV3 devices
|
|
||||||
======================================================
|
|
||||||
|
|
||||||
.. automodule:: pybricks.ev3devices
|
|
||||||
:no-members:
|
|
||||||
|
|
||||||
Motors
|
|
||||||
^^^^^^^^^^^^
|
|
||||||
|
|
||||||
.. _fig_ev3motors:
|
|
||||||
|
|
||||||
.. figure:: ../main/diagrams/ev3motors.png
|
|
||||||
:width: 100 %
|
|
||||||
|
|
||||||
EV3-compatible motors. The arrows indicate the default positive direction.
|
|
||||||
|
|
||||||
.. autoclass:: pybricks.ev3devices.Motor
|
|
||||||
:noindex:
|
|
||||||
:no-members:
|
|
||||||
|
|
||||||
.. rubric:: Measuring
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.Motor.angle
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.Motor.reset_angle
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.Motor.speed
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.Motor.load
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.Motor.stalled
|
|
||||||
|
|
||||||
.. rubric:: Stopping
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.Motor.stop
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.Motor.brake
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.Motor.hold
|
|
||||||
|
|
||||||
.. rubric:: Running forever
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.Motor.run
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.Motor.dc
|
|
||||||
|
|
||||||
.. rubric:: Running by a fixed amount
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.Motor.run_time
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.Motor.run_angle
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.Motor.run_target
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.Motor.track_target
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.Motor.run_until_stalled
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.Motor.done
|
|
||||||
|
|
||||||
.. rubric:: Motor settings
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.Motor.settings
|
|
||||||
|
|
||||||
.. rubric:: Control settings
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices::Motor.control.limits
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices::Motor.control.pid
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices::Motor.control.target_tolerances
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices::Motor.control.stall_tolerances
|
|
||||||
|
|
||||||
.. attribute:: control.scale
|
|
||||||
|
|
||||||
Number of degrees that the motor turns to complete one degree at the
|
|
||||||
output of the gear train. This is the gear ratio determined from the
|
|
||||||
``gears`` argument when initializing the motor.
|
|
||||||
|
|
||||||
Touch Sensor
|
|
||||||
^^^^^^^^^^^^
|
|
||||||
|
|
||||||
.. figure:: ../main/cad/output/ev3device-touch.png
|
|
||||||
:width: 18 %
|
|
||||||
|
|
||||||
.. autoclass:: pybricks.ev3devices.TouchSensor
|
|
||||||
|
|
||||||
Color Sensor
|
|
||||||
^^^^^^^^^^^^
|
|
||||||
|
|
||||||
.. figure:: ../main/cad/output/ev3device-color.png
|
|
||||||
:width: 18 %
|
|
||||||
|
|
||||||
.. autoclass:: pybricks.ev3devices.ColorSensor
|
|
||||||
|
|
||||||
Infrared Sensor and Beacon
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
Each method of this class puts the sensor in a different *mode*. Switching
|
|
||||||
modes takes about one second on this sensor. To make sure that your program
|
|
||||||
runs quickly, use only of these methods in your program.
|
|
||||||
|
|
||||||
.. figure:: ../main/cad/output/ev3device-infrared.png
|
|
||||||
:width: 60 %
|
|
||||||
|
|
||||||
.. autoclass:: pybricks.ev3devices.InfraredSensor
|
|
||||||
|
|
||||||
Ultrasonic Sensor
|
|
||||||
^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
.. figure:: ../main/cad/output/ev3device-ultrasonic.png
|
|
||||||
:width: 22 %
|
|
||||||
|
|
||||||
.. autoclass:: pybricks.ev3devices.UltrasonicSensor
|
|
||||||
|
|
||||||
Gyroscopic Sensor
|
|
||||||
^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
.. figure:: ../main/cad/output/ev3device-gyro.png
|
|
||||||
:width: 18 %
|
|
||||||
|
|
||||||
.. autoclass:: pybricks.ev3devices.GyroSensor
|
|
||||||
:no-members:
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.GyroSensor.speed
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.GyroSensor.angle
|
|
||||||
|
|
||||||
If you use the :meth:`.angle` method, you cannot use the
|
|
||||||
:meth:`.speed` method in the same program. Doing so would reset the
|
|
||||||
sensor angle to zero every time you read the speed.
|
|
||||||
|
|
||||||
.. automethod:: pybricks.ev3devices.GyroSensor.reset_angle
|
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
.. pybricks-requirements:: ev3
|
||||||
|
|
||||||
|
Color Sensor
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/ev3device-color.png
|
||||||
|
:width: 18 %
|
||||||
|
|
||||||
|
.. autoclass:: pybricks.ev3devices.ColorSensor
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
.. pybricks-requirements:: ev3
|
||||||
|
|
||||||
|
Gyroscopic Sensor
|
||||||
|
^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/ev3device-gyro.png
|
||||||
|
:width: 18 %
|
||||||
|
|
||||||
|
.. autoclass:: pybricks.ev3devices.GyroSensor
|
||||||
|
:no-members:
|
||||||
|
|
||||||
|
.. automethod:: pybricks.ev3devices.GyroSensor.speed
|
||||||
|
|
||||||
|
.. automethod:: pybricks.ev3devices.GyroSensor.angle
|
||||||
|
|
||||||
|
.. automethod:: pybricks.ev3devices.GyroSensor.reset_angle
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
.. pybricks-requirements:: ev3
|
||||||
|
|
||||||
|
:mod:`ev3devices <pybricks.ev3devices>` -- EV3 motors and sensors
|
||||||
|
=================================================================
|
||||||
|
|
||||||
|
.. automodule:: pybricks.ev3devices
|
||||||
|
:no-members:
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
touchsensor
|
||||||
|
colorsensor
|
||||||
|
infraredsensor
|
||||||
|
ultrasonicsensor
|
||||||
|
gyrosensor
|
||||||
|
|
||||||
|
.. pybricks-classlink:: Motor ../pupdevices/motor
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/ev3device-motors.png
|
||||||
|
:width: 100 %
|
||||||
|
:target: ../pupdevices/motor.html
|
||||||
|
|
||||||
|
.. pybricks-classlink:: TouchSensor
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/ev3device-touch.png
|
||||||
|
:width: 18 %
|
||||||
|
:target: touchsensor.html
|
||||||
|
|
||||||
|
.. pybricks-classlink:: ColorSensor
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/ev3device-color.png
|
||||||
|
:width: 18 %
|
||||||
|
:target: colorsensor.html
|
||||||
|
|
||||||
|
.. pybricks-classlink:: InfraredSensor
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/ev3device-infrared.png
|
||||||
|
:width: 60 %
|
||||||
|
:target: infraredsensor.html
|
||||||
|
|
||||||
|
.. pybricks-classlink:: UltrasonicSensor
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/ev3device-ultrasonic.png
|
||||||
|
:width: 22 %
|
||||||
|
:target: ultrasonicsensor.html
|
||||||
|
|
||||||
|
.. pybricks-classlink:: GyroSensor
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/ev3device-gyro.png
|
||||||
|
:width: 18 %
|
||||||
|
:target: gyrosensor.html
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
.. pybricks-requirements:: ev3
|
||||||
|
|
||||||
|
Infrared Sensor and Beacon
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Each method of this class puts the sensor in a different *mode*. Switching
|
||||||
|
modes takes about one second on this sensor. To make sure that your program
|
||||||
|
runs quickly, use only one of these methods in your program.
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/ev3device-infrared.png
|
||||||
|
:width: 60 %
|
||||||
|
|
||||||
|
.. autoclass:: pybricks.ev3devices.InfraredSensor
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
.. pybricks-requirements:: ev3
|
||||||
|
|
||||||
|
Touch Sensor
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/ev3device-touch.png
|
||||||
|
:width: 18 %
|
||||||
|
|
||||||
|
.. autoclass:: pybricks.ev3devices.TouchSensor
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
.. pybricks-requirements:: ev3
|
||||||
|
|
||||||
|
Ultrasonic Sensor
|
||||||
|
^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/ev3device-ultrasonic.png
|
||||||
|
:width: 22 %
|
||||||
|
|
||||||
|
.. autoclass:: pybricks.ev3devices.UltrasonicSensor
|
||||||
@@ -54,6 +54,18 @@ above to reveal this menu.
|
|||||||
:width: 70 %
|
:width: 70 %
|
||||||
:target: pupdevices/dcmotor.html
|
:target: pupdevices/dcmotor.html
|
||||||
|
|
||||||
|
.. rubric:: EV3 motors and sensors
|
||||||
|
|
||||||
|
.. figure:: ../main/cad/output/ev3device-all.png
|
||||||
|
:width: 100 %
|
||||||
|
:target: ev3devices/index.html
|
||||||
|
|
||||||
|
.. rubric:: NXT motors and sensors
|
||||||
|
|
||||||
|
.. figure:: ../main/cad/output/nxtdevice-all.png
|
||||||
|
:width: 100 %
|
||||||
|
:target: nxtdevices/index.html
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
:caption: Table of contents
|
:caption: Table of contents
|
||||||
@@ -66,6 +78,8 @@ above to reveal this menu.
|
|||||||
|
|
||||||
hubs/index
|
hubs/index
|
||||||
pupdevices/index
|
pupdevices/index
|
||||||
|
ev3devices/index
|
||||||
|
nxtdevices/index
|
||||||
iodevices/index
|
iodevices/index
|
||||||
parameters/index
|
parameters/index
|
||||||
tools/index
|
tools/index
|
||||||
|
|||||||
@@ -1,101 +0,0 @@
|
|||||||
:mod:`nxtdevices <pybricks.nxtdevices>` -- NXT devices
|
|
||||||
======================================================
|
|
||||||
|
|
||||||
.. automodule:: pybricks.nxtdevices
|
|
||||||
:no-members:
|
|
||||||
|
|
||||||
NXT Motor
|
|
||||||
^^^^^^^^^^^^^^^^
|
|
||||||
This motor works just like a LEGO MINDSTORMS EV3 Large Motor. You can use it in
|
|
||||||
your programs using the :mod:`Motor <.ev3devices>` class.
|
|
||||||
|
|
||||||
NXT Touch Sensor
|
|
||||||
^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
.. figure:: ../main/cad/output/nxtdevice-touch.png
|
|
||||||
:width: 18 %
|
|
||||||
|
|
||||||
.. autoclass:: pybricks.nxtdevices.TouchSensor
|
|
||||||
:no-members:
|
|
||||||
|
|
||||||
.. automethod:: pybricks.nxtdevices.TouchSensor.pressed
|
|
||||||
|
|
||||||
NXT Light Sensor
|
|
||||||
^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
.. figure:: ../main/cad/output/nxtdevice-light.png
|
|
||||||
:width: 18 %
|
|
||||||
|
|
||||||
.. autoclass:: pybricks.nxtdevices.LightSensor
|
|
||||||
|
|
||||||
NXT Color Sensor
|
|
||||||
^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
.. figure:: ../main/cad/output/nxtdevice-color.png
|
|
||||||
:width: 18 %
|
|
||||||
|
|
||||||
.. autoclass:: pybricks.nxtdevices.ColorSensor
|
|
||||||
:no-members:
|
|
||||||
|
|
||||||
.. automethod:: pybricks.nxtdevices.ColorSensor.color
|
|
||||||
|
|
||||||
.. automethod:: pybricks.nxtdevices.ColorSensor.ambient
|
|
||||||
|
|
||||||
.. automethod:: pybricks.nxtdevices.ColorSensor.reflection
|
|
||||||
|
|
||||||
.. automethod:: pybricks.nxtdevices.ColorSensor.rgb
|
|
||||||
|
|
||||||
.. rubric:: Advanced color sensing
|
|
||||||
|
|
||||||
.. automethod:: pybricks.nxtdevices.ColorSensor.hsv
|
|
||||||
|
|
||||||
.. automethod:: pybricks.nxtdevices.ColorSensor.detectable_colors
|
|
||||||
|
|
||||||
.. rubric:: Built-in light
|
|
||||||
|
|
||||||
This sensor has a built-in light. You can make it red, green, blue, or turn
|
|
||||||
it off.
|
|
||||||
|
|
||||||
.. automethod:: pybricks.nxtdevices::ColorSensor.light.on
|
|
||||||
|
|
||||||
.. automethod:: pybricks.nxtdevices::ColorSensor.light.off
|
|
||||||
|
|
||||||
NXT Ultrasonic Sensor
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
.. figure:: ../main/cad/output/nxtdevice-ultrasonic.png
|
|
||||||
:width: 24 %
|
|
||||||
|
|
||||||
.. autoclass:: pybricks.nxtdevices.UltrasonicSensor
|
|
||||||
|
|
||||||
NXT Sound Sensor
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
.. figure:: ../main/cad/output/nxtdevice-sound.png
|
|
||||||
:width: 18 %
|
|
||||||
|
|
||||||
.. autoclass:: pybricks.nxtdevices.SoundSensor
|
|
||||||
|
|
||||||
NXT Temperature Sensor
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
.. figure:: ../main/cad/output/nxtdevice-temperature.png
|
|
||||||
:width: 32 %
|
|
||||||
|
|
||||||
.. autoclass:: pybricks.nxtdevices.TemperatureSensor
|
|
||||||
|
|
||||||
NXT Energy Meter
|
|
||||||
^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
.. figure:: ../main/cad/output/nxtdevice-energy.png
|
|
||||||
:width: 30 %
|
|
||||||
|
|
||||||
.. autoclass:: pybricks.nxtdevices.EnergyMeter
|
|
||||||
|
|
||||||
Vernier Adapter
|
|
||||||
^^^^^^^^^^^^^^^^^
|
|
||||||
.. autoclass:: pybricks.nxtdevices.VernierAdapter
|
|
||||||
|
|
||||||
**Example: Using the Surface Temperature Sensor.**
|
|
||||||
|
|
||||||
.. literalinclude:: ../../examples/ev3/vernier_surface_temperature/main.py
|
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
.. pybricks-requirements:: ev3
|
||||||
|
|
||||||
|
NXT Color Sensor
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/nxtdevice-color.png
|
||||||
|
:width: 18 %
|
||||||
|
|
||||||
|
.. autoclass:: pybricks.nxtdevices.ColorSensor
|
||||||
|
:no-members:
|
||||||
|
|
||||||
|
.. automethod:: pybricks.nxtdevices.ColorSensor.color
|
||||||
|
|
||||||
|
.. automethod:: pybricks.nxtdevices.ColorSensor.ambient
|
||||||
|
|
||||||
|
.. automethod:: pybricks.nxtdevices.ColorSensor.reflection
|
||||||
|
|
||||||
|
.. automethod:: pybricks.nxtdevices.ColorSensor.rgb
|
||||||
|
|
||||||
|
.. rubric:: Advanced color sensing
|
||||||
|
|
||||||
|
.. automethod:: pybricks.nxtdevices.ColorSensor.hsv
|
||||||
|
|
||||||
|
.. automethod:: pybricks.nxtdevices.ColorSensor.detectable_colors
|
||||||
|
|
||||||
|
.. rubric:: Built-in light
|
||||||
|
|
||||||
|
This sensor has a built-in light. You can make it red, green, blue, or turn
|
||||||
|
it off.
|
||||||
|
|
||||||
|
.. automethod:: pybricks.nxtdevices::ColorSensor.light.on
|
||||||
|
|
||||||
|
.. automethod:: pybricks.nxtdevices::ColorSensor.light.off
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
.. pybricks-requirements:: ev3
|
||||||
|
|
||||||
|
NXT Energy Meter
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/nxtdevice-energy.png
|
||||||
|
:width: 30 %
|
||||||
|
|
||||||
|
.. autoclass:: pybricks.nxtdevices.EnergyMeter
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
.. pybricks-requirements:: ev3
|
||||||
|
|
||||||
|
:mod:`nxtdevices <pybricks.nxtdevices>` -- NXT motors and sensors
|
||||||
|
=================================================================
|
||||||
|
|
||||||
|
.. automodule:: pybricks.nxtdevices
|
||||||
|
:no-members:
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
touchsensor
|
||||||
|
lightsensor
|
||||||
|
colorsensor
|
||||||
|
ultrasonicsensor
|
||||||
|
soundsensor
|
||||||
|
temperaturesensor
|
||||||
|
energymeter
|
||||||
|
vernieradapter
|
||||||
|
|
||||||
|
.. pybricks-classlink:: Motor ../pupdevices/motor
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/ev3device-motors.png
|
||||||
|
:width: 100 %
|
||||||
|
:target: ../pupdevices/motor.html
|
||||||
|
|
||||||
|
.. pybricks-classlink:: TouchSensor
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/nxtdevice-touch.png
|
||||||
|
:width: 18 %
|
||||||
|
:target: touchsensor.html
|
||||||
|
|
||||||
|
.. pybricks-classlink:: LightSensor
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/nxtdevice-light.png
|
||||||
|
:width: 18 %
|
||||||
|
:target: lightsensor.html
|
||||||
|
|
||||||
|
.. pybricks-classlink:: ColorSensor
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/nxtdevice-color.png
|
||||||
|
:width: 18 %
|
||||||
|
:target: colorsensor.html
|
||||||
|
|
||||||
|
.. pybricks-classlink:: UltrasonicSensor
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/nxtdevice-ultrasonic.png
|
||||||
|
:width: 24 %
|
||||||
|
:target: ultrasonicsensor.html
|
||||||
|
|
||||||
|
.. pybricks-classlink:: SoundSensor
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/nxtdevice-sound.png
|
||||||
|
:width: 18 %
|
||||||
|
:target: soundsensor.html
|
||||||
|
|
||||||
|
.. pybricks-classlink:: TemperatureSensor
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/nxtdevice-temperature.png
|
||||||
|
:width: 32 %
|
||||||
|
:target: temperaturesensor.html
|
||||||
|
|
||||||
|
.. pybricks-classlink:: EnergyMeter
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/nxtdevice-energy.png
|
||||||
|
:width: 30 %
|
||||||
|
:target: energymeter.html
|
||||||
|
|
||||||
|
.. pybricks-classlink:: VernierAdapter
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
.. pybricks-requirements:: ev3
|
||||||
|
|
||||||
|
NXT Light Sensor
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/nxtdevice-light.png
|
||||||
|
:width: 18 %
|
||||||
|
|
||||||
|
.. autoclass:: pybricks.nxtdevices.LightSensor
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
.. pybricks-requirements:: ev3
|
||||||
|
|
||||||
|
NXT Sound Sensor
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/nxtdevice-sound.png
|
||||||
|
:width: 18 %
|
||||||
|
|
||||||
|
.. autoclass:: pybricks.nxtdevices.SoundSensor
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
.. pybricks-requirements:: ev3
|
||||||
|
|
||||||
|
NXT Temperature Sensor
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/nxtdevice-temperature.png
|
||||||
|
:width: 32 %
|
||||||
|
|
||||||
|
.. autoclass:: pybricks.nxtdevices.TemperatureSensor
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
.. pybricks-requirements:: ev3
|
||||||
|
|
||||||
|
NXT Touch Sensor
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/nxtdevice-touch.png
|
||||||
|
:width: 18 %
|
||||||
|
|
||||||
|
.. autoclass:: pybricks.nxtdevices.TouchSensor
|
||||||
|
:no-members:
|
||||||
|
|
||||||
|
.. automethod:: pybricks.nxtdevices.TouchSensor.pressed
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
.. pybricks-requirements:: ev3
|
||||||
|
|
||||||
|
NXT Ultrasonic Sensor
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. figure:: ../../main/cad/output/nxtdevice-ultrasonic.png
|
||||||
|
:width: 24 %
|
||||||
|
|
||||||
|
.. autoclass:: pybricks.nxtdevices.UltrasonicSensor
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
.. pybricks-requirements:: ev3
|
||||||
|
|
||||||
|
Vernier Adapter
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. autoclass:: pybricks.nxtdevices.VernierAdapter
|
||||||
|
|
||||||
|
Examples
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Using the Surface Temperature Sensor
|
||||||
|
************************************
|
||||||
|
|
||||||
|
.. literalinclude::
|
||||||
|
../../../examples/ev3/vernier_surface_temperature/main.py
|
||||||
@@ -38,6 +38,8 @@ if TYPE_CHECKING:
|
|||||||
|
|
||||||
class MaybeAwaitableTuple(Tuple[_T_co], Awaitable[Tuple[_T_co]]): ...
|
class MaybeAwaitableTuple(Tuple[_T_co], Awaitable[Tuple[_T_co]]): ...
|
||||||
|
|
||||||
|
class MaybeAwaitableSet(Set[_T_co], Awaitable[Set[_T_co]]): ...
|
||||||
|
|
||||||
class MaybeAwaitableColor(Color, Awaitable[Color]): ...
|
class MaybeAwaitableColor(Color, Awaitable[Color]): ...
|
||||||
|
|
||||||
class MaybeAwaitableBytes(bytes, Awaitable[bytes]): ...
|
class MaybeAwaitableBytes(bytes, Awaitable[bytes]): ...
|
||||||
|
|||||||
+33
-17
@@ -3,7 +3,9 @@
|
|||||||
|
|
||||||
"""LEGO® MINDSTORMS® EV3 motors and sensors."""
|
"""LEGO® MINDSTORMS® EV3 motors and sensors."""
|
||||||
|
|
||||||
from typing import Optional, Tuple, List, Set
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from typing import Optional, Tuple, List
|
||||||
|
|
||||||
from . import _common
|
from . import _common
|
||||||
from .parameters import (
|
from .parameters import (
|
||||||
@@ -13,6 +15,20 @@ from .parameters import (
|
|||||||
Port as _Port,
|
Port as _Port,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
from typing import (
|
||||||
|
TYPE_CHECKING,
|
||||||
|
)
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from ._common import (
|
||||||
|
MaybeAwaitableColor,
|
||||||
|
MaybeAwaitableBool,
|
||||||
|
MaybeAwaitableInt,
|
||||||
|
MaybeAwaitableSet,
|
||||||
|
MaybeAwaitableTuple,
|
||||||
|
)
|
||||||
|
from .parameters import Number, Port
|
||||||
|
|
||||||
|
|
||||||
class Motor(_common.Motor):
|
class Motor(_common.Motor):
|
||||||
"""LEGO® MINDSTORMS® EV3 Motor."""
|
"""LEGO® MINDSTORMS® EV3 Motor."""
|
||||||
@@ -49,7 +65,7 @@ class ColorSensor:
|
|||||||
port (Port): Port to which the sensor is connected.
|
port (Port): Port to which the sensor is connected.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def color(self) -> Optional[_Color]:
|
def color(self) -> MaybeAwaitableColor:
|
||||||
"""color() -> Color
|
"""color() -> Color
|
||||||
|
|
||||||
Measures the color of a surface.
|
Measures the color of a surface.
|
||||||
@@ -61,7 +77,7 @@ class ColorSensor:
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def ambient(self) -> int:
|
def ambient(self) -> MaybeAwaitableInt:
|
||||||
"""ambient() -> int: %
|
"""ambient() -> int: %
|
||||||
|
|
||||||
Measures the ambient light intensity.
|
Measures the ambient light intensity.
|
||||||
@@ -71,18 +87,18 @@ class ColorSensor:
|
|||||||
to 100% (bright).
|
to 100% (bright).
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def reflection(self) -> int:
|
def reflection(self) -> MaybeAwaitableInt:
|
||||||
"""reflection() -> int: %
|
"""reflection() -> int: %
|
||||||
|
|
||||||
Measures the reflection of a surface using a red light.
|
Measures how much a surface reflects the light emitted by the
|
||||||
|
sensor.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Reflection, ranging from 0% (no reflection) to
|
Measured reflection, ranging from 0% (no reflection) to
|
||||||
100% (high reflection).
|
100% (high reflection).
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def rgb(self) -> Tuple[int, int, int]:
|
def rgb(self) -> MaybeAwaitableTuple[int, int, int]:
|
||||||
"""rgb() -> Tuple[int, int, int]
|
"""rgb() -> Tuple[int, int, int]
|
||||||
|
|
||||||
Measures the reflection of a surface using a red, green, and then a
|
Measures the reflection of a surface using a red, green, and then a
|
||||||
@@ -105,7 +121,7 @@ class InfraredSensor:
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def distance(self) -> int:
|
def distance(self) -> MaybeAwaitableInt:
|
||||||
"""distance() -> int: %
|
"""distance() -> int: %
|
||||||
|
|
||||||
Measures the relative distance between the sensor and an object using
|
Measures the relative distance between the sensor and an object using
|
||||||
@@ -117,7 +133,7 @@ class InfraredSensor:
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def beacon(self, channel: int) -> Tuple[Optional[int], Optional[int]]:
|
def beacon(self, channel: int) -> MaybeAwaitableTuple[Optional[int], Optional[int]]:
|
||||||
"""
|
"""
|
||||||
beacon(channel) -> Tuple[int, int]
|
beacon(channel) -> Tuple[int, int]
|
||||||
beacon(channel) -> Tuple[None, None]
|
beacon(channel) -> Tuple[None, None]
|
||||||
@@ -134,7 +150,7 @@ class InfraredSensor:
|
|||||||
a tuple of (``None``, ``None``) if no remote is detected.
|
a tuple of (``None``, ``None``) if no remote is detected.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def buttons(self, channel: int) -> Set[_Button]:
|
def buttons(self, channel: int) -> MaybeAwaitableSet[_Button]:
|
||||||
"""buttons(channel) -> Set[Button]
|
"""buttons(channel) -> Set[Button]
|
||||||
|
|
||||||
Checks which buttons on the infrared remote are pressed.
|
Checks which buttons on the infrared remote are pressed.
|
||||||
@@ -146,12 +162,12 @@ class InfraredSensor:
|
|||||||
channel (int): Channel number of the remote.
|
channel (int): Channel number of the remote.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
List of pressed buttons on the remote on the selected channel.
|
Set of pressed buttons on the remote on the selected channel.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def keypad(self) -> List[_Button]:
|
def keypad(self) -> MaybeAwaitableSet[_Button]:
|
||||||
"""keypad() -> List[Button]
|
"""keypad() -> Set[Button]
|
||||||
|
|
||||||
Checks which buttons on the infrared remote are pressed.
|
Checks which buttons on the infrared remote are pressed.
|
||||||
|
|
||||||
@@ -161,7 +177,7 @@ class InfraredSensor:
|
|||||||
This method only works with the remote in channel 1.
|
This method only works with the remote in channel 1.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
List of pressed buttons.
|
Set of pressed buttons.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
@@ -220,7 +236,7 @@ class UltrasonicSensor:
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def distance(self, silent: bool = False) -> int:
|
def distance(self, silent: bool = False) -> MaybeAwaitableInt:
|
||||||
"""distance(silent=False) -> int: mm
|
"""distance(silent=False) -> int: mm
|
||||||
|
|
||||||
Measures the distance between the sensor and an object using
|
Measures the distance between the sensor and an object using
|
||||||
@@ -238,7 +254,7 @@ class UltrasonicSensor:
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def presence(self) -> bool:
|
def presence(self) -> MaybeAwaitableBool:
|
||||||
"""presence() -> bool
|
"""presence() -> bool
|
||||||
|
|
||||||
Checks for the presence of other ultrasonic sensors by detecting
|
Checks for the presence of other ultrasonic sensors by detecting
|
||||||
|
|||||||
Reference in New Issue
Block a user