/**
* Creates an encoder using the two SIG inputs (A and B).
* Also allows the encoder to be reversed.
* Can also control the difference between getRaw and get values.
* pulsesPerRev is used for getdistance() methods.
* @param channelA I/0 SIG A.
* @param channelB I/O SIG B.
* @param isReversed When true,returned values are inverted.
* @param scaleValue getRaw() values are divided by multiples of 1,2,or 4 to increase accuracy.
* @param pulsesPerRev Number of pulses for a revolution of the motor (look at instance variable).
*/
public QuadratureEncoder(int channelA,int channelB,boolean isReversed,int scaleValue,double pulsesPerRev)
{
CounterBase.EncodingType encType = CounterBase.EncodingType.k4X;
if (scaleValue == 1)
encType = CounterBase.EncodingType.k1X;
else if (scaleValue == 2)
encType = CounterBase.EncodingType.k2X;
else if (scaleValue == 4)
encType = CounterBase.EncodingType.k4X;
enc = new Encoder(channelA,channelB,isReversed,encType);
pulsesPerRevolution = pulsesPerRev;
enc.start();
}
项目:NR-2014-CMD
文件:Drive.java
private Drive()
{
drive = new RobotDrive(new Talon(1),new Talon(2),new Talon(3),new Talon(4));
drive.setSafetyEnabled(false);
e1 = new Encoder(RobotMap.ENCODER_1_A,RobotMap.ENCODER_1_B,false,CounterBase.EncodingType.k4X);
e2 = new Encoder(RobotMap.ENCODER_2_A,RobotMap.ENCODER_2_B,CounterBase.EncodingType.k4X);
//A calculated constant to convert from encoder ticks to feet on 4 inch diameter wheels
e1.setdistancePerpulse(0.0349065850388889/12);
e2.setdistancePerpulse(0.0349065850388889/12);
startEncoders();
drive.setInvertedMotor(RobotDrive.MotorType.kFrontLeft,true);
drive.setInvertedMotor(RobotDrive.MotorType.kRearLeft,true);
sonic = new Ultrasonic(RobotMap.ULTRASONIC_A,RobotMap.ULTRASONIC_B);
sonic.setAutomaticMode(true);
sonic.setEnabled(true);
shifter = new DoubleSolenoid(RobotMap.SHIFTER_ENGAGE,RobotMap.SHIFTER_disENGAGE);
}
项目:RobotBlueTwilight2013
文件:DriveTrain.java
public DriveTrain(boolean isCan)
{
shifter = new Piston(SHIFTER_EXTEND_PORT,SHIFTER_RETRACT_PORT);
left = new BTMotor(LEFT_JAG_PORT,isCan,isVoltage);
left_2 = new BTMotor(LEFT_JAG_PORT_2,isVoltage);
right = new BTMotor(RIGHT_JAG_PORT,isVoltage);
right_2 = new BTMotor(RIGHT_JAG_PORT_2,isVoltage);
shiftSpeed = new Encoder(DRIVE_ENCODER_A_PORT,DRIVE_ENCODER_B_PORT,true,CounterBase.EncodingType.k1X);
shiftSpeed.setdistancePerpulse(distance);
shiftSpeed.start();
shiftSpeed.reset();
left.setBTVoltageRampRate(ramprate);
left_2.setBTVoltageRampRate(ramprate);
right.setBTVoltageRampRate(ramprate);
right_2.setBTVoltageRampRate(ramprate);
}
项目:snobot-2017
文件:EncoderWrapper.java
public EncoderWrapper(int aIndexA,int aIndexB)
{
super("Encoder (" + aIndexA + "," + aIndexB + ")");
setEncodingFactor(CounterBase.EncodingType.k4X);
mdistancePerTick = 1;
}
public EncoderPIDSubsystem(String name,double kP,double kI,double kD,int motorChannel,int encoderAChannel,int encoderBChannel,boolean reverseEncoder,double gearRatioEncoderToOutput) {
super(name,kP,kI,kD);
try {
m_motorController = new Victor(motorChannel);
m_encoder = new Encoder(1,encoderAChannel,1,encoderBChannel,reverseEncoder,CounterBase.EncodingType.k4X);
double degPerpulse = 360.0 / gearRatioEncoderToOutput / DEFAULT_pulseS_PER_ROTATION;
m_encoder.setdistancePerpulse(degPerpulse);
resetZeroPosition();
} catch (Exception e) {
System.out.println("UnkNown error initializing " + getName() + "-EncoderPIDSubsystem. Message = " + e.getMessage());
}
}
public EncoderPIDSubsystem(String name,double wheelDiameter,double gearRatioEncoderToWheel) {
super(name,CounterBase.EncodingType.k4X);
double distancePerpulse = Math.PI * wheelDiameter / gearRatioEncoderToWheel / DEFAULT_pulseS_PER_ROTATION;
m_encoder.setdistancePerpulse(distancePerpulse);
resetZeroPosition();
} catch (Exception e) {
System.out.println("UnkNown error initializing " + getName() + "-EncoderPIDSubsystem. Message = " + e.getMessage());
}
}
项目:Team3310FRC2014
文件:RPMEncoder.java
public RPMEncoder(int aSlot,int aChannel,int bSlot,int bChannel,boolean reverseDirection,double pulsesPerRotation,int numAveragedCycles) {
m_pulsesPerRotation = pulsesPerRotation;
m_numAveragedCycles = numAveragedCycles;
m_encoder = new Encoder(aSlot,aChannel,bSlot,bChannel,reverseDirection,CounterBase.EncodingType.k4X);
m_motorRPM = new double[numAveragedCycles];
m_encoder.reset();
resetMotorRPM();
}
项目:Veer
文件:O_TurnEncoder.java
public O_TurnEncoder(int APort,int BPort,int zeroPort,double zeroOffset,boolean reverseEncoder){
zeroSensor = new DigitalInput(RobotMap.turnModule,zeroPort);
this.zeroOffset = zeroOffset;
encoder = new Encoder(RobotMap.turnModule,APort,RobotMap.turnModule,BPort,CounterBase.EncodingType.k4X) {{
setdistancePerpulse(360.0 / 500.0);
start();
}};
}
public Robottemplate() {
// initialize all the objects
ingest = new VictorPair(5,6);
elevator = new Victor(1);
shooter = new VictorPair(2,4);
robotDrive = new Drive(8,7,10,9);
xBox = new JStick(1);
joystick = new JStick(2);
compressor = new Compressor(4,3);
compressor.start();
driveGeara = new Solenoid(1);
driveGearB = new Solenoid(2);
driveGeara.set(true);
driveGearB.set(false);
selectedGear = 1;
leftEnc = new Encoder(6,CounterBase.EncodingType.k2X);
leftEnc.setdistancePerpulse(0.103672558);
rightEnc = new Encoder(9,false);
rightEnc.setdistancePerpulse(0.103672558);
lcd = DriverStationLCD.getInstance();
}
项目:2013ultimate-ascent
文件:GRTEncoder.java
/**
* Instantiates an encoder on the default digital module.
*
* @param channelA digital channel for encoder channel A
* @param channelB digital channel for encoder channel B
* @param pulsedistance distance traveled for each pulse (typically 1 degree
* of rotation per pulse)
* @param reversed whether or not the encoder is reversed
* @param name name of encoder
*/
public GRTEncoder(int channelA,double pulsedistance,boolean reversed,String name) {
super(name,NUM_DATA);
//Create new encoder that does 1x encoding,as opposed to 4x.
rotaryEncoder = new Encoder(channelA,reversed,CounterBase.EncodingType.k1X);
rotaryEncoder.start();
encoderListeners = new Vector();
distancePerpulse = pulsedistance;
rotaryEncoder.setdistancePerpulse(distancePerpulse);
}
项目:grtframeworkv7
文件:GRTEncoder.java
/**
* Instantiates an encoder on the default digital module.
*
* @param channelA digital channel for encoder channel A
* @param channelB digital channel for encoder channel B
* @param pulsedistance distance traveled for each pulse (typically 1 degree
* of rotation per pulse)
* @param reversed whether or not the encoder is reversed
* @param name name of encoder
*/
public GRTEncoder(int channelA,CounterBase.EncodingType.k1X);
rotaryEncoder.start();
encoderListeners = new Vector();
distancePerpulse = pulsedistance;
rotaryEncoder.setdistancePerpulse(distancePerpulse);
}
项目:SwerveDrive
文件:TestBotSwervePod.java
public TestBotSwervePod(int talonPWM,SabertoothSpeedController.Address sabertoothAddress,SabertoothSpeedController.Motor sabertoothMotor,int encoderPin1,int encoderPin2,int digipotPin,double digipotOffset) {
super(new Talon(talonPWM),new SabertoothSpeedController(sabertoothAddress,sabertoothMotor),new Encoder(encoderPin1,encoderPin2,CounterBase.EncodingType.k1X),ENCODER_INCHES_PER_TICK,new BI6120Magnepot(digipotPin,digipotOffset));
}
项目:Team3310FRC2014
文件:PositionEncoder.java
public PositionEncoder(int aSlot,double gearRatioWheelToEncoder) {
m_encoder = new Encoder(aSlot,CounterBase.EncodingType.k4X);
double distancePerpulse = Math.PI * wheelDiameter * wheelDiameter * gearRatioWheelToEncoder / 4.0 / pulsesPerRotation;
m_encoder.setdistancePerpulse(distancePerpulse);
resetdistance();
}
项目:Team3310FRC2014
文件:Chassis.java
public Chassis() {
super(KP,KI,KD);
try {
m_drive = new RobotDrive(
new Victor(RobotMap.DRIVE_LEFT_TOP_FRONT_DSC_PWM_ID),new Victor(RobotMap.DRIVE_LEFT_REAR_DSC_PWM_ID),new Victor(RobotMap.DRIVE_RIGHT_TOP_FRONT_DSC_PWM_ID),new Victor(RobotMap.DRIVE_RIGHT_REAR_DSC_PWM_ID));
m_drive.setSafetyEnabled(false);
m_drive.setInvertedMotor(RobotDrive.MotorType.kFrontLeft,true);
m_drive.setInvertedMotor(RobotDrive.MotorType.kRearLeft,true);
m_drive.setInvertedMotor(RobotDrive.MotorType.kFrontRight,true);
m_drive.setInvertedMotor(RobotDrive.MotorType.kRearRight,true);
m_leftEncoder = new Encoder(
1,RobotMap.LEFT_DRIVE_ENCODER_A_DSC_dio_ID,RobotMap.LEFT_DRIVE_ENCODER_B_DSC_dio_ID,CounterBase.EncodingType.k4X);
m_rightEncoder = new Encoder(
1,RobotMap.RIGHT_DRIVE_ENCODER_A_DSC_dio_ID,RobotMap.RIGHT_DRIVE_ENCODER_B_DSC_dio_ID,CounterBase.EncodingType.k4X);
m_leftEncoder.setdistancePerpulse(WHEEL_CIRCUM_IN / 360.0 / ENCODER_TO_WHEEL_GEAR_RATIO);
m_rightEncoder.setdistancePerpulse(WHEEL_CIRCUM_IN / 360.0 / ENCODER_TO_WHEEL_GEAR_RATIO);
resetEncoders();
m_yawGyro = new Gyro(RobotMap.CHASSIS_YAW_RATE_ANALOG_BREAKOUT_PORT);
m_yawGyro.setSensitivity(0.007); // 7 mV/deg/sec
// SmartDashboard.putNumber("Move NonLinear ",m_moveNonLinear);
// SmartDashboard.putNumber("Steer NonLinear ",m_steerNonLinear);
// SmartDashboard.putNumber("Move Scale ",m_moveScale);
// SmartDashboard.putNumber("Steer Scale ",m_steerScale);
// SmartDashboard.putNumber("Move Trim ",-m_moveTrim);
// SmartDashboard.putNumber("Steer Trim ",m_steerTrim);
} catch (Exception e) {
System.out.println("UnkNown error initializing chassis. Message = " + e.getMessage());
}
}
项目:Team_3200_2014_Aerial_Assist
文件:DriveBase.java
private void init() {
if (!initialized) {
flTalon = new Talon(RobotMap.DIGITAL_MODULE,RobotMap.FL_WHEEL);
frTalon = new Talon(RobotMap.DIGITAL_MODULE,RobotMap.FR_WHEEL);
blTalon = new Talon(RobotMap.DIGITAL_MODULE,RobotMap.BL_WHEEL);
brTalon = new Talon(RobotMap.DIGITAL_MODULE,RobotMap.BR_WHEEL);
System.out.println("Module: "+ RobotMap.DIGITAL_MODULE +" used for drive.");
System.out.println("FL wheel at: "+ RobotMap.FL_WHEEL +" FR wheel at: "+ RobotMap.FR_WHEEL);
System.out.println("BL wheel at: "+ RobotMap.BL_WHEEL +" BR wheel at: "+ RobotMap.BR_WHEEL);
// if (useRobotDrive)
robotDrive = new RobotDrive(flTalon,blTalon,frTalon,brTalon);
// else
// robotDrive = null;
aButton_Held = false;
driveForward = true;
SmartDashboard.putBoolean("Drive_Direction",driveForward);
leftEncoder = new Encoder(RobotMap.DIGITAL_MODULE,RobotMap.LEFT_ENCODER_A,RobotMap.DIGITAL_MODULE,RobotMap.LEFT_ENCODER_B,CounterBase.EncodingType.k4X);
rightEncoder = new Encoder(RobotMap.DIGITAL_MODULE,RobotMap.RIGHT_ENCODER_A,RobotMap.RIGHT_ENCODER_B,CounterBase.EncodingType.k4X);
// leftEncoder.setReverseDirection(false);
leftEncoder.setReverseDirection(true); // Flipped on comp bot
leftEncoder.setMinRate(10);
leftEncoder.setdistancePerpulse(6 * Math.PI / 250);
leftEncoder.start();
// rightEncoder.setReverseDirection(true);
rightEncoder.setReverseDirection(false); // Flipped on comp bot
rightEncoder.setMinRate(10);
rightEncoder.setdistancePerpulse(6 * Math.PI / 250);
rightEncoder.start();
gyro = new Gyro(RobotMap.ANALOG_MODULE,RobotMap.GYRO);
SmartDashboard.putNumber("Max turn speed",1);
}
initialized = true;
}
项目:rover
文件:RobotMap.java
public static void init() {
//initialize encoders
frontWheelEncoder = new Encoder(1,CounterBase.EncodingType.k2X);
frontWheelEncoder.setdistancePerpulse(WHEEL_ENCODER_disTANCE_PER_TICK);
frontWheelEncoder.setPIDSourceParameter(PIDSource.PIDSourceParameter.kRate); // have encoder measure rate,not distance
frontWheelEncoder.start();
LiveWindow.addSensor("Drivetrain","frontWheelEncoder",frontWheelEncoder);
leftWheelEncoder = new Encoder(1,3,4,CounterBase.EncodingType.k2X);
leftWheelEncoder.setdistancePerpulse(WHEEL_ENCODER_disTANCE_PER_TICK);
leftWheelEncoder.setPIDSourceParameter(PIDSource.PIDSourceParameter.kRate); // have encoder measure rate,not distance
leftWheelEncoder.start();
LiveWindow.addSensor("Drivetrain","leftWheelEncoder",leftWheelEncoder);
backWheelEncoder = new Encoder(1,5,6,CounterBase.EncodingType.k2X);
backWheelEncoder.setdistancePerpulse(WHEEL_ENCODER_disTANCE_PER_TICK);
backWheelEncoder.setPIDSourceParameter(PIDSource.PIDSourceParameter.kRate); // have encoder measure rate,not distance
backWheelEncoder.start();
LiveWindow.addSensor("Drivetrain","backWheelEncoder",backWheelEncoder);
rightWheelEncoder = new Encoder(1,8,CounterBase.EncodingType.k2X);
rightWheelEncoder.setdistancePerpulse(WHEEL_ENCODER_disTANCE_PER_TICK);
rightWheelEncoder.setPIDSourceParameter(PIDSource.PIDSourceParameter.kRate); // have encoder measure rate,not distance
rightWheelEncoder.start();
LiveWindow.addSensor("Drivetrain","rightWheelEncoder",rightWheelEncoder);
frontModuleEncoder = new Encoder(2,CounterBase.EncodingType.k2X);
frontModuleEncoder.setdistancePerpulse(MODULE_ENCODER_disTANCE_PER_TICK);
frontModuleEncoder.setPIDSourceParameter(PIDSource.PIDSourceParameter.kdistance); // have encoder measure rate,not distance
frontModuleEncoder.start();
LiveWindow.addSensor("Drivetrain","frontModuleEncoder",frontModuleEncoder);
leftModuleEncoder = new Encoder(2,CounterBase.EncodingType.k2X);
leftModuleEncoder.setdistancePerpulse(MODULE_ENCODER_disTANCE_PER_TICK);
leftModuleEncoder.setPIDSourceParameter(PIDSource.PIDSourceParameter.kdistance); // have encoder measure rate,not distance
leftModuleEncoder.start();
LiveWindow.addSensor("Drivetrain","leftModuleEncoder",leftModuleEncoder);
backModuleEncoder = new Encoder(2,CounterBase.EncodingType.k2X);
backModuleEncoder.setdistancePerpulse(MODULE_ENCODER_disTANCE_PER_TICK);
backModuleEncoder.setPIDSourceParameter(PIDSource.PIDSourceParameter.kdistance); // have encoder measure rate,not distance
backModuleEncoder.start();
LiveWindow.addSensor("Drivetrain","backModuleEncoder",backModuleEncoder);
rightModuleEncoder = new Encoder(2,CounterBase.EncodingType.k2X);
rightModuleEncoder.setdistancePerpulse(MODULE_ENCODER_disTANCE_PER_TICK);
rightModuleEncoder.setPIDSourceParameter(PIDSource.PIDSourceParameter.kdistance); // have encoder measure rate,not distance
rightModuleEncoder.start();
LiveWindow.addSensor("Drivetrain","rightModuleEncoder",rightModuleEncoder);
//initialize motors
frontWheelMotor = new Victor246(1,1);
LiveWindow.addActuator("Drivetrain","frontWheelMotor",(Victor) frontWheelMotor);
leftWheelMotor = new Victor246(1,2);
LiveWindow.addActuator("Drivetrain","leftWheelMotor",(Victor) leftWheelMotor);
backWheelMotor = new Victor246(1,3);
LiveWindow.addActuator("Drivetrain","backWheelMotor",(Victor) backWheelMotor);
rightWheelMotor = new Victor246(1,4);
LiveWindow.addActuator("Drivetrain","rightWheelMotor",(Victor) rightWheelMotor);
frontModuleMotor = new Jaguar246(2,"frontModuleMotor",(Jaguar) frontModuleMotor);
leftModuleMotor = new Jaguar246(2,"leftModuleMotor",(Jaguar) leftModuleMotor);
backModuleMotor = new Jaguar246(2,"backModuleMotor",(Jaguar) backModuleMotor);
rightModuleMotor = new Jaguar246(2,"rightModuleMotor",(Jaguar) rightModuleMotor);
//initialize limit switch
angleZeroingButton = new DigitalInput(1,9);
LiveWindow.addSensor("Drivetrain","encoderZeroingSwitch",angleZeroingButton);
}
项目:frc-2013-offseason
文件:Drive.java
public Builder leftEncoder(int a,int b) {
drive.leftEncoder = new Encoder(a,b,CounterBase.EncodingType.k1X);
return this;
}
项目:frc-2013-offseason
文件:Drive.java
public Builder rightEncoder(int a,int b) {
drive.rightEncoder = new Encoder(a,CounterBase.EncodingType.k1X);
return this;
}
项目:FRC2013
文件:Drive.java
public Builder leftEncoder(int a,CounterBase.EncodingType.k1X);
return this;
}
项目:FRC2013
文件:Drive.java
public Builder rightEncoder(int a,CounterBase.EncodingType.k1X);
return this;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。