Coding for the FIRST Tech Challenge: RobotC

Slides:



Advertisements
Similar presentations
Exercise 1: Install PC Software & NXT Firmware
Advertisements

Jason Howard. Agenda I. How to download robotc II. What is tele-op used for? III. How to build a basic tele-op program IV. Getting the robot to drive.
Team 5220 Roboknights. Outline  Getting Started  Hardware Setup/Wiring  Software Setup/Pragmas  Programming with RobotC  Grammar/Syntax  Basic Statements.
Getting Started in FIRST Tech Challenge TETRIX & FTC Field Control Overview.
Automation and Robotics
Developed in collaboration with Introduction to Programming.
Robot C Ready, SET, Go! Workshop SDSU, Fall 2013.
Autonomy using Encoders Intro to Robotics. Goal Our new task is to navigate a labyrinth. But this time we will NOT use motor commands in conjunction with.
RobotC Programming for LEGO Mindstorms NXT Carnegie Mellon Dacta Lego Timothy Friez Miha Štajdohar SOURCES:
 General notes/quirks › Letters only in the SSID › g & b only › Use a different router for internet and robotics › Use a simple password.
Introduction to NXT Software and Functionality Bot’oberfest October 15, 2007.
1 ©2006 INSciTE Lab Two Task: Make the program from Lab One (Move forward 5 rotations and turn right 90 degrees) into a MyBlock.
RobotC For Beginners Tyler Lutz and Keaton Bonds DRSS Enterprise.
The NXT is the brain of a MINDSTORMS® robot. It’s an intelligent, computer-controlled LEGO® brick that lets a MINDSTORMS robot come alive and perform.
Reviewing Common Blocks for St. Agnes Elementary School Teachers by Jenny Chang Feb. 26th, 2007 USC & University Neighborhood Outreach Robotics STEM program.
LEGO Mindstorms NXT Programming We will be using the Common Palette for our Robots This is how you download your program onto the brick Drag and drop a.
2008 – 2009 Team Unlimited (FTC # 1) Coding for the FIRST Tech Challenge NXT/G, LabVIEW & RobotC compared, and a Crash Course in RobotC Presented by Team.
What is RobotC?!?! Team 2425 Hydra. Overview What is RobotC What is RobotC used for What you need to program a robot How a robot program works Framework.
ROBOTC for VEX Online Professional Development
Presented by: FTC 4140 Fish in the Boat. Overview How to get and install RobotC How to connect to your robot Download firmware Building schematic and.
GIRLS Robotic Camp. Let’s Begin Meet and Greet – Camp leaders introduce themselves – Students introduce themselves.
Coding for the FIRST Tech Challenge: RobotC Presented by: Audrey Yeoh Acknowledgements: Team Unlimited FTC 0001.
ROBOTC for VEX On-Site Professional Development
The New FTC Platform (Connecting your legacy hardware)
Teacher/Mentor Institute Using easyC Joel Kirkland July 30-31, 2015.
Robot C Set-up FTC Clinic Nov Patrick Michaud & RobotC Curriculum
Reactive robots UPNA The Public University of Navarra Material for pupils & students.
Robotics Overview of NXT-G Actuators in Mindstorms. Touch sensor Labwork: Right turn. Touch/bump. [Explore move versus Motor Move mini & motor mini. Motor*.]
7.2 V battery pack and charger Put the battery in the charger station at the end of the lab. period. Red light indicates charging. Ken Youssefi Introduction.
EV3 Workshop Oct 3, 2015 Instructor: Chris Cartwright
AUTOMATION WITH ROBOTC Starting to write and troubleshoot computer code.
Lego MindStorm An Introduction to Blocks. Blocks Blocks are used to give instructions to your robot. There are many types of blocks You can use the blocks.
Castor Bot. Now, we will begin creating a robot Log onto your computer On your screen, click on the website labeled “castor bot” Your building instructions.
Understanding The 2008 FRC Robot Controller Chris Gregory FRC1089 – Team Mercury
LEGO® MINDSTORMS® NXT Move Block.
Session 11 Intro to FRC API.
Programming - Motion Intro to Robotics. Motors and Sensors Setup The first thing we need to do is tell ROBOTC that we have motors on our robot. Choose.
ROBOTC Software EV3 Robot Workshop
ROBOTC Software EV3 Robot Workshop Lawrence Technological University.
Deriving Consistency from LEGOs What we have learned in 6 years of FLL by Austin and Travis Schuh © 2005 Austin and Travis Schuh, all rights reserved.
Automation and Robotics.  First you select the platform type so that you can use Natural Language PLTW.
Testbed Coding In this activity you will code different challenges for the Testbed. For each challenge a sample program is shown. Use what this sample.
Programming Basics - RobotC Introduction to Robotics.
Testbed Coding In this activity you will code different challenges for the Testbed. For each challenge a sample program is shown. Use what this sample.
© 2006 Carnegie Mellon Robotics Academy Designed for use with the LEGO MINDSTORMS ® Education NXT Software and Base Set #9797 Sentry System Two-Way Communication.
After Construction Name: Per #:.
LEGO Robotics Workshop
Introduction to Programming in RobotC
OpModes in FTC Eric Golde.
Exploring Computer Science Lesson 6-5
Deriving Consistency from LEGOs
Mindstorms EV3 Programming
Introduction to Programming
ROBOTC for VEX Online Professional Development
Mindstorms EV3 Programming
Introduction To Programming with LEGO NXT 2
Programming Design ROBOTC Software Computer Integrated Manufacturing
Mindstorms EV3 Programming
Automation and Robotics
Exploring Computer Science Lesson 6-5
Controlling your quadcopter
Programming Basics - RobotC
Programming - Buttons Intro to Robotics.
Automation with RobotC
Programming - Buttons Intro to Robotics.
RobotC Programming for LEGO Mindstorms NXT
Automation with RobotC
Programming Design ROBOTC Software Principles of Engineering
Controlling your quadcopter
Introduction to Programing the Cortex for BEST
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

RobotC Home Screen RobotC

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

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

Connect NXT RobotC

Select NXT Brick RobotC

Selecting the Firmware RobotC

Download and Complete Make sure this message appears before exiting RobotC

Rename NXT RobotC

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

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

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

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

Bluetooth at the Competition RobotC

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

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

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

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

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

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

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

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

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

RobotC Simple Program RobotC

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

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

Using FTC Templates RobotC

Using FTC Templates RobotC

Teleop Template RobotC

Autonomous Template RobotC

Joystick Control Sample RobotC

DC Motor Sample RobotC

NXT Motor Sample RobotC

Servo Sample RobotC

Touch Center Sample RobotC

Light Sensor Sample RobotC

Light Sensor Sample RobotC

Ultrasonic Sensor Sample RobotC

Compass Sensor Sample RobotC

Field Diagram RobotC

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

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

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