diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/MotorControl/src/Robot.cpp b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/MotorControl/src/Robot.cpp new file mode 100644 index 0000000000..2ae77b0205 --- /dev/null +++ b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/MotorControl/src/Robot.cpp @@ -0,0 +1,44 @@ +#include "WPILib.h" + +/** + * This sample program shows how to control a motor using a joystick. In the operator + * control part of the program, the joystick is read and the value is written to the motor. + * + * Joystick analog values range from -1 to 1 and speed controller inputs as range from + * -1 to 1 making it easy to work together. The program also delays a short time in the loop + * to allow other threads to run. This is generally a good idea, especially since the joystick + * values are only transmitted from the Driver Station once every 20ms. + */ +class Robot : public SampleRobot { + Joystick m_stick; + + // The motor to control with the Joystick. + // This uses a Talon speed controller; use the Victor or Jaguar classes for + // other speed controllers. + Talon m_motor; + + // update every 0.005 seconds/5 milliseconds. + double kUpdatePeriod = 0.005; + +public: + Robot() : + m_stick(0), // Initialize Joystick on port 0. + m_motor(0) // Initialize the Talon on channel 0. + { + } + + /** + * Runs the motor from the output of a Joystick. + */ + void OperatorControl() { + while (IsOperatorControl()) { + // Set the motor controller's output. + // This takes a number from -1 (100% speed in reverse) to +1 (100% speed forwards). + m_motor.Set(m_stick.GetY()); + + Wait(kUpdatePeriod); // Wait 5ms for the next update. + } + } +}; + +START_ROBOT_CLASS(Robot); diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/examples.xml b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/examples.xml index ca90c1a929..0ecad12a48 100644 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/examples.xml +++ b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/examples.xml @@ -87,6 +87,23 @@ Example programs that demonstrate the use of the various commonly used sensors on FRC robots + + Motor Controller + Demonstrate controlling a single motor with a Joystick. + + Robot and Motor + Actuators + Joystick + Complete List + + + src + + + + + + Arcade Drive An example program which the use of Arcade Drive with the RobotDrive class