Files
pybricks-api/doc/main/pupdevices/motor.rst
T
Laurens Valk 4967b96ddd doc/main: Fix trailing whitespace.
For some reason this was not caught by CI.
2025-05-01 11:27:33 +02:00

248 lines
6.4 KiB
ReStructuredText

.. pybricks-requirements::
Motors with rotation sensors
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. _fig_pupmotors:
.. figure:: ../../main/diagrams/pupmotors.png
:width: 100 %
:alt: pupmotors
Powered Up motors with rotation sensors. The arrows indicate the default
positive direction. See the :mod:`hubs <pybricks.hubs>` module for default
directions of built-in motors.
.. blockimg:: pybricks_variables_set_motor
.. autoclass:: pybricks.pupdevices.Motor
:no-members:
.. rubric:: Measuring
.. blockimg:: pybricks_blockMotorMeasure_motor_angle
.. automethod:: pybricks.pupdevices.Motor.angle
.. blockimg:: pybricks_blockMotorResetAngle
.. automethod:: pybricks.pupdevices.Motor.reset_angle
.. blockimg:: pybricks_blockMotorMeasure_motor_speed
.. blockimg:: pybricks_blockMotorMeasure_motor_get_speed_average
.. automethod:: pybricks.pupdevices.Motor.speed
.. blockimg:: pybricks_blockMotorMeasure_motor_load
.. automethod:: pybricks.pupdevices.Motor.load
.. blockimg:: pybricks_blockMotorMeasure_motor_stalled
.. automethod:: pybricks.pupdevices.Motor.stalled
.. rubric:: Stopping
.. blockimg:: pybricks_blockMotorStop_Motor_coast
.. automethod:: pybricks.pupdevices.Motor.stop
.. blockimg:: pybricks_blockMotorStop_Motor_brake
.. automethod:: pybricks.pupdevices.Motor.brake
.. blockimg:: pybricks_blockMotorStop_Motor_hold
.. automethod:: pybricks.pupdevices.Motor.hold
.. rubric:: Running forever
.. blockimg:: pybricks_blockMotorRun_run
.. automethod:: pybricks.pupdevices.Motor.run
.. blockimg:: pybricks_blockMotorDuty_Motor
.. automethod:: pybricks.pupdevices.Motor.dc
.. rubric:: Running by a fixed amount
.. automethod:: pybricks.pupdevices.Motor.run_time
.. blockimg:: pybricks_blockMotorRun_run_angle
.. automethod:: pybricks.pupdevices.Motor.run_angle
.. blockimg:: pybricks_blockMotorRun_run_target
.. automethod:: pybricks.pupdevices.Motor.run_target
.. blockimg:: pybricks_blockMotorRun_run_until_stalled
.. automethod:: pybricks.pupdevices.Motor.run_until_stalled
.. blockimg:: pybricks_blockMotorTrack
.. automethod:: pybricks.pupdevices.Motor.track_target
.. automethod:: pybricks.pupdevices.Motor.done
.. _settings:
.. rubric:: Motor settings
.. blockimg:: pybricks_blockMotorConfigure_motor_max_voltage
.. automethod:: pybricks.pupdevices.Motor.settings
.. automethod:: pybricks.pupdevices.Motor.close
.. rubric:: Control settings
.. pybricks-requirements:: pybricks-common-control
.. blockimg:: pybricks_blockMotorConfigure_motor_max_speed
.. blockimg:: pybricks_blockMotorConfigure_motor_acceleration
.. blockimg:: pybricks_blockMotorConfigure_motor_max_torque
.. automethod:: pybricks.pupdevices.Motor.control.limits
.. pybricks-requirements:: pybricks-common-control
.. automethod:: pybricks.pupdevices.Motor.control.pid
.. pybricks-requirements:: pybricks-common-control
.. blockimg:: pybricks_blockMotorConfigure_motor_target_tolerances
.. automethod:: pybricks.pupdevices.Motor.control.target_tolerances
.. pybricks-requirements:: pybricks-common-control
.. automethod:: pybricks.pupdevices.Motor.control.stall_tolerances
.. pybricks-requirements:: pybricks-common-control
.. 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.
.. versionchanged:: 3.2
The :meth:`done`, :meth:`stalled` and :meth:`load` methods have been
moved.
.. pybricks-requirements:: pybricks-common-control
.. automethod:: pybricks.pupdevices.Motor.model.state
.. pybricks-requirements:: pybricks-common-control
.. automethod:: pybricks.pupdevices.Motor.model.settings
Initialization examples
-----------------------
Making the motor move back and forth
*******************************************************
.. literalinclude::
../../../examples/pup/motor/motor_init_basic.py
Initializing multiple motors
*******************************************************
.. literalinclude::
../../../examples/pup/motor/motor_init_multiple.py
Setting the positive direction as counterclockwise
*******************************************************
.. literalinclude::
../../../examples/pup/motor/motor_init_direction.py
Using gears
*******************************************************
.. literalinclude::
../../../examples/pup/motor/motor_init_gears.py
Measurement examples
-----------------------
Measuring the angle and speed
*******************************************************
.. literalinclude::
../../../examples/pup/motor/motor_measure.py
Resetting the measured angle
*******************************************************
.. literalinclude::
../../../examples/pup/motor/motor_reset_angle.py
Getting the absolute angle
*******************************************************
.. literalinclude::
../../../examples/pup/motor/motor_absolute.py
Movement examples
-----------------------
Basic usage of all run methods
*******************************************************
.. literalinclude::
../../../examples/pup/motor/motor_action_basic.py
Stopping ongoing movements in different ways
*******************************************************
.. literalinclude::
../../../examples/pup/motor/motor_stop.py
Using the ``then`` argument to change how a run command stops
*************************************************************
.. literalinclude::
../../../examples/pup/motor/motor_action_then.py
Stall examples
-----------------------
Running a motor until a mechanical endpoint
*******************************************************
.. literalinclude::
../../../examples/pup/motor/motor_until_stalled.py
Centering a steering mechanism
*******************************************************
.. literalinclude::
../../../examples/pup/motor/motor_until_stalled_center.py
Parallel movement examples
--------------------------
Using the ``wait`` argument to run motors in parallel
*********************************************************
.. literalinclude::
../../../examples/pup/motor/motor_action_wait.py
Waiting for two parallel actions to complete
*******************************************************
.. literalinclude::
../../../examples/pup/motor/motor_action_wait_advanced.py