本文整理汇总了C++中Encoder::GetRaw方法的典型用法代码示例。如果您正苦于以下问题:C++ Encoder::GetRaw方法的具体用法?C++ Encoder::GetRaw怎么用?C++ Encoder::GetRaw使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Encoder
的用法示例。
在下文中一共展示了Encoder::GetRaw方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TeleopPeriodic
// During every loop intervel of the teleop period
void Robot::TeleopPeriodic() {
// Tank drive, both left and right joystick control their respective motor along the
// joystick's 'y' axis
//myRobot.TankDrive(-rStick.GetRawAxis(RIGHT_STICK_Y), -lStick.GetRawAxis(LEFT_STICK_Y));
//myRobot.TankDrive(-gamePad.GetRawAxis(GAMEPAD_LEFT_STICK_Y), -gamePad.GetRawAxis(GAMEPAD_RIGHT_STICK_Y));
// Choose the teleop drive option
DriverControl(driveOption);
// Edits the gyro data to account for drift
/*
editedGyroRate = gyro.GetRate();
if (gyro.GetRate() > GYRO_DRIFT_VALUE_MIN && gyro.GetRate() < GYRO_DRIFT_VALUE_MAX) {
editedGyroRate = 0;
} else {
editedGyroRate += GYRO_DRIFT_VALUE_AVERAGE;
}
*/
editedGyroAngle = gyro.GetAngle();
SmartDashboard::PutString("Operation Type:", "TeleOp");
// Print gyro data
if (showGyro == true) {
SmartDashboard::PutNumber("Gyro Angle (Raw)", gyro.GetAngle()*GYRO_SCALE_FACTOR);
SmartDashboard::PutNumber("Gyro Angle (Edited)", editedGyroAngle*GYRO_SCALE_FACTOR);
SmartDashboard::PutNumber("Gyro Rate (Raw)", gyro.GetRate()*GYRO_SCALE_FACTOR);
SmartDashboard::PutNumber("Gyro Rate (Edited)", editedGyroRate*GYRO_SCALE_FACTOR);
}
// Print out the encoder data
// Raw encoder data
if (showEncoderRaw == true) {
SmartDashboard::PutNumber("Encoder L get raw", encoder1.GetRaw());
SmartDashboard::PutNumber("Encoder R get raw", encoder2.GetRaw());
}
// The delta encoder change
if (showEncoderRate == true) {
SmartDashboard::PutNumber("Encoder L get rate", encoder1.GetRate());
SmartDashboard::PutNumber("Encoder R (reversed) get rate", encoder2.GetRate());
}
// Print the encoder index
if (showEncoderIndex == true) {
SmartDashboard::PutNumber("Encoder L index", encoder1.GetFPGAIndex());
SmartDashboard::PutNumber("Encoder R index", encoder2.GetFPGAIndex());
}
}
示例2: TeleopPeriodic
// During every loop intervel of the teleop period
void Robot::TeleopPeriodic() {
// Tank drive, both left and right joystick control their respective motor along the
// joystick's 'y' axis
//myRobot.TankDrive(-rStick.GetRawAxis(RIGHT_STICK_Y), -lStick.GetRawAxis(LEFT_STICK_Y));
// Choose the teleop drive option
for(int c=0;c<7;c++) {
buttonDone[c] = false;
}
DriverControl(driveOption);
if(fabs(gyro.GetRate()) > GYRO_DRIFT_VALUE) {
editedGyroRate = gyro.GetAngle();
}
else {
editedGyroRate = 0;
gyro.Reset();
}
SmartDashboard::PutString("Operation Type:", "TeleOp");
// Print gyro data
if (showGyro == true) {
SmartDashboard::PutNumber("Gyro Angle", gyro.GetAngle()*GYRO_SCALE_FACTOR);
SmartDashboard::PutNumber("Gyro Rate (Raw)", gyro.GetRate()*GYRO_SCALE_FACTOR);
SmartDashboard::PutNumber("Gyro Rate (Edited)", editedGyroRate*GYRO_SCALE_FACTOR);
}
// Print out the encoder data
// Raw encoder data
if (showEncoderRaw == true) {
SmartDashboard::PutNumber("Encoder L get raw", encoder1.GetRaw());
SmartDashboard::PutNumber("Encoder R get raw", encoder2.GetRaw());
}
// The delta encoder change
if (showEncoderRate == true) {
SmartDashboard::PutNumber("Encoder L get rate", encoder1.GetRate());
SmartDashboard::PutNumber("Encoder R (reversed) get rate", encoder2.GetRate());
}
// Print the encoder index
if (showEncoderIndex == true) {
SmartDashboard::PutNumber("Encoder L index", encoder1.GetFPGAIndex());
SmartDashboard::PutNumber("Encoder R index", encoder2.GetFPGAIndex());
}
}
示例3: AutonomousPeriodic
// When the robot is on autonomous period, it will drive forwards at half speed for about two
// seconds, then stops
void Robot::AutonomousPeriodic() {
/*
if(autoLoopCounter < 100) { //Check if we've completed 100 loops (approximately 2 seconds)
myRobot.Drive(-0.5, 0.0); // drive forwards half speed
autoLoopCounter++;
} else {
myRobot.Drive(0.0, 0.0); // stop robot
}
*/
// Correct course (adjust for physical motor imperfections) based on encoders
// Print the raw encoder data
SmartDashboard::PutNumber("Encoder L get raw", encoder1.GetRaw());
SmartDashboard::PutNumber("Encoder R get raw", encoder2.GetRaw());
}
示例4: OperatorControl
void OperatorControl(void) {
char count=0;
double target = 0, speed = 0;
while(!IsDisabled()) {
double tmpStick = -1*stick.GetRawAxis(2);
if(tmpStick < .2 && tmpStick > -.2) tmpStick=0;
target += tmpStick*1.5;
int location = enc.GetRaw();
if(stick.GetRawButton(5)) {
up.Set(true);
down.Set(false);
}else if(stick.GetRawButton(7) && location > 0) {
down.Set(true);
up.Set(false);
}else if(stick.GetRawButton(8)) {
down.Set(true);
up.Set(false);
}else if(stick.GetRawButton(9)){
speed = pid(target, location);
if(speed > 1) {
up.Set(true);
down.Set(false);
}else if(speed < -1) {
up.Set(false);
down.Set(true);
}else{
up.Set(false);
down.Set(false);
}
}else if(stick.GetRawButton(10)) {
enc.Reset();
}else{
up.Set(false);
down.Set(false);
}
if(stick.GetRawButton(1))
target = 2;
if(stick.GetRawButton(4))
target = 400;
if(stick.GetRawButton(3))
target = 200;
if(stick.GetRawButton(2))
target = 70;
Wait(.02);
while(count++%30==0) cerr << location << '\t' << target << '\t' << speed << endl;
}
}
示例5: TeleopPeriodic
/**
* Periodic code for teleop mode should go here.
*
* Use this method for code which will be called periodically at a regular
* rate while the robot is in teleop mode.
*/
void RobotDemo::TeleopPeriodic()
{
m_robotDrive.MecanumDrive_Cartesian(m_driveStick.GetX(), m_driveStick.GetY(), m_driveStick2.GetX(), m_gyro.GetAngle());
printf("rate: %d\n", (int) m_encoder.GetRaw());
}
示例6: OperatorControl
/**
* Runs the motor from the output of a Joystick.
*/
void OperatorControl() {
LifterEncoder.StartLiveWindowMode();
LifterEncoder.Reset();
while (IsOperatorControl() && IsEnabled()) {
// Set the motor controller's output.
// This takes a number from -1 (100% speed in reverse) to +1 (100% speed forwards).
// lifterA_motor.Set(joy.GetY());
// lifterB_motor.Set(joy.GetY());
if ( stick.GetRawButton(1))
{
}
else if (stick.GetRawButton(2))
{
}
else if (stick.GetRawButton(3))
{
// Elevator down
if (BottomLimitSwitch.Get() == 0) {
lifterA_motor.Set(0.5);
lifterB_motor.Set(0.5);
} else {
lifterA_motor.Set(0);
lifterB_motor.Set(0);
}
}
else if (stick.GetRawButton(4))
{
}
else if (stick.GetRawButton(5))
{
// Elevator up
if (TopLimitSwitch.Get() == 0) {
lifterA_motor.Set(-0.5);
lifterB_motor.Set(-0.5);
} else {
lifterA_motor.Set(0);
lifterB_motor.Set(0);
}
}
else if (stick.GetRawButton(6))
{
}
else if (stick.GetRawButton(7))
{
}
else if (stick.GetRawButton(8))
{
}
else if (stick.GetRawButton(9))
{
}
else if (stick.GetRawButton(10))
{
}
else if (stick.GetRawButton(11))
{
}
else if (stick.GetRawButton(12))
{
}
else
{
lifterA_motor.Set(0.0);
lifterB_motor.Set(0.0);
}
if(BottomLimitSwitch.Get()==true)
{
LifterEncoder.Reset();
}
// Send some stuff to the dashboard
SmartDashboard::PutBoolean("Top Limit Switch", TopLimitSwitch.Get());
SmartDashboard::PutBoolean("Bottom Limit Switch", BottomLimitSwitch.Get());
SmartDashboard::PutNumber("Encoder Position",LifterEncoder.GetRaw());
Wait(kUpdatePeriod); // Wait 5ms for the next update.
}
}