VEX and Robot C Presented by Chris Patterson
VEX and Robot C Presented by Chris Patterson Frisco ISD CTE Center
The VEX Kit
VEX Robotics Platform: Testbed for Learning Programming
VEX Motion Subsystem – Motors • 2 -wire motor 269 – Two methods to connect to Cortex • Motor ports 1 and 10 • Motor port 2 -9 using Motor Controller 29 • 2 -wire motor 393
VEX Motion Subsystem – Servos • Similar in appearance to the 3 -wire motor • Very different in operation – – Rotates between 0 and 120 degrees Motor is set to a “power value” Servo is set to a “position value” -127 = 0 degrees, 0 = 60 degrees, 127 = 120 degrees, etc. – Natural Language command • set. Servo()
VEX Sensors Subsystem • Digital Sensors: • Analog Sensors: -Bumper Switch -Light Sensor -Limit Switch -Potentiometer -Optical Shaft Encoder -Ultrasonic Range Finder -Line follower
Robot C and Natural Language
Step #1
Step #2
Step #3
PLTW Template
Natural Language • In short, Natural Language is a form of C based programming that cuts down on coding and makes things a bit simpler. • For Example, – What do you think start. Motor(right. Motor, 127); does?
Natural Language - Movement
Natural Language -Special
Natural Language - Until • The program will wait at the “Until” line of code. Once the condition for that sensor is true, the program continues.
Natural Language - Until • For example, what might you expect the following to do? until. Touch(bump. Switch); start. Motor(left. Motor, 63);
Basic Output Programming
Behavior-Based Programming • A behavior is anything your robot does – Turning on a single motor or servo • Three main types of behaviors 1. Complex behaviors – Robot performs a complex task (automated fan control) 2. Simple behaviors – Simple task performed by the robot (fan stops when sensor activated) 3. Basic behaviors – Single commands to the robot (turn on a motor) • Complex behaviors can always be broken down into simple behaviors, which are then broken down into basic behaviors
Basic Output Programming EXAMPLE 1 • Let’s turn on the right. Motor for 4 seconds and then off for 4 seconds. Repeat this operation twice.
Basic Output Programming – Example 1
Basic Output Programming – Example 2 • Turn on a motor and then wait 5 seconds. Set servo to position 127 for 3 seconds and then position 96 for 4 seconds.
Basic Output Programming – Example 2
Programming with Sensor Feedback
Example 3 • A motor turns on once the bump switch is touched and then turns off once the limit switch is touched.
EXAMPLE 3
EXAMPLE 4 • A motor turns on clockwise at full power when the potentiometer is greater than 3000 and turns counterclockwise at full power when the potentiometer is less than 2000.
Example 4
Example 5 - What will this program do?
While and If-Else Loops
While Loops • While loop is a structure within ROBOTC • Allows a section of code to be repeated as long as a certain condition remains true • Three main parts to every while loop 1. The word “while” 2. The condition 3. Commands to be repeated
The Condition • Condition controls how long or how many times a while loop repeats – When condition is true, the while loop repeats – When condition is false, the while loop ends and the remainder of the program executes • Condition is checked once every time loop repeats before commands between curly braces are run
Revisit Example 1 EXAMPLE 1 • Let’s turn on the right. Motor for 4 seconds and then off for 4 seconds. Repeat this operation twice. • Instead of running it twice, let’s loop it continuously. (running it twice would require a variable, and we aren’t there quite yet)
While Loops – Example 1 Revisited
While Loops • The while loop has a true condition so it will always run. If the condition is always true, you cannot leave the while loop. • While loops can be based on a sensor condition as well. For example:
While Loops – Using a sensor condition
While Loops – Using Multiple Conditions
While Loop – Timers as Conditions Timer T 1 is used as the condition for the while loop, which will run for 30 seconds
If Statements • If statement in the program is evaluated by condition contained in parentheses – If condition is true, commands between braces are run – If condition is false, those commands are ignored • Very similar to how a while loop works, but does not repeat the code
If-Else Statements • If-else statement is an expansion of if statement – If checks condition and runs appropriate commands when it evaluates to true – Else allows code to run when condition is false – Either if or else branch is always run once
If Statements Example
Let’s revisit Example 4 • A motor turns on clockwise at full power when the potentiometer is greater than 3000 and turns counterclockwise at full power when the potentiometer is less than 2000
Example 4 – While loop and If-Else Statements
This is just the beginning… • You have been given enough tools to go out and EXPLORE on your own time. • Use the lessons in the PLTW curriculums to try out some of the activities and projects.
Questions?
- Slides: 45