Presentation is loading. Please wait.

Presentation is loading. Please wait.

Coding for the FIRST Tech Challenge: RobotC

Similar presentations


Presentation on theme: "Coding for the FIRST Tech Challenge: RobotC"— Presentation transcript:

1 Coding for the FIRST Tech Challenge: RobotC
Presented by: Team Unlimited FTC 0001

2 Presentation Overview
Why RobotC? Where to Download Coding Basics RobotC Overview & Basics Sample code References Q & A More Code RobotC

3 Why RobotC? Speed Control Personal Preference
RobotC runs quicker on the NXT Differences in speed are small until larger code is written Control In RobotC you have control over almost everything Real Time Debugger to allow viewing of code line by line while running Personal Preference Text base control Advanced math functions Team Decision RobotC

4 Downloading RobotC can be downloaded from robotc.net/ftc RobotC

5 Hardware Review Servo Can only go 180 degrees
In code, it is from 0 to 255 DC Motor Continuous Controlled by power rather than degree (+100 forward to -100 backward) 180° 255 RobotC

6 Plan the Code Get a diagram of the field
Draw the general routine w/ arrows and numbers Make side notes noting what happens at each time interval Start your first draft of the code RobotC

7 Coding Basics Comments: Example: “//” is used as a line comment
“/*” is the beginning of a group comment “*/” ends a group comment Comments never affect the function of code Always comment code so your team members understand it! Example: RobotC

8 Dead Reckoning vs. Sensing
A prewritten routine Code flows A to B to C If interrupted, will only try to continue Easier to write Sensing Routine that can adapt Code flows, but can respond If interrupted, can attempt to correct More complicated RobotC

9 Time vs. Rotations Time Rotations Dependant on battery life
Useful for squaring on a wall Can be imprecise Used often for manipulators Rotations Independent of battery life Useful for replicating a routine repeatedly Very precise, always the same rotations Used often for movement RobotC

10 Reacting to the Environment
Sense the world and react to it Touch switch is pressed, against something Ultrasonic rapidly changes, something crossed paths Light sensor spikes, on a line or off a line Useful to be able to change course Code “thinks” for itself Only as smart as YOU code it! RobotC

11 Flow of the Code Flow from place to place Make things easy to fix
DON’T JUMP ALL OVER THE PLACE! Structure the code ahead of time, plan it out Make things easy to fix Make your code neat and clean Plan the code out ahead of time Don’t haphazardly place code in Order your code Do you want an interrupt? Is there an importance to the steps? RobotC

12 Commenting Use comments to remind yourself
Often you will forget why something is in the code Explains to the JUDGES what you were thinking Allows for easy corrections Write complete thoughts “Checks for a touch sensor being pressed, if not, continue” Use them LIBERALLY RobotC

13 RobotC Home Screen RobotC

14 RobotC Basics Make sure you are on version 3.00
If not, uninstall RobotC COMPLETELY before installing the newest version Use the Sample codes included in RobotC Access by File > Open Sample Programs Save RobotC files in separate location on Hard Drive Download and watch coding presentations at Robotics Academy RobotC

15 Starting up RobotC Open RobotC
Change Menu Level to Expert (for FTC purposes) Window > Menu Level > Expert Change Platform to FTC Robot > Platform Type > FIRST Tech Challenge (NXT) Close RobotC and Reopen Open a blank file File > New Ctrl + N Download Firmware to NXT Robot > Download Firmware (more to come later) Rename NXT RobotC

16 Connect NXT RobotC

17 Select NXT Brick RobotC

18 Selecting the Firmware
RobotC

19 Download and Complete Make sure this message appears before exiting
RobotC

20 Rename NXT RobotC

21 Name Your NXT Type in the name for your NXT (default is NXT)
Recommended name is your team number to four digits (i.e FTC #0001 is 0001 If you have more than one NXT, place an A, B, etc. after the number RobotC

22 Connecting to Bluetooth
1. Go to Robot > NXT Brick > Link Setup RobotC

23 Connecting to Bluetooth
2. Make sure that this box is checked to perform a bluetooth search 2. Select here to make a pair between the NXT and your laptop RobotC

24 Bluetooth at the Competition
Take from the Field Preparation Guide (you can find it here) Remember to always do these steps at the Playing Field RobotC

25 Bluetooth at the Competition
RobotC

26 RobotC Menu Compile and Download Compile Program Debugger
Compiles and downloads Compile Program Compiles locally Debugger Scans code for errors Motor & Sensor Setup Set up Motor and Sensors Download firmware Download firmware to NXT RobotC

27 RobotC Menu Link Setup Poll Brick File Management Joystick Control
Used to establish a link between NXT and Computer Poll Brick “Online Window” File Management Manage files on the NXT Joystick Control “FTC Controller Station” RobotC

28 RobotC Debugger Allows for program control wirelessly
Allows to view where the code is currently Allows to view errors in your code while running RobotC

29 RobotC Debugger Buttons
Start/Stop – Starts or Aborts Program Suspend – Pauses code Step Into – Pauses code and proceeds to next line Step Over – Pauses code and skips over next procedure Step Out - Pauses code and exits procedure Clear All – Resets all values to default Refresh Rate Once – Refreshes values manually Continuous/Stop – Switch between continuous and stop updating RobotC

30 RobotC Debugger Joystick Control
“FTC Controller Station” Allows control over Teleoperator and Autonomous Views controller data RobotC

31 RobotC “Loops” While statement If statement Else statement
Performs code as long as the statement is true I.e. while (ServoValue[Servo1] < 255) If statement Performs entirety of code if statement is true I.e. if (sensorValue[Touch] == 0) Else statement Performs entirety of code if “If Statement” is false i.e. else RobotC

32 RobotC Punctuation Brackets { } Semicolons ; Square Brackets [ ]
Used to control flow of code Semicolons ; Used after lines to denote an end Square Brackets [ ] Used for sensors and motor declarations Parenthesis () Used for time and math functions RobotC

33 RobotC Operators == (test a condition) = (equals)
i.e. while (sensorValue[Touch] == 0) = (equals) i.e. motor[motorD] = 0; < , > (less than, greater than) i.e. if ( -10 < joystick.joy1_y1 < 10 ) || (or) i.e. if ( joy1Btn(1) || joystick.joy2_TopHat == 0 ) RobotC

34 RobotC Commenting // TEXT /* TEXT */ /*
Comments out a single line of text /* TEXT */ Comments out all text within the /* and */ /* Comments out all text after RobotC

35 RobotC Simple Program RobotC

36 Sample Code FTC Template Joystick Control DC Drive Motor sample
NXT Motor sample Servo sample Touch Sensor sample Light Sensor sample Ultrasonic Sensor sample Compass Sensor sample RobotC

37 Using FTC Templates Using the Template (take from here) RobotC

38 Using FTC Templates RobotC

39 Using FTC Templates RobotC

40 Teleop Template RobotC

41 Autonomous Template RobotC

42 Joystick Control Sample
RobotC

43 DC Motor Sample RobotC

44 NXT Motor Sample RobotC

45 Servo Sample RobotC

46 Touch Center Sample RobotC

47 Light Sensor Sample RobotC

48 Light Sensor Sample RobotC

49 Ultrasonic Sensor Sample
RobotC

50 Compass Sensor Sample RobotC

51 Field Diagram RobotC

52 RobotC Resources RobotC RobotC Forums Robotics Academy
FTC Function Guide (From Robotics Academy) Setting up Dual Template Mode Field Procedures for Bluetooth Software Information (Links at our website) Code and Software Presentation RobotC

53 RobotC Resources RobotC Sample code
Program files > Robotics Academy > RobotC for Mindstorms > Sample Programs > NXT File > Open Sample Programs (if RobotC is open) RobotC

54 Coding for the FIRST Tech Challenge: RobotC
Questions? unlimited.syraweb.org


Download ppt "Coding for the FIRST Tech Challenge: RobotC"

Similar presentations


Ads by Google