Robot C basics

Download Report

Transcript Robot C basics

VEX and Robot C
Presented by
Chris Patterson
Modified by J. Andazola
Robot C and Natural
Language
Natural Language
In short, Natural Language is a form of C
based programming that cuts down on
coding and makes things a bit simpler.
Natural Language
Example 1
• For Example,
– What do you think startMotor(rightMotor, 127);
does?
Natural Language - Until
Example 2
• For example, what might you expect the
following to do?
untilTouch(bumpSwitch);
startMotor(leftMotor, 63);
EXAMPLE 3
Example 3
• A motor turns on once the bump switch is
touched and then turns off once the limit
switch is touched.
Basic Output Programming
EXAMPLE 4
• Let’s turn on the rightMotor for 4 seconds and
then off for 4 seconds. Repeat this operation
twice.
Basic Output Programming – Example 4
Basic Output
Programming
Basic Output Programming – Example 5
• Turn on a motor and then wait 5 seconds. Set
servo to position 127 for 3 seconds and then
position 96 for 4 seconds.
EXAMPLE 5
• 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 5
Example 6 - What will this program do?
Basic Output Programming – Example
Natural Language - Until
• The program will wait at the “Until” line of
code. Once the condition for that sensor is
true, the program continues.
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
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
• setServo()
Programming with
Sensor Feedback
VEX Sensors Subsystem
• Digital Sensors:
• Analog Sensors:
-Bumper Switch
-Light Sensor
-Limit Switch
-Potentiometer
-Optical Shaft
Encoder
-Ultrasonic Range
Finder
-Line follower
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 rightMotor 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 T1 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?