public class BrickletServoV2 extends Device
Modifier and Type | Class and Description |
---|---|
class |
BrickletServoV2.Degree |
class |
BrickletServoV2.MotionConfiguration |
static interface |
BrickletServoV2.PositionReachedListener
This listener is triggered when a position set by
setPosition(int, int)
is reached. |
class |
BrickletServoV2.PulseWidth |
class |
BrickletServoV2.SPITFPErrorCount |
class |
BrickletServoV2.Status |
Device.Identity
Constructor and Description |
---|
BrickletServoV2(java.lang.String uid,
IPConnection ipcon)
Creates an object with the unique device ID \c uid.
|
Modifier and Type | Method and Description |
---|---|
void |
addPositionReachedListener(BrickletServoV2.PositionReachedListener listener)
Adds a PositionReached listener.
|
int |
getBootloaderMode()
Returns the current bootloader mode, see
setBootloaderMode(int) . |
int |
getChipTemperature()
Returns the temperature as measured inside the microcontroller.
|
int[] |
getCurrentCalibration()
Returns the current calibration as set by
setCurrentCalibration(int[]) . |
int |
getCurrentPosition(int servoChannel)
Returns the *current* position of the specified servo channel.
|
int |
getCurrentVelocity(int servoChannel)
Returns the *current* velocity of the specified servo channel.
|
BrickletServoV2.Degree |
getDegree(int servoChannel)
Returns the minimum and maximum degree for the specified servo channel as set by
setDegree(int, int, int) . |
boolean |
getEnabled(int servoChannel)
Returns *true* if the specified servo channel is enabled, *false* otherwise.
|
Device.Identity |
getIdentity()
Returns the UID, the UID where the Bricklet is connected to,
the position, the hardware and firmware version as well as the
device identifier.
|
int |
getInputVoltage()
Returns the input voltage in mV.
|
int |
getInputVoltageConfiguration()
Returns the input voltage configuration as set by
setInputVoltageConfiguration(int) . |
BrickletServoV2.MotionConfiguration |
getMotionConfiguration(int servoChannel)
Returns the motion configuration as set by
setMotionConfiguration(int, long, long, long) . |
int |
getOverallCurrent()
Returns the current consumption of all servos together in mA.
|
long |
getPeriod(int servoChannel)
Returns the period for the specified servo channel as set by
setPeriod(int, long) . |
int |
getPosition(int servoChannel)
Returns the position of the specified servo channel as set by
setPosition(int, int) . |
boolean |
getPositionReachedCallbackConfiguration(int servoChannel)
Returns the listener configuration as set by
setPositionReachedCallbackConfiguration(int, boolean) . |
BrickletServoV2.PulseWidth |
getPulseWidth(int servoChannel)
Returns the minimum and maximum pulse width for the specified servo channel as set by
setPulseWidth(int, long, long) . |
int |
getServoCurrent(int servoChannel)
Returns the current consumption of the specified servo channel in mA.
|
int |
getServoCurrentConfiguration(int servoChannel)
Returns the servo current configuration for the specified servo channel as set
by
setServoCurrentConfiguration(int, int) . |
BrickletServoV2.SPITFPErrorCount |
getSPITFPErrorCount()
Returns the error count for the communication between Brick and Bricklet.
|
BrickletServoV2.Status |
getStatus()
Returns the status information of the Servo Bricklet 2.0.
|
int |
getStatusLEDConfig()
Returns the configuration as set by
setStatusLEDConfig(int) |
long |
readUID()
Returns the current UID as an integer.
|
void |
removePositionReachedListener(BrickletServoV2.PositionReachedListener listener)
Removes a PositionReached listener.
|
void |
reset()
Calling this function will reset the Bricklet.
|
int |
setBootloaderMode(int mode)
Sets the bootloader mode and returns the status after the requested
mode change was instigated.
|
void |
setCurrentCalibration(int[] offset)
Sets an offset value (in mA) for each channel.
|
void |
setDegree(int servoChannel,
int min,
int max)
Sets the minimum and maximum degree for the specified servo channel (by default
given as °/100).
|
void |
setEnable(int servoChannel,
boolean enable)
Enables a servo channel (0 to 9).
|
void |
setInputVoltageConfiguration(int averagingDuration)
Sets the averaging duration of the input voltage measurement for the specified servo channel in ms.
|
void |
setMotionConfiguration(int servoChannel,
long velocity,
long acceleration,
long deceleration)
Sets the maximum velocity of the specified servo channel in °/100s as well as
the acceleration and deceleration in °/100s²
With a velocity of 0 °/100s the position will be set immediately (no velocity).
|
void |
setPeriod(int servoChannel,
long period)
Sets the period of the specified servo channel in µs.
|
void |
setPosition(int servoChannel,
int position)
Sets the position in °/100 for the specified servo channel.
|
void |
setPositionReachedCallbackConfiguration(int servoChannel,
boolean enabled)
Enable/Disable
BrickletServoV2.PositionReachedListener listener. |
void |
setPulseWidth(int servoChannel,
long min,
long max)
Sets the minimum and maximum pulse width of the specified servo channel in µs.
|
void |
setServoCurrentConfiguration(int servoChannel,
int averagingDuration)
Sets the averaging duration of the current measurement for the specified servo channel in ms.
|
void |
setStatusLEDConfig(int config)
Sets the status LED configuration.
|
void |
setWriteFirmwarePointer(long pointer)
Sets the firmware pointer for
writeFirmware(int[]) . |
int |
writeFirmware(int[] data)
Writes 64 Bytes of firmware at the position as written by
setWriteFirmwarePointer(long) before. |
void |
writeUID(long uid)
Writes a new UID into flash.
|
getAPIVersion, getResponseExpected, setResponseExpected, setResponseExpectedAll
public static final int DEVICE_IDENTIFIER
public static final java.lang.String DEVICE_DISPLAY_NAME
public static final byte FUNCTION_GET_STATUS
public static final byte FUNCTION_SET_ENABLE
public static final byte FUNCTION_GET_ENABLED
public static final byte FUNCTION_SET_POSITION
public static final byte FUNCTION_GET_POSITION
public static final byte FUNCTION_GET_CURRENT_POSITION
public static final byte FUNCTION_GET_CURRENT_VELOCITY
public static final byte FUNCTION_SET_MOTION_CONFIGURATION
public static final byte FUNCTION_GET_MOTION_CONFIGURATION
public static final byte FUNCTION_SET_PULSE_WIDTH
public static final byte FUNCTION_GET_PULSE_WIDTH
public static final byte FUNCTION_SET_DEGREE
public static final byte FUNCTION_GET_DEGREE
public static final byte FUNCTION_SET_PERIOD
public static final byte FUNCTION_GET_PERIOD
public static final byte FUNCTION_GET_SERVO_CURRENT
public static final byte FUNCTION_SET_SERVO_CURRENT_CONFIGURATION
public static final byte FUNCTION_GET_SERVO_CURRENT_CONFIGURATION
public static final byte FUNCTION_SET_INPUT_VOLTAGE_CONFIGURATION
public static final byte FUNCTION_GET_INPUT_VOLTAGE_CONFIGURATION
public static final byte FUNCTION_GET_OVERALL_CURRENT
public static final byte FUNCTION_GET_INPUT_VOLTAGE
public static final byte FUNCTION_SET_CURRENT_CALIBRATION
public static final byte FUNCTION_GET_CURRENT_CALIBRATION
public static final byte FUNCTION_SET_POSITION_REACHED_CALLBACK_CONFIGURATION
public static final byte FUNCTION_GET_POSITION_REACHED_CALLBACK_CONFIGURATION
public static final byte FUNCTION_GET_SPITFP_ERROR_COUNT
public static final byte FUNCTION_SET_BOOTLOADER_MODE
public static final byte FUNCTION_GET_BOOTLOADER_MODE
public static final byte FUNCTION_SET_WRITE_FIRMWARE_POINTER
public static final byte FUNCTION_WRITE_FIRMWARE
public static final byte FUNCTION_SET_STATUS_LED_CONFIG
public static final byte FUNCTION_GET_STATUS_LED_CONFIG
public static final byte FUNCTION_GET_CHIP_TEMPERATURE
public static final byte FUNCTION_RESET
public static final byte FUNCTION_WRITE_UID
public static final byte FUNCTION_READ_UID
public static final byte FUNCTION_GET_IDENTITY
public static final int BOOTLOADER_MODE_BOOTLOADER
public static final int BOOTLOADER_MODE_FIRMWARE
public static final int BOOTLOADER_MODE_BOOTLOADER_WAIT_FOR_REBOOT
public static final int BOOTLOADER_MODE_FIRMWARE_WAIT_FOR_REBOOT
public static final int BOOTLOADER_MODE_FIRMWARE_WAIT_FOR_ERASE_AND_REBOOT
public static final int BOOTLOADER_STATUS_OK
public static final int BOOTLOADER_STATUS_INVALID_MODE
public static final int BOOTLOADER_STATUS_NO_CHANGE
public static final int BOOTLOADER_STATUS_ENTRY_FUNCTION_NOT_PRESENT
public static final int BOOTLOADER_STATUS_DEVICE_IDENTIFIER_INCORRECT
public static final int BOOTLOADER_STATUS_CRC_MISMATCH
public static final int STATUS_LED_CONFIG_OFF
public static final int STATUS_LED_CONFIG_ON
public static final int STATUS_LED_CONFIG_SHOW_HEARTBEAT
public static final int STATUS_LED_CONFIG_SHOW_STATUS
public BrickletServoV2(java.lang.String uid, IPConnection ipcon)
public BrickletServoV2.Status getStatus() throws TinkerforgeException
TinkerforgeException
public void setEnable(int servoChannel, boolean enable) throws TinkerforgeException
TinkerforgeException
public boolean getEnabled(int servoChannel) throws TinkerforgeException
TinkerforgeException
public void setPosition(int servoChannel, int position) throws TinkerforgeException
setDegree(int, int, int)
.
If you want to control a linear servo or RC brushless motor controller or
similar with the Servo Brick, you can also define lengths or speeds with
setDegree(int, int, int)
.TinkerforgeException
public int getPosition(int servoChannel) throws TinkerforgeException
setPosition(int, int)
.TinkerforgeException
public int getCurrentPosition(int servoChannel) throws TinkerforgeException
setPosition(int, int)
if the servo is currently approaching a
position goal.TinkerforgeException
public int getCurrentVelocity(int servoChannel) throws TinkerforgeException
setMotionConfiguration(int, long, long, long)
. if the servo is
currently approaching a velocity goal.TinkerforgeException
public void setMotionConfiguration(int servoChannel, long velocity, long acceleration, long deceleration) throws TinkerforgeException
TinkerforgeException
public BrickletServoV2.MotionConfiguration getMotionConfiguration(int servoChannel) throws TinkerforgeException
setMotionConfiguration(int, long, long, long)
.TinkerforgeException
public void setPulseWidth(int servoChannel, long min, long max) throws TinkerforgeException
TinkerforgeException
public BrickletServoV2.PulseWidth getPulseWidth(int servoChannel) throws TinkerforgeException
setPulseWidth(int, long, long)
.TinkerforgeException
public void setDegree(int servoChannel, int min, int max) throws TinkerforgeException
setPosition(int, int)
with 0 will result in a pulse width of 1500µs
(-90° = 1000µs, 90° = 2000µs, etc.).
Possible usage:
* The datasheet of your servo specifies a range of 200° with the middle position
at 110°. In this case you can set the minimum to -9000 and the maximum to 11000.
* You measure a range of 220° on your servo and you don't have or need a middle
position. In this case you can set the minimum to 0 and the maximum to 22000.
* You have a linear servo with a drive length of 20cm, In this case you could
set the minimum to 0 and the maximum to 20000. Now you can set the Position
with setPosition(int, int)
with a resolution of cm/100. Also the velocity will
have a resolution of cm/100s and the acceleration will have a resolution of
cm/100s².
* You don't care about units and just want the highest possible resolution. In
this case you should set the minimum to -32767 and the maximum to 32767.
* You have a brushless motor with a maximum speed of 10000 rpm and want to
control it with a RC brushless motor controller. In this case you can set the
minimum to 0 and the maximum to 10000. setPosition(int, int)
now controls the rpm.
Both values have a possible range from -32767 to 32767
(signed 16-bit integer). The minimum must be smaller than the maximum.
The default values are -9000 and 9000 for the minimum and maximum degree.TinkerforgeException
public BrickletServoV2.Degree getDegree(int servoChannel) throws TinkerforgeException
setDegree(int, int, int)
.TinkerforgeException
public void setPeriod(int servoChannel, long period) throws TinkerforgeException
TinkerforgeException
public long getPeriod(int servoChannel) throws TinkerforgeException
setPeriod(int, long)
.TinkerforgeException
public int getServoCurrent(int servoChannel) throws TinkerforgeException
TinkerforgeException
public void setServoCurrentConfiguration(int servoChannel, int averagingDuration) throws TinkerforgeException
TinkerforgeException
public int getServoCurrentConfiguration(int servoChannel) throws TinkerforgeException
setServoCurrentConfiguration(int, int)
.TinkerforgeException
public void setInputVoltageConfiguration(int averagingDuration) throws TinkerforgeException
TinkerforgeException
public int getInputVoltageConfiguration() throws TinkerforgeException
setInputVoltageConfiguration(int)
.TinkerforgeException
public int getOverallCurrent() throws TinkerforgeException
TinkerforgeException
public int getInputVoltage() throws TinkerforgeException
TinkerforgeException
public void setCurrentCalibration(int[] offset) throws TinkerforgeException
TinkerforgeException
public int[] getCurrentCalibration() throws TinkerforgeException
setCurrentCalibration(int[])
.TinkerforgeException
public void setPositionReachedCallbackConfiguration(int servoChannel, boolean enabled) throws TinkerforgeException
BrickletServoV2.PositionReachedListener
listener.TinkerforgeException
public boolean getPositionReachedCallbackConfiguration(int servoChannel) throws TinkerforgeException
setPositionReachedCallbackConfiguration(int, boolean)
.TinkerforgeException
public BrickletServoV2.SPITFPErrorCount getSPITFPErrorCount() throws TinkerforgeException
TinkerforgeException
public int setBootloaderMode(int mode) throws TinkerforgeException
TinkerforgeException
public int getBootloaderMode() throws TinkerforgeException
setBootloaderMode(int)
.TinkerforgeException
public void setWriteFirmwarePointer(long pointer) throws TinkerforgeException
writeFirmware(int[])
. The pointer has
to be increased by chunks of size 64. The data is written to flash
every 4 chunks (which equals to one page of size 256).
This function is used by Brick Viewer during flashing. It should not be
necessary to call it in a normal user program.TinkerforgeException
public int writeFirmware(int[] data) throws TinkerforgeException
setWriteFirmwarePointer(long)
before. The firmware is written
to flash every 4 chunks.
You can only write firmware in bootloader mode.
This function is used by Brick Viewer during flashing. It should not be
necessary to call it in a normal user program.TinkerforgeException
public void setStatusLEDConfig(int config) throws TinkerforgeException
TinkerforgeException
public int getStatusLEDConfig() throws TinkerforgeException
setStatusLEDConfig(int)
TinkerforgeException
public int getChipTemperature() throws TinkerforgeException
TinkerforgeException
public void reset() throws TinkerforgeException
TinkerforgeException
public void writeUID(long uid) throws TinkerforgeException
TinkerforgeException
public long readUID() throws TinkerforgeException
TinkerforgeException
public Device.Identity getIdentity() throws TinkerforgeException
getIdentity
in class Device
TinkerforgeException
public void addPositionReachedListener(BrickletServoV2.PositionReachedListener listener)
public void removePositionReachedListener(BrickletServoV2.PositionReachedListener listener)
Copyright © 2021 Tinkerforge GmbH. All rights reserved.