Hardware
package com.arcrobotics.ftclib.hardware
Last updated
Was this helpful?
package com.arcrobotics.ftclib.hardware
Last updated
Was this helpful?
Each hardware device in FTCLib is based on the HardwareDevice
interface. This comes with two methods inherited by every device:
disable()
: disables the device
getDeviceType()
: returns a String characterization of the device
FTCLib offers a lot of hardware devices that can be implemented or customized into your program. The best advice we can give to users is to take a look at the in the FTCLib repository. Here is the list of devices we currently have available (not including motors):
The GyroEx
class is an extended gyro that allows users to add more configurable methods and possible control to their gyro. An example would be creating a ModernRoboticsGyro
class. The abstract class has the following methods:
init()
: initializes the gyro and sets the current direction to the 0 heading
getHeading()
: returns the heading of the robot compared to the last reset
getAbsoluteHeading()
: returns the absolute heading relative to the initial direction
getAngles()
: returns the x, y, and z orientation of the gyro. This is functionally the same as yaw, pitch, and roll.
getRotation2d()
: transforms the heading into a Rotation2d
object
reset()
: applies an offset so that getHeading()
returns the 0 position
A useful implementation of this is the class for the built-in imu on your REV hub.
There are a few sensors that are offered in FTCLib:
The SensorColor
class is just an extension for the ColorSensor
class that is in the SDK.
SensorDistance
and SensorDistanceEx
are interfaces for creating custom distance sensors if desired. An implementation of the SensorDistanceEx
interface is SensorRevTOFDistance
which utilizes the time-of-flight mechanic to track distance.
MIN_ANGLE
and MAX_ANGLE
are the minimum and maximum angle positions in degrees you would like to set the servo. This functionally serves as the servo's effective range. If you want to change the effective range at any point, you can do the following:
You can invert the servo's direction as well:
To turn to positions and angles, utilize the following methods:
rotateByAngle
: turns the servo a number of angle units relative to the current angle
turnToAngle
: sets the absolute angle of the servo
rotateBy
: turns the servo a relative positional distance from the current position
setPosition
: set the absolute position of the servo (from 0 to 1)
&
The interface allows for more methods and actions than the normal servo class in the SDK. You can change the position of the servo relative to the last position or set it to an absolute position. You can either specify a position within the range of the servo's motion or have it rotate a certain number of specified angle units.
An example implementation of this can be found in the class. You can create a simple servo like this: