Controller: Tank Drive Exploration - Python
Quantity | Materials Needed |
---|---|
1 |
VEX V5 Classroom Starter Kit (with up-to-date firmware) |
1 |
VEXcode V5 (latest version, Windows, macOS) |
1 |
Engineering Notebook |
1 |
Tank Control Example Project |
2 or more |
Classroom objects to be used as obstacles |
This activity will give you the tools to program your Controller.
- VEXcode V5 Python instructions that will be used in this exploration:
- left_motor.set_velocity()
- right_motor.set_velocity()
- left_motor.spin()
- right_motor.spin()
- controller_1.axis2.position()
- controller_1.axis3.position()
- while True:
- wait(5, SECONDS)
For more information about any of the instructions, visit the Python help sections in VEXcode V5.
Step 1: Let's start programming the Controller.
- Select File and Open Examples.
- Scroll through the different Example projects. Select the Tank Control example project.
- Open the Tank Control example project. The example project configures the drivetrain and controller. The code will look like the following snippet:
# Library imports
from vex import *
# Begin project code
# Main Controller loop to set motors to controller axis postiions
while True:
left_motor.set_velocity(controller_1.axis3.position(), PERCENT)
right_motor.set_velocity(controller_1.axis2.position(), PERCENT)
left_motor.spin(FORWARD)
right_motor.spin(FORWARD)
wait(5, MSEC)
Do the following in your engineering notebook:
- Predict what the project will have the Clawbot do. Explain more than the fact that the project utilizes the Controller.
- How do the joysticks move the robot? What is the Clawbot doing?
- Name the project TankControl. Save, download, and run the Python TankControl project.
- For more help information, watch the tutorial video in VEXcode V5 explaining how to Download and Run a project.
- Check your explanations of the project in your engineering notebook and add notes to correct them as needed.
Step 2: Controller: Tank Control
What are the benefits of using the while True infinite loop structure?
Here is our project without the while True infinite loop structure:
# Library imports
from vex import *
# Begin project code
# Main Controller loop to set motors to controller axis postiions
left_motor.set_velocity(controller_1.axis3.position(), PERCENT)
right_motor.set_velocity(controller_1.axis2.position(), PERCENT)
left_motor.spin(FORWARD)
right_motor.spin(FORWARD)
What do you think would happen if this program were run? Discuss as a group. Write down your prediction in the engineering notebook.
Navigate a Slalom Course!
Slaloms are courses which the participant must navigate around the set flags, or markers. Ski slaloms are a popular winter sport and are included in the Winter Olympics.
Now that the Controller is paired and the Python project is downloaded, you are ready to move your Clawbot using the Controller!
- Collect the four classroom items you will use as flags in your slalom from the teacher.
- Collaborate to set the flags in place for the Driver to navigate the Clawbot around, according to the slalom diagram.
- Download the Tank Control Example project. If there are any questions about how to download a project, check out the Download and Run a Project tutorial.
Use the Controller to move your Clawbot along the outside of each “flag.” The robot’s path must prevent it from touching any flag, and allow it to cross the finish line.
- Run the project and drive the Clawbot forward and reverse, and turn left and right using both Joysticks.
- Time how long it takes for the Clawbot to complete the course. Document the times in the engineering notebook.
- How fast can you get Clawbot through the Slalom course?