V EX C OACHES ' T RAINING October 12, 2013. Agenda for Today 9 – 10 AM : Tina Reeves and the...

Post on 17-Dec-2015

215 views 0 download

Tags:

transcript

VEX COACHES' TRAINING

October 12, 2013

Agenda for Today

• 9 – 10 AM : Tina Reeves and the Engineering Notebook

• 10 – Noon : Finish Building, Basic Robot C• 12-12:30 : Lunch• 12:30 – 2:30 Basic Programs, Functions,

Robot C Video Trainer, Setting up Competition Template

• 2:30-3:00 Wrap up, Clean Up

Engineering Notebook

Continue Building

• 4 motors wired as last step in build– 3 to 2 wire converters

• Get charged battery• 9V back-up battery?

Program Basics – Drive Motors• Motors to achieve “tank drive”– Left stick (ch3) drive left wheels– Right stick (ch2) drive right wheels– Other modes: Arcade – 1 stick drives and turns

• Left drive motor connected to Port 1– Port 1 is a dedicated 2 wire port

• Right drive motor connected to Port 10– Port 10 is a dedicated 2 wire port

• For today, VEXnet joystick will control drive

Program Basics – Arm and Claw motors

• 1 motor dedicated to raise and lower arm– Port 7 will be used with a 3 to 2 wire converter– We will assign it to Ch2 on partner joystick

• 1 motor used to open and close the claw– Port 6 will be used with a 3 to 2 converter– We will assign button 5U to open claw– We will assign button 5D to close claw

Writing a Basic Program

• All new files begin withtask main()

{

}

Code you want the robot to run goes between the braces

Writing a Basic Program

• After task main() – All code that needs to be continuously executed

must be enclosed in a while () statement

while (true){

}

Sample Drive Program

Sample Drive - Download

• Once program is entered– Click Robot tab and select Compile• You will be asked to save file• Give it an easy to identify name

• Use Wireless programming cable– Connect USB side to same port on computer– Connect phone jack to VEXnet joystick– Turn on Cortex and joystick and wait for them to

sync

Sample Drive - Download• Select Robot tab and

click Compile and Download

• Program will be sent to Cortex over wifi

• When done, click on Start and disconnect phone jack

• Drive!• May have to reverse

negative sign.

Other Programming Method…

• New programming wireless kit exists– Provides constant power to joystick

• You can use USB A – A cable– Connect cable to Cortex directly– Compile and Download– Reset Cortex afterwards and sync with joystick– Be careful with this method• Continuously removing/inserting VEX key will lead to

undue wear and eventual VEXnet issues

Complete 2 Joystick Program

Notes on Motor Speed

• In VEX, motor speed and direction controlled by a +/- number between -127 and +127– Negative 127 is full on “reverse”– Positive 127 is full “forward”– Sometimes, we switch the sign– Zero is always “Stop”

• Any value in-between can be assigned to a motor

• Analog joystick Ch 1,2,3,4 return such a value

A simple Autonomous Program

• This program will take drive commands away and make the robot run entirely by a string of commands

• See Sample Program 03 – Simple Auto

Combine Programs to Make a Homemade Competition Template

• Every VEX game has a an Autonomous and Driver modes– 15 seconds Auto– 1min 45 seconds of driver commands

• Sample 04 – Homemade Competition will combine the two previous examples

Homemade Competition Template

• You can copy and paste simple autonomous in the 15 second section

• You can copy and basic drive commands into the 1min 45 second section

More Efficient Program…• Writing the same code over and over gets

boring• Better to write it once and recycle• In Robot C, Functions are segments of code

that can be called upon whenever needed– You can pass a variable to Functions– Functions can return values• For us today, we will just use simple variable accepting

functions

Program with Functions: Sample 05-Functions Program

int fullSpeed = 127; //global variable for full speed

int halfSpeed = 64; //global variable for 1/2 speed

int quarterSpeed = 32; //global variable for 1/4 speed

void forward(int waitTime){ motor[port1]=halfSpeed; //Turn on motors and go forward

motor[port10]=-halfSpeed; //desired speed

wait1Msec(waitTime); //for desired time

}

Program with Functions: Sample 05-Functions Program

Better Motor Definitions

• Using Port # is cumbersome– Any changes in port assignment means changes

through whole program– Port # doesn’t tell you anything about the

function of the motor when reviewing code• Better to use a labeling system to set motors

and sensors– Under Robot Tab• Motor and Sensor Setup

Motor and Sensor Set Up

Motor and Sensor Set Up

Motor and Sensor Set Up• We label left motor on port 1 – leftDrive– Set it as a 393 regular motor

• We label right motor on port 10 – rightDrive– Set it as a 393 regular motor– Note we selected to reverse it– Program will now handle inverted motors

• Claw on port 6 – clawMotor• Arm on port7 - armMotor

Motor and Sensor Set Up

• Program adds the following header– Don’t modify directly– Any edits should be done in the window

• This will make changing port numbers later on much easier

Sample 06 – Sample Program

Competition Template• Once all code has been debugged and tested to

satisfaction, time to copy and paste it to competition template file

• Competition Template is a sample program found under File->Open Sample Program– Select VEX2 ->Templates– Open VEX_Competition_Template

• You can Copy and Paste your variables, functions, autonomous commands, and driver controls

• You need to retype Motor and Sensor set up

Competition Program

Competition Program

Competition Program

Competition Program

Competition Program

Robot C Curriculum Trainer

• Step by Step Instruction Series of videos and documents that teach how to use Robot C

VEX Cortex Video Trainer

Virtual Worlds

• You can start practicing your programming skills

• Lets you virtually control a preset robot with defined motors and sensors

• Can play Toss Up• You must change Compile Target to Virtual

World under Robot Tab

Virtual Worlds

Virtual Worlds

• When ready to test, compile and download code– Virtual World will launch– Can click start and test– Login as Guest

• Can also drive robot around to practice– Must select Robot Skills mode– AWSD steers, <> raises arm, ; ‘ open close claw

Virtual Worlds