Package com.tinkerforge
Class BrickStepper
- java.lang.Object
-
- com.tinkerforge.DeviceBase
-
- com.tinkerforge.Device
-
- com.tinkerforge.BrickStepper
-
public class BrickStepper extends Device
Drives one bipolar stepper motor with up to 38V and 2.5A per phase
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
BrickStepper.AllData
static interface
BrickStepper.AllDataListener
This listener is triggered periodically with the period that is set bysetAllDataPeriod(long)
.static interface
BrickStepper.NewStateListener
This listener is triggered whenever the Stepper Brick enters a new state.static interface
BrickStepper.PositionReachedListener
This listener is triggered when a position set bysetSteps(int)
orsetTargetPosition(int)
is reached.class
BrickStepper.Protocol1BrickletName
class
BrickStepper.SpeedRamping
class
BrickStepper.SPITFPBaudrateConfig
class
BrickStepper.SPITFPErrorCount
static interface
BrickStepper.UnderVoltageListener
This listener is triggered when the input voltage drops below the value set bysetMinimumVoltage(int)
.-
Nested classes/interfaces inherited from class com.tinkerforge.Device
Device.Identity
-
-
Field Summary
-
Constructor Summary
Constructors Constructor Description BrickStepper(java.lang.String uid, IPConnection ipcon)
Creates an object with the unique device ID \c uid.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAllDataListener(BrickStepper.AllDataListener listener)
Adds a AllData listener.void
addNewStateListener(BrickStepper.NewStateListener listener)
Adds a NewState listener.void
addPositionReachedListener(BrickStepper.PositionReachedListener listener)
Adds a PositionReached listener.void
addUnderVoltageListener(BrickStepper.UnderVoltageListener listener)
Adds a UnderVoltage listener.void
disable()
Disables the driver chip.void
disableStatusLED()
Disables the status LED.void
driveBackward()
Drives the stepper motor backward untildriveForward()
orstop()
is triggered.void
driveForward()
Drives the stepper motor forward untildriveBackward()
orstop()
is called.void
enable()
Enables the driver chip.void
enableStatusLED()
Enables the status LED.void
fullBrake()
Executes an active full brake.BrickStepper.AllData
getAllData()
Returns the following parameters: The current velocity, the current position, the remaining steps, the stack voltage, the external voltage and the current consumption of the stepper motor.long
getAllDataPeriod()
Returns the period as set bysetAllDataPeriod(long)
.short
getChipTemperature()
Returns the temperature as measured inside the microcontroller.int
getCurrentConsumption()
Returns the current consumption of the motor.int
getCurrentPosition()
Returns the current position of the stepper motor in steps.int
getCurrentVelocity()
Returns the *current* velocity of the stepper motor.int
getDecay()
Returns the decay mode as set bysetDecay(int)
.int
getExternalInputVoltage()
Returns the external input voltage.Device.Identity
getIdentity()
Returns the UID, the UID where the Brick is connected to, the position, the hardware and firmware version as well as the device identifier.int
getMaxVelocity()
Returns the velocity as set bysetMaxVelocity(int)
.int
getMinimumVoltage()
Returns the minimum voltage as set bysetMinimumVoltage(int)
.int
getMotorCurrent()
Returns the current as set bysetMotorCurrent(int)
.BrickStepper.Protocol1BrickletName
getProtocol1BrickletName(char port)
Returns the firmware and protocol version and the name of the Bricklet for a given port.int
getRemainingSteps()
Returns the remaining steps of the last call ofsetSteps(int)
.long
getSendTimeoutCount(short communicationMethod)
Returns the timeout count for the different communication methods.BrickStepper.SpeedRamping
getSpeedRamping()
Returns the acceleration and deacceleration as set bysetSpeedRamping(int, int)
.long
getSPITFPBaudrate(char brickletPort)
Returns the baudrate for a given Bricklet port, seesetSPITFPBaudrate(char, long)
.BrickStepper.SPITFPBaudrateConfig
getSPITFPBaudrateConfig()
Returns the baudrate config, seesetSPITFPBaudrateConfig(boolean, long)
.BrickStepper.SPITFPErrorCount
getSPITFPErrorCount(char brickletPort)
Returns the error count for the communication between Brick and Bricklet.int
getStackInputVoltage()
Returns the stack input voltage.short
getStepMode()
Returns the step mode as set bysetStepMode(short)
.int
getSteps()
Returns the last steps as set bysetSteps(int)
.int
getTargetPosition()
Returns the last target position as set bysetTargetPosition(int)
.long
getTimeBase()
Returns the time base as set bysetTimeBase(long)
.boolean
isEnabled()
Returns *true* if the driver chip is enabled, *false* otherwise.boolean
isStatusLEDEnabled()
Returns *true* if the status LED is enabled, *false* otherwise.boolean
isSyncRect()
Returns *true* if synchronous rectification is enabled, *false* otherwise.short[]
readBrickletPlugin(char port, short offset)
Reads 32 bytes of firmware from the bricklet attached at the given port.void
removeAllDataListener(BrickStepper.AllDataListener listener)
Removes a AllData listener.void
removeNewStateListener(BrickStepper.NewStateListener listener)
Removes a NewState listener.void
removePositionReachedListener(BrickStepper.PositionReachedListener listener)
Removes a PositionReached listener.void
removeUnderVoltageListener(BrickStepper.UnderVoltageListener listener)
Removes a UnderVoltage listener.void
reset()
Calling this function will reset the Brick.void
setAllDataPeriod(long period)
Sets the period with which theBrickStepper.AllDataListener
listener is triggered periodically.void
setCurrentPosition(int position)
Sets the current steps of the internal step counter.void
setDecay(int decay)
Sets the decay mode of the stepper motor.void
setMaxVelocity(int velocity)
Sets the maximum velocity of the stepper motor.void
setMinimumVoltage(int voltage)
Sets the minimum voltage, below which theBrickStepper.UnderVoltageListener
listener is triggered.void
setMotorCurrent(int current)
Sets the current with which the motor will be driven.void
setSpeedRamping(int acceleration, int deacceleration)
Sets the acceleration and deacceleration of the stepper motor.void
setSPITFPBaudrate(char brickletPort, long baudrate)
Sets the baudrate for a specific Bricklet port.void
setSPITFPBaudrateConfig(boolean enableDynamicBaudrate, long minimumDynamicBaudrate)
The SPITF protocol can be used with a dynamic baudrate.void
setStepMode(short mode)
Sets the step mode of the stepper motor.void
setSteps(int steps)
Sets the number of steps the stepper motor should run.void
setSyncRect(boolean syncRect)
Turns synchronous rectification on or off (*true* or *false*).void
setTargetPosition(int position)
Sets the target position of the stepper motor in steps.void
setTimeBase(long timeBase)
Sets the time base of the velocity and the acceleration of the stepper brick.void
stop()
Stops the stepper motor with the deacceleration as set bysetSpeedRamping(int, int)
.void
writeBrickletPlugin(char port, short offset, short[] chunk)
Writes 32 bytes of firmware to the bricklet attached at the given port.-
Methods inherited from class com.tinkerforge.DeviceBase
getAPIVersion, getResponseExpected, setResponseExpected, setResponseExpectedAll
-
-
-
-
Field Detail
-
DEVICE_IDENTIFIER
public static final int DEVICE_IDENTIFIER
- See Also:
- Constant Field Values
-
DEVICE_DISPLAY_NAME
public static final java.lang.String DEVICE_DISPLAY_NAME
- See Also:
- Constant Field Values
-
FUNCTION_SET_MAX_VELOCITY
public static final byte FUNCTION_SET_MAX_VELOCITY
- See Also:
- Constant Field Values
-
FUNCTION_GET_MAX_VELOCITY
public static final byte FUNCTION_GET_MAX_VELOCITY
- See Also:
- Constant Field Values
-
FUNCTION_GET_CURRENT_VELOCITY
public static final byte FUNCTION_GET_CURRENT_VELOCITY
- See Also:
- Constant Field Values
-
FUNCTION_SET_SPEED_RAMPING
public static final byte FUNCTION_SET_SPEED_RAMPING
- See Also:
- Constant Field Values
-
FUNCTION_GET_SPEED_RAMPING
public static final byte FUNCTION_GET_SPEED_RAMPING
- See Also:
- Constant Field Values
-
FUNCTION_FULL_BRAKE
public static final byte FUNCTION_FULL_BRAKE
- See Also:
- Constant Field Values
-
FUNCTION_SET_CURRENT_POSITION
public static final byte FUNCTION_SET_CURRENT_POSITION
- See Also:
- Constant Field Values
-
FUNCTION_GET_CURRENT_POSITION
public static final byte FUNCTION_GET_CURRENT_POSITION
- See Also:
- Constant Field Values
-
FUNCTION_SET_TARGET_POSITION
public static final byte FUNCTION_SET_TARGET_POSITION
- See Also:
- Constant Field Values
-
FUNCTION_GET_TARGET_POSITION
public static final byte FUNCTION_GET_TARGET_POSITION
- See Also:
- Constant Field Values
-
FUNCTION_SET_STEPS
public static final byte FUNCTION_SET_STEPS
- See Also:
- Constant Field Values
-
FUNCTION_GET_STEPS
public static final byte FUNCTION_GET_STEPS
- See Also:
- Constant Field Values
-
FUNCTION_GET_REMAINING_STEPS
public static final byte FUNCTION_GET_REMAINING_STEPS
- See Also:
- Constant Field Values
-
FUNCTION_SET_STEP_MODE
public static final byte FUNCTION_SET_STEP_MODE
- See Also:
- Constant Field Values
-
FUNCTION_GET_STEP_MODE
public static final byte FUNCTION_GET_STEP_MODE
- See Also:
- Constant Field Values
-
FUNCTION_DRIVE_FORWARD
public static final byte FUNCTION_DRIVE_FORWARD
- See Also:
- Constant Field Values
-
FUNCTION_DRIVE_BACKWARD
public static final byte FUNCTION_DRIVE_BACKWARD
- See Also:
- Constant Field Values
-
FUNCTION_STOP
public static final byte FUNCTION_STOP
- See Also:
- Constant Field Values
-
FUNCTION_GET_STACK_INPUT_VOLTAGE
public static final byte FUNCTION_GET_STACK_INPUT_VOLTAGE
- See Also:
- Constant Field Values
-
FUNCTION_GET_EXTERNAL_INPUT_VOLTAGE
public static final byte FUNCTION_GET_EXTERNAL_INPUT_VOLTAGE
- See Also:
- Constant Field Values
-
FUNCTION_GET_CURRENT_CONSUMPTION
public static final byte FUNCTION_GET_CURRENT_CONSUMPTION
- See Also:
- Constant Field Values
-
FUNCTION_SET_MOTOR_CURRENT
public static final byte FUNCTION_SET_MOTOR_CURRENT
- See Also:
- Constant Field Values
-
FUNCTION_GET_MOTOR_CURRENT
public static final byte FUNCTION_GET_MOTOR_CURRENT
- See Also:
- Constant Field Values
-
FUNCTION_ENABLE
public static final byte FUNCTION_ENABLE
- See Also:
- Constant Field Values
-
FUNCTION_DISABLE
public static final byte FUNCTION_DISABLE
- See Also:
- Constant Field Values
-
FUNCTION_IS_ENABLED
public static final byte FUNCTION_IS_ENABLED
- See Also:
- Constant Field Values
-
FUNCTION_SET_DECAY
public static final byte FUNCTION_SET_DECAY
- See Also:
- Constant Field Values
-
FUNCTION_GET_DECAY
public static final byte FUNCTION_GET_DECAY
- See Also:
- Constant Field Values
-
FUNCTION_SET_MINIMUM_VOLTAGE
public static final byte FUNCTION_SET_MINIMUM_VOLTAGE
- See Also:
- Constant Field Values
-
FUNCTION_GET_MINIMUM_VOLTAGE
public static final byte FUNCTION_GET_MINIMUM_VOLTAGE
- See Also:
- Constant Field Values
-
FUNCTION_SET_SYNC_RECT
public static final byte FUNCTION_SET_SYNC_RECT
- See Also:
- Constant Field Values
-
FUNCTION_IS_SYNC_RECT
public static final byte FUNCTION_IS_SYNC_RECT
- See Also:
- Constant Field Values
-
FUNCTION_SET_TIME_BASE
public static final byte FUNCTION_SET_TIME_BASE
- See Also:
- Constant Field Values
-
FUNCTION_GET_TIME_BASE
public static final byte FUNCTION_GET_TIME_BASE
- See Also:
- Constant Field Values
-
FUNCTION_GET_ALL_DATA
public static final byte FUNCTION_GET_ALL_DATA
- See Also:
- Constant Field Values
-
FUNCTION_SET_ALL_DATA_PERIOD
public static final byte FUNCTION_SET_ALL_DATA_PERIOD
- See Also:
- Constant Field Values
-
FUNCTION_GET_ALL_DATA_PERIOD
public static final byte FUNCTION_GET_ALL_DATA_PERIOD
- See Also:
- Constant Field Values
-
FUNCTION_SET_SPITFP_BAUDRATE_CONFIG
public static final byte FUNCTION_SET_SPITFP_BAUDRATE_CONFIG
- See Also:
- Constant Field Values
-
FUNCTION_GET_SPITFP_BAUDRATE_CONFIG
public static final byte FUNCTION_GET_SPITFP_BAUDRATE_CONFIG
- See Also:
- Constant Field Values
-
FUNCTION_GET_SEND_TIMEOUT_COUNT
public static final byte FUNCTION_GET_SEND_TIMEOUT_COUNT
- See Also:
- Constant Field Values
-
FUNCTION_SET_SPITFP_BAUDRATE
public static final byte FUNCTION_SET_SPITFP_BAUDRATE
- See Also:
- Constant Field Values
-
FUNCTION_GET_SPITFP_BAUDRATE
public static final byte FUNCTION_GET_SPITFP_BAUDRATE
- See Also:
- Constant Field Values
-
FUNCTION_GET_SPITFP_ERROR_COUNT
public static final byte FUNCTION_GET_SPITFP_ERROR_COUNT
- See Also:
- Constant Field Values
-
FUNCTION_ENABLE_STATUS_LED
public static final byte FUNCTION_ENABLE_STATUS_LED
- See Also:
- Constant Field Values
-
FUNCTION_DISABLE_STATUS_LED
public static final byte FUNCTION_DISABLE_STATUS_LED
- See Also:
- Constant Field Values
-
FUNCTION_IS_STATUS_LED_ENABLED
public static final byte FUNCTION_IS_STATUS_LED_ENABLED
- See Also:
- Constant Field Values
-
FUNCTION_GET_PROTOCOL1_BRICKLET_NAME
public static final byte FUNCTION_GET_PROTOCOL1_BRICKLET_NAME
- See Also:
- Constant Field Values
-
FUNCTION_GET_CHIP_TEMPERATURE
public static final byte FUNCTION_GET_CHIP_TEMPERATURE
- See Also:
- Constant Field Values
-
FUNCTION_RESET
public static final byte FUNCTION_RESET
- See Also:
- Constant Field Values
-
FUNCTION_WRITE_BRICKLET_PLUGIN
public static final byte FUNCTION_WRITE_BRICKLET_PLUGIN
- See Also:
- Constant Field Values
-
FUNCTION_READ_BRICKLET_PLUGIN
public static final byte FUNCTION_READ_BRICKLET_PLUGIN
- See Also:
- Constant Field Values
-
FUNCTION_GET_IDENTITY
public static final byte FUNCTION_GET_IDENTITY
- See Also:
- Constant Field Values
-
STEP_MODE_FULL_STEP
public static final short STEP_MODE_FULL_STEP
- See Also:
- Constant Field Values
-
STEP_MODE_HALF_STEP
public static final short STEP_MODE_HALF_STEP
- See Also:
- Constant Field Values
-
STEP_MODE_QUARTER_STEP
public static final short STEP_MODE_QUARTER_STEP
- See Also:
- Constant Field Values
-
STEP_MODE_EIGHTH_STEP
public static final short STEP_MODE_EIGHTH_STEP
- See Also:
- Constant Field Values
-
STATE_STOP
public static final short STATE_STOP
- See Also:
- Constant Field Values
-
STATE_ACCELERATION
public static final short STATE_ACCELERATION
- See Also:
- Constant Field Values
-
STATE_RUN
public static final short STATE_RUN
- See Also:
- Constant Field Values
-
STATE_DEACCELERATION
public static final short STATE_DEACCELERATION
- See Also:
- Constant Field Values
-
STATE_DIRECTION_CHANGE_TO_FORWARD
public static final short STATE_DIRECTION_CHANGE_TO_FORWARD
- See Also:
- Constant Field Values
-
STATE_DIRECTION_CHANGE_TO_BACKWARD
public static final short STATE_DIRECTION_CHANGE_TO_BACKWARD
- See Also:
- Constant Field Values
-
COMMUNICATION_METHOD_NONE
public static final short COMMUNICATION_METHOD_NONE
- See Also:
- Constant Field Values
-
COMMUNICATION_METHOD_USB
public static final short COMMUNICATION_METHOD_USB
- See Also:
- Constant Field Values
-
COMMUNICATION_METHOD_SPI_STACK
public static final short COMMUNICATION_METHOD_SPI_STACK
- See Also:
- Constant Field Values
-
COMMUNICATION_METHOD_CHIBI
public static final short COMMUNICATION_METHOD_CHIBI
- See Also:
- Constant Field Values
-
COMMUNICATION_METHOD_RS485
public static final short COMMUNICATION_METHOD_RS485
- See Also:
- Constant Field Values
-
COMMUNICATION_METHOD_WIFI
public static final short COMMUNICATION_METHOD_WIFI
- See Also:
- Constant Field Values
-
COMMUNICATION_METHOD_ETHERNET
public static final short COMMUNICATION_METHOD_ETHERNET
- See Also:
- Constant Field Values
-
COMMUNICATION_METHOD_WIFI_V2
public static final short COMMUNICATION_METHOD_WIFI_V2
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
BrickStepper
public BrickStepper(java.lang.String uid, IPConnection ipcon)
Creates an object with the unique device ID \c uid. and adds it to the IP Connection \c ipcon.
-
-
Method Detail
-
setMaxVelocity
public void setMaxVelocity(int velocity) throws TinkerforgeException
Sets the maximum velocity of the stepper motor. This function does *not* start the motor, it merely sets the maximum velocity the stepper motor is accelerated to. To get the motor running use eithersetTargetPosition(int)
,setSteps(int)
,driveForward()
ordriveBackward()
.- Throws:
TinkerforgeException
-
getMaxVelocity
public int getMaxVelocity() throws TinkerforgeException
Returns the velocity as set bysetMaxVelocity(int)
.- Throws:
TinkerforgeException
-
getCurrentVelocity
public int getCurrentVelocity() throws TinkerforgeException
Returns the *current* velocity of the stepper motor.- Throws:
TinkerforgeException
-
setSpeedRamping
public void setSpeedRamping(int acceleration, int deacceleration) throws TinkerforgeException
Sets the acceleration and deacceleration of the stepper motor. An acceleration of 1000 means, that every second the velocity is increased by 1000 *steps/s*. For example: If the current velocity is 0 and you want to accelerate to a velocity of 8000 *steps/s* in 10 seconds, you should set an acceleration of 800 *steps/s²*. An acceleration/deacceleration of 0 means instantaneous acceleration/deacceleration (not recommended)- Throws:
TinkerforgeException
-
getSpeedRamping
public BrickStepper.SpeedRamping getSpeedRamping() throws TinkerforgeException
Returns the acceleration and deacceleration as set bysetSpeedRamping(int, int)
.- Throws:
TinkerforgeException
-
fullBrake
public void fullBrake() throws TinkerforgeException
Executes an active full brake. \warning This function is for emergency purposes, where an immediate brake is necessary. Depending on the current velocity and the strength of the motor, a full brake can be quite violent. Callstop()
if you just want to stop the motor.- Throws:
TinkerforgeException
-
setCurrentPosition
public void setCurrentPosition(int position) throws TinkerforgeException
Sets the current steps of the internal step counter. This can be used to set the current position to 0 when some kind of starting position is reached (e.g. when a CNC machine reaches a corner).- Throws:
TinkerforgeException
-
getCurrentPosition
public int getCurrentPosition() throws TinkerforgeException
Returns the current position of the stepper motor in steps. On startup the position is 0. The steps are counted with all possible driving functions (setTargetPosition(int)
,setSteps(int)
,driveForward()
ordriveBackward()
). It also is possible to reset the steps to 0 or set them to any other desired value withsetCurrentPosition(int)
.- Throws:
TinkerforgeException
-
setTargetPosition
public void setTargetPosition(int position) throws TinkerforgeException
Sets the target position of the stepper motor in steps. For example, if the current position of the motor is 500 andsetTargetPosition(int)
is called with 1000, the stepper motor will drive 500 steps forward. It will use the velocity, acceleration and deacceleration as set bysetMaxVelocity(int)
andsetSpeedRamping(int, int)
. A call ofsetTargetPosition(int)
with the parameter *x* is equivalent to a call ofsetSteps(int)
with the parameter (*x* -getCurrentPosition()
).- Throws:
TinkerforgeException
-
getTargetPosition
public int getTargetPosition() throws TinkerforgeException
Returns the last target position as set bysetTargetPosition(int)
.- Throws:
TinkerforgeException
-
setSteps
public void setSteps(int steps) throws TinkerforgeException
Sets the number of steps the stepper motor should run. Positive values will drive the motor forward and negative values backward. The velocity, acceleration and deacceleration as set bysetMaxVelocity(int)
andsetSpeedRamping(int, int)
will be used.- Throws:
TinkerforgeException
-
getSteps
public int getSteps() throws TinkerforgeException
Returns the last steps as set bysetSteps(int)
.- Throws:
TinkerforgeException
-
getRemainingSteps
public int getRemainingSteps() throws TinkerforgeException
Returns the remaining steps of the last call ofsetSteps(int)
. For example, ifsetSteps(int)
is called with 2000 andgetRemainingSteps()
is called after the motor has run for 500 steps, it will return 1500.- Throws:
TinkerforgeException
-
setStepMode
public void setStepMode(short mode) throws TinkerforgeException
Sets the step mode of the stepper motor. Possible values are: * Full Step = 1 * Half Step = 2 * Quarter Step = 4 * Eighth Step = 8 A higher value will increase the resolution and decrease the torque of the stepper motor.- Throws:
TinkerforgeException
-
getStepMode
public short getStepMode() throws TinkerforgeException
Returns the step mode as set bysetStepMode(short)
.- Throws:
TinkerforgeException
-
driveForward
public void driveForward() throws TinkerforgeException
Drives the stepper motor forward untildriveBackward()
orstop()
is called. The velocity, acceleration and deacceleration as set bysetMaxVelocity(int)
andsetSpeedRamping(int, int)
will be used.- Throws:
TinkerforgeException
-
driveBackward
public void driveBackward() throws TinkerforgeException
Drives the stepper motor backward untildriveForward()
orstop()
is triggered. The velocity, acceleration and deacceleration as set bysetMaxVelocity(int)
andsetSpeedRamping(int, int)
will be used.- Throws:
TinkerforgeException
-
stop
public void stop() throws TinkerforgeException
Stops the stepper motor with the deacceleration as set bysetSpeedRamping(int, int)
.- Throws:
TinkerforgeException
-
getStackInputVoltage
public int getStackInputVoltage() throws TinkerforgeException
Returns the stack input voltage. The stack input voltage is the voltage that is supplied via the stack, i.e. it is given by a Step-Down or Step-Up Power Supply.- Throws:
TinkerforgeException
-
getExternalInputVoltage
public int getExternalInputVoltage() throws TinkerforgeException
Returns the external input voltage. The external input voltage is given via the black power input connector on the Stepper Brick. If there is an external input voltage and a stack input voltage, the motor will be driven by the external input voltage. If there is only a stack voltage present, the motor will be driven by this voltage. \warning This means, if you have a high stack voltage and a low external voltage, the motor will be driven with the low external voltage. If you then remove the external connection, it will immediately be driven by the high stack voltage- Throws:
TinkerforgeException
-
getCurrentConsumption
public int getCurrentConsumption() throws TinkerforgeException
Returns the current consumption of the motor.- Throws:
TinkerforgeException
-
setMotorCurrent
public void setMotorCurrent(int current) throws TinkerforgeException
Sets the current with which the motor will be driven. \warning Do not set this value above the specifications of your stepper motor. Otherwise it may damage your motor.- Throws:
TinkerforgeException
-
getMotorCurrent
public int getMotorCurrent() throws TinkerforgeException
Returns the current as set bysetMotorCurrent(int)
.- Throws:
TinkerforgeException
-
enable
public void enable() throws TinkerforgeException
Enables the driver chip. The driver parameters can be configured (maximum velocity, acceleration, etc) before it is enabled.- Throws:
TinkerforgeException
-
disable
public void disable() throws TinkerforgeException
Disables the driver chip. The configurations are kept (maximum velocity, acceleration, etc) but the motor is not driven until it is enabled again. \warning Disabling the driver chip while the motor is still turning can damage the driver chip. The motor should be stopped callingstop()
function before disabling the motor power. Thestop()
function will **not** wait until the motor is actually stopped. You have to explicitly wait for the appropriate time after calling thestop()
function before calling thedisable()
function.- Throws:
TinkerforgeException
-
isEnabled
public boolean isEnabled() throws TinkerforgeException
Returns *true* if the driver chip is enabled, *false* otherwise.- Throws:
TinkerforgeException
-
setDecay
public void setDecay(int decay) throws TinkerforgeException
Sets the decay mode of the stepper motor. A value of 0 sets the fast decay mode, a value of 65535 sets the slow decay mode and a value in between sets the mixed decay mode. Changing the decay mode is only possible if synchronous rectification is enabled (seesetSyncRect(boolean)
). For a good explanation of the different decay modes see `this <https://ebldc.com/?p=86/>`__ blog post by Avayan. A good decay mode is unfortunately different for every motor. The best way to work out a good decay mode for your stepper motor, if you can't measure the current with an oscilloscope, is to listen to the sound of the motor. If the value is too low, you often hear a high pitched sound and if it is too high you can often hear a humming sound. Generally, fast decay mode (small value) will be noisier but also allow higher motor speeds. \note There is unfortunately no formula to calculate a perfect decay mode for a given stepper motor. If you have problems with loud noises or the maximum motor speed is too slow, you should try to tinker with the decay value- Throws:
TinkerforgeException
-
getDecay
public int getDecay() throws TinkerforgeException
Returns the decay mode as set bysetDecay(int)
.- Throws:
TinkerforgeException
-
setMinimumVoltage
public void setMinimumVoltage(int voltage) throws TinkerforgeException
Sets the minimum voltage, below which theBrickStepper.UnderVoltageListener
listener is triggered. The minimum possible value that works with the Stepper Brick is 8V. You can use this function to detect the discharge of a battery that is used to drive the stepper motor. If you have a fixed power supply, you likely do not need this functionality.- Throws:
TinkerforgeException
-
getMinimumVoltage
public int getMinimumVoltage() throws TinkerforgeException
Returns the minimum voltage as set bysetMinimumVoltage(int)
.- Throws:
TinkerforgeException
-
setSyncRect
public void setSyncRect(boolean syncRect) throws TinkerforgeException
Turns synchronous rectification on or off (*true* or *false*). With synchronous rectification on, the decay can be changed (seesetDecay(int)
). Without synchronous rectification fast decay is used. For an explanation of synchronous rectification see `here <https://en.wikipedia.org/wiki/Active_rectification>`__. \warning If you want to use high speeds (> 10000 steps/s) for a large stepper motor with a large inductivity we strongly suggest that you disable synchronous rectification. Otherwise the Brick may not be able to cope with the load and overheat.- Throws:
TinkerforgeException
-
isSyncRect
public boolean isSyncRect() throws TinkerforgeException
Returns *true* if synchronous rectification is enabled, *false* otherwise.- Throws:
TinkerforgeException
-
setTimeBase
public void setTimeBase(long timeBase) throws TinkerforgeException
Sets the time base of the velocity and the acceleration of the stepper brick. For example, if you want to make one step every 1.5 seconds, you can set the time base to 15 and the velocity to 10. Now the velocity is 10steps/15s = 1steps/1.5s.- Throws:
TinkerforgeException
-
getTimeBase
public long getTimeBase() throws TinkerforgeException
Returns the time base as set bysetTimeBase(long)
.- Throws:
TinkerforgeException
-
getAllData
public BrickStepper.AllData getAllData() throws TinkerforgeException
Returns the following parameters: The current velocity, the current position, the remaining steps, the stack voltage, the external voltage and the current consumption of the stepper motor. There is also a listener for this function, seeBrickStepper.AllDataListener
listener.- Throws:
TinkerforgeException
-
setAllDataPeriod
public void setAllDataPeriod(long period) throws TinkerforgeException
Sets the period with which theBrickStepper.AllDataListener
listener is triggered periodically. A value of 0 turns the listener off.- Throws:
TinkerforgeException
-
getAllDataPeriod
public long getAllDataPeriod() throws TinkerforgeException
Returns the period as set bysetAllDataPeriod(long)
.- Throws:
TinkerforgeException
-
setSPITFPBaudrateConfig
public void setSPITFPBaudrateConfig(boolean enableDynamicBaudrate, long minimumDynamicBaudrate) throws TinkerforgeException
The SPITF protocol can be used with a dynamic baudrate. If the dynamic baudrate is enabled, the Brick will try to adapt the baudrate for the communication between Bricks and Bricklets according to the amount of data that is transferred. The baudrate will be increased exponentially if lots of data is sent/received and decreased linearly if little data is sent/received. This lowers the baudrate in applications where little data is transferred (e.g. a weather station) and increases the robustness. If there is lots of data to transfer (e.g. Thermal Imaging Bricklet) it automatically increases the baudrate as needed. In cases where some data has to transferred as fast as possible every few seconds (e.g. RS485 Bricklet with a high baudrate but small payload) you may want to turn the dynamic baudrate off to get the highest possible performance. The maximum value of the baudrate can be set per port with the functionsetSPITFPBaudrate(char, long)
. If the dynamic baudrate is disabled, the baudrate as set bysetSPITFPBaudrate(char, long)
will be used statically. .. versionadded:: 2.3.6$nbsp;(Firmware)- Throws:
TinkerforgeException
-
getSPITFPBaudrateConfig
public BrickStepper.SPITFPBaudrateConfig getSPITFPBaudrateConfig() throws TinkerforgeException
Returns the baudrate config, seesetSPITFPBaudrateConfig(boolean, long)
. .. versionadded:: 2.3.6$nbsp;(Firmware)- Throws:
TinkerforgeException
-
getSendTimeoutCount
public long getSendTimeoutCount(short communicationMethod) throws TinkerforgeException
Returns the timeout count for the different communication methods. The methods 0-2 are available for all Bricks, 3-7 only for Master Bricks. This function is mostly used for debugging during development, in normal operation the counters should nearly always stay at 0. .. versionadded:: 2.3.4$nbsp;(Firmware)- Throws:
TinkerforgeException
-
setSPITFPBaudrate
public void setSPITFPBaudrate(char brickletPort, long baudrate) throws TinkerforgeException
Sets the baudrate for a specific Bricklet port. If you want to increase the throughput of Bricklets you can increase the baudrate. If you get a high error count because of high interference (seegetSPITFPErrorCount(char)
) you can decrease the baudrate. If the dynamic baudrate feature is enabled, the baudrate set by this function corresponds to the maximum baudrate (seesetSPITFPBaudrateConfig(boolean, long)
). Regulatory testing is done with the default baudrate. If CE compatibility or similar is necessary in your applications we recommend to not change the baudrate. .. versionadded:: 2.3.3$nbsp;(Firmware)- Throws:
TinkerforgeException
-
getSPITFPBaudrate
public long getSPITFPBaudrate(char brickletPort) throws TinkerforgeException
Returns the baudrate for a given Bricklet port, seesetSPITFPBaudrate(char, long)
. .. versionadded:: 2.3.3$nbsp;(Firmware)- Throws:
TinkerforgeException
-
getSPITFPErrorCount
public BrickStepper.SPITFPErrorCount getSPITFPErrorCount(char brickletPort) throws TinkerforgeException
Returns the error count for the communication between Brick and Bricklet. The errors are divided into * ACK checksum errors, * message checksum errors, * framing errors and * overflow errors. The errors counts are for errors that occur on the Brick side. All Bricklets have a similar function that returns the errors on the Bricklet side. .. versionadded:: 2.3.3$nbsp;(Firmware)- Throws:
TinkerforgeException
-
enableStatusLED
public void enableStatusLED() throws TinkerforgeException
Enables the status LED. The status LED is the blue LED next to the USB connector. If enabled is is on and it flickers if data is transfered. If disabled it is always off. The default state is enabled. .. versionadded:: 2.3.1$nbsp;(Firmware)- Throws:
TinkerforgeException
-
disableStatusLED
public void disableStatusLED() throws TinkerforgeException
Disables the status LED. The status LED is the blue LED next to the USB connector. If enabled is is on and it flickers if data is transfered. If disabled it is always off. The default state is enabled. .. versionadded:: 2.3.1$nbsp;(Firmware)- Throws:
TinkerforgeException
-
isStatusLEDEnabled
public boolean isStatusLEDEnabled() throws TinkerforgeException
Returns *true* if the status LED is enabled, *false* otherwise. .. versionadded:: 2.3.1$nbsp;(Firmware)- Throws:
TinkerforgeException
-
getProtocol1BrickletName
public BrickStepper.Protocol1BrickletName getProtocol1BrickletName(char port) throws TinkerforgeException
Returns the firmware and protocol version and the name of the Bricklet for a given port. This functions sole purpose is to allow automatic flashing of v1.x.y Bricklet plugins.- Throws:
TinkerforgeException
-
getChipTemperature
public short getChipTemperature() throws TinkerforgeException
Returns the temperature as measured inside the microcontroller. The value returned is not the ambient temperature! The temperature is only proportional to the real temperature and it has an accuracy of ±15%. Practically it is only useful as an indicator for temperature changes.- Throws:
TinkerforgeException
-
reset
public void reset() throws TinkerforgeException
Calling this function will reset the Brick. Calling this function on a Brick inside of a stack will reset the whole stack. After a reset you have to create new device objects, calling functions on the existing ones will result in undefined behavior!- Throws:
TinkerforgeException
-
writeBrickletPlugin
public void writeBrickletPlugin(char port, short offset, short[] chunk) throws TinkerforgeException
Writes 32 bytes of firmware to the bricklet attached at the given port. The bytes are written to the position offset * 32. This function is used by Brick Viewer during flashing. It should not be necessary to call it in a normal user program.- Throws:
TinkerforgeException
-
readBrickletPlugin
public short[] readBrickletPlugin(char port, short offset) throws TinkerforgeException
Reads 32 bytes of firmware from the bricklet attached at the given port. The bytes are read starting at the position offset * 32. This function is used by Brick Viewer during flashing. It should not be necessary to call it in a normal user program.- Throws:
TinkerforgeException
-
getIdentity
public Device.Identity getIdentity() throws TinkerforgeException
Returns the UID, the UID where the Brick is connected to, the position, the hardware and firmware version as well as the device identifier. The position is the position in the stack from '0' (bottom) to '8' (top). The device identifier numbers can be found :ref:`here <device_identifier>`. |device_identifier_constant|- Specified by:
getIdentity
in classDevice
- Throws:
TinkerforgeException
-
addUnderVoltageListener
public void addUnderVoltageListener(BrickStepper.UnderVoltageListener listener)
Adds a UnderVoltage listener.
-
removeUnderVoltageListener
public void removeUnderVoltageListener(BrickStepper.UnderVoltageListener listener)
Removes a UnderVoltage listener.
-
addPositionReachedListener
public void addPositionReachedListener(BrickStepper.PositionReachedListener listener)
Adds a PositionReached listener.
-
removePositionReachedListener
public void removePositionReachedListener(BrickStepper.PositionReachedListener listener)
Removes a PositionReached listener.
-
addAllDataListener
public void addAllDataListener(BrickStepper.AllDataListener listener)
Adds a AllData listener.
-
removeAllDataListener
public void removeAllDataListener(BrickStepper.AllDataListener listener)
Removes a AllData listener.
-
addNewStateListener
public void addNewStateListener(BrickStepper.NewStateListener listener)
Adds a NewState listener.
-
removeNewStateListener
public void removeNewStateListener(BrickStepper.NewStateListener listener)
Removes a NewState listener.
-
-