Official VEX Forum
The VEX Certification System demonstrates to other educators that VEX certified educators understand the fundamentals of using and implementing VEX Robotics. The VEX Certification System also allows REC Foundation volunteers to demonstrate competency in various aspect of running a REC Foundation event. A VEX USB-to-Serial Programming cable In this lesson, you will learn how to install the Prolific USB-to-Serial Cable driver. Make sure you have administrative privileges on the computer before you begin. In a web browser, go to www.robotc.net/download/cortex, locate the section labeled “Download Prolific Driver to use the USB-to-Serial adapter”. VEXos is a robotics operating system that harnesses the flexibility and power of VEX hardware for the rigors of competition and the diverse needs of education. This operating system, written completely by VEX Robotics, uses real-time processing for repeatable operation at the fastest possible speeds.
You are more than welcome to contact us directly with any questions you have about VEX products or the game rules. Alternatively, the VEX Forum is the best place to chat with other VEX teams from all over the World, get answers from the VEX staff or ask questions about the game rules directly to FRC and VEX legend, Karthik Kangasabapathy, Chairman of the Game Design Committee!
VEX Tournament Manager
TMS is the software we use to run competitions. Be it a local scrimmage or the VEX World Championships, TMS runs pretty much every VEX competition worldwide. If you have your own field and field electronics, you can use it to run your own competitions.
The REC Foundation
The Robotics Education & Competition Foundation is a non-profit organisation which aims to increase student interest and involvement in STEM by engaging students in hands-on sustainable and affordable robotics engineering programs all over the world.
The REC Foundation operates and supports competitions for some of the world's leading robotics platforms and organizations, including VEX, TSA, and BEST Robotics.
This example shows how to use Simulink Coder Support Package for ARM Cortex-based VEX Microcontroller to implement both Autonomous mode and Driver mode in the same Simulink model. Autonomous mode, Driver mode and the switch between the two is a format that applies only to the VEX Robotics Competition. This model should be used only in a VEX Competition field where a VEX field controller controls the modes of the VEX Robot.(you can also use a VEX Competition Switch that simulates a VEX field controller for match practice )
Introduction
Simulink Coder Support Package for ARM Cortex-based VEX Microcontroller enables you to create and run Simulink models on a VEX microcontroller.
In this example you will learn how to program both Autonomous mode and Driver mode in the same Simulink model. The Driver mode will driver a DC motor mapped to the VEX gamepad, and the autonomous mode will driver a DC motor at maximum speed.
Prerequisites
If you are new to Simulink, we recommend watching the Simulink Quick Start video.
We recommend completing Getting Started with VEX Microcontroller Support Package.
Required Hardware
To run this example you will need the following hardware:
ARM Cortex-based VEX Microcontroller
VEXnet Gamepad and VEXnet keys
Standard DC Motor and Motor Controller
7.2V Battery
USB type A-Male to A-Male cable
VEXnet Competition Switch(or the VEX field controller used in the actual VEX Robotics Competition )
Task 1 - Hardware Connections
1. Connect the VEX Microcontroller to your computer with a USB cable.
2. Connect the DC motor to the motor pin3. Use the Motor Controller 29 cables to establish the connection between the motors leads and the pins on VEX Microcontroller.
3. Connect the battery supply to the VEX Microcontroller.
4. Connect the VEXnet Competition Switch to the Competition port on the VEXnet Gamepad using an Ethernet cable. On the VEXnet Competition Switch, set the Enable/Disable switch to Disable state and the Driver/Autonomous switch to Autonomous state.
Task 2 - Create a VEX Robotics Competition template model
1. In MATLAB, select HOME > New > Simulink Model > Blank Model > Create Model.
2. Click on the Library Browser to open the Simulink Library.
3. Select Simulink > Ports & Subsystems > Enabled Subsystem, drag and drop twice into your Simulink model. Rename the Enabled Subsystems Autonomous and Driver respectively.
4. Open vexarmcortexlib, drag and drop the Competition Switch block from the Gamepad library into your Simulink model.
5. Connect the Auto port of the Competition Switch to the Autonomous Enabled Subsystem, and the Driver port of the Competition Switch to the Driver Enabled Subsystem.
Task 3 - Implement Autonomous mode logic and Driver mode logic
1. Double click and open the Autonomous Enabled Subsystem. In the Autonomous Enabled Subsystem, delete the Inport, Outport and the connection between them.
2. Drag the Constant block from the Utilities in the VEX Microcontroller library. Set the value of the Constant block to 127.
3. Drag the DC Motor block from the Actuators library within the VEX Microcontroller library to your model. Rename it to SetMotor. Set the value of the Motor Channel to 3. Motor Channel is the pin to which the DC motor is connected.
4. Connect the Constant block to the input of the SetMotor block.
5. Click the Up to Parent button to return to the top level of the model.
6. Double click and open the Driver Enabled Subsystem. In the Driver Enabled Subsystem, delete the Inport, Outport and the connection between them.
7. Drag the DC Motor block from the Actuators library and the Gamepad Joystick block from the Gamepad library within the VEX Microcontroller library into your Simulink model.
8. Set the value of the Motor Channel to 3.
9. Connect the output of the Gamepad Joystick to the input of the DC Motor.
10. Save your model.
Task 4 - Build and Download the Simulink model
In this task you will open the Simulink model created in Task 2 and Task 3, build and download it to the VEX microcontroller.
1. Make sure to connect the VEX Microcontroller to your computer with a USB A-Male to A-Male cable.
2. Open the model created in task 2 and task 3 or, open the pre-configured model
included for your convenience.
3. In the Simulink model, click on the Configuration Parameters button.
4. When the Configuration Parameters page opens up, navigate to the Hardware Implementation pane.
Set the Hardware board to ARM Cortex-based VEX Microcontroller.
In the Target Hardware Resources section, set the Build options to Build, load and run to automatically download the generated binary file on to the connected VEX microcontroller.
5. In the Configuration Parameters page, navigate to Solver pane and set the Solver to discrete (no continuous states).
6. Click OK.
7. In your Simulink model, click the Build Model button on the toolbar. The model will now be deployed to the VEX microcontroller.
Task 5- Use the VEXnet Competition Switch to set the model in Autonomous mode or Driver mode
In this task you will learn how to set the Example model in Autonomous mode or Driver mode.
1. Disconnect the USB cable from the PC, and connect the VEX Microcontroller to the VEX gamepad using VEXnet keys. Also ensure that the VEXnet Competition Switch is connected to the VEX Gamepad via an Ethernet cable.
2. Turn on the VEX microcontroller and the VEXnet gamepad.
3. Set the Enable/Disable switch to Enable state (the Driver/Autonomous switch is already set to Autonomous state in Task 1). Now the model is in Autonomous mode. You will observe that the motor rotates at Maximum speed.
4. Set the Driver/Autonomous switch to Driver state. Now the model is in Driver mode. The motor stops rotating at maximum speed. You can control the motor through joystick horizontal axis 1 on the VEX Gamepad.
Drivers Vex Robotics
5. Set the Enable/Disable to Disable state. This will disable the robot. All the actuators (motors) will be inactive in this state.
Drivers Vex Robotics Games
Summary
This example introduced the workflow for implementing Autonomous mode and Driver mode with the Simulink Coder Support Package for ARM Cortex-based VEX Microcontroller