Timothy Friez Carnegie Mellon/Robomatter January 27th, 2015

Slides:



Advertisements
Similar presentations
C Language.
Advertisements

08/2012Tanya Mishra1 EASYC for VEX Cortex Llano Estacado RoboRaiders FRC Team 1817.
UBI >> Contents Chapter 2 Software Development Tools Code Composer Essentials v3: Overview Texas Instruments Incorporated University of Beira Interior.
Developed in collaboration with Introduction to Programming.
RobotC Programming for LEGO Mindstorms NXT Carnegie Mellon Dacta Lego Timothy Friez Miha Štajdohar SOURCES:
1 Key Concepts:  Why C?  Life Cycle Of a C program,  What is a computer program?  A program statement?  Basic parts of a C program,  Printf() function?
Systems Programming Course Gustavo Rodriguez-Rivera.
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
Copyright © 2012 BEST Robotics, Inc. All rights reserved. 1 BEST Software Options Greg Young William Polanco Saturday Apr 27, 2013.
CS 0008 Day 2 1. Today Hardware and Software How computers store data How a program works Operators, types, input Print function Running the debugger.
Creating and Running Your First C# Program Svetlin Nakov Telerik Corporation
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Eclipse IDE. 2 IDE Overview An IDE is an Interactive Development Environment Different IDEs meet different needs BlueJ and DrJava are designed as teaching.
03 Using Eclipse. 2 IDE Overview An IDE is an Interactive Development Environment Different IDEs meet different needs BlueJ and DrJava are designed as.
Introduction Purpose Objectives Content Learning Time
Dr. Wenbin Luo Engineering Department St. Mary’s University San Antonio, TX June 9, 2012.
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Lesson 4 Computer Software
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.
VEX Robotics Platform and ROBOTC Software
CS110/CS119 Introduction to Computing (Java)
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Introduction Purpose  This training course provides an overview of the installation and.
Tutorial 11 Installing, Updating, and Configuring Software
Topics Introduction Hardware and Software How Computers Store Data
Creating and Running Your First C# Program Svetlin Nakov Telerik Corporation
4 1 Operating System Activities  An operating system is a type of system software that acts as the master controller for all activities that take place.
CHAPTER FOUR COMPUTER SOFTWARE.
Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley C H A P T E R 1 Introduction to Computers and Programming.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Robot C Set-up FTC Clinic Nov Patrick Michaud & RobotC Curriculum
ROBOTC Training Session 1 Timothy Friez 1/10/08 Revision 1.
Objective C Basics. It’s C with Some Extras!  Cross Platform language  Mac  Linux/UNIX  Windows  Layer above C (Superset)  Adds Object-Oriented.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Introduction Purpose This training course covers debugging an application on an SH target in the Renesas HEW (High-performance Embedded Workshop) development.
CERN - IT Department CH-1211 Genève 23 Switzerland t DB Development Tools Benthic SQL Developer Application Express WLCG Service Reliability.
NXC (and NBC) NXC (Not eXactly C) is a language similar to NQC, which was the most popular way to program the RCX Built on NBC, the Next Byte Code ‘assembler’
Applied Computing Technology Laboratory QuickStart C# Learning to Program in C# Amy Roberge & John Linehan November 7, 2005.
9/2/ CS171 -Math & Computer Science Department at Emory University.
Computer Science in Medicine MDCS 134 Lecture 2. What is a Software? Its step by step instructions telling the computer how to process data, execute operations.
National Taiwan University Department of Computer Science and Information Engineering National Taiwan University Department of Computer Science and Information.
Chapter Three The UNIX Editors.
Computer Software Types Three layers of software Operation.
Getting Started in RobotC // Comment task main() motor[] {} wait1Msec() ; = Header Code Compile Download Run Take out your notes.
Minds and Computers 2.1 The RCX l Hitachi H8/3297 series processor l 3 inputs/sensors (1, 2, 3) l 3 outputs/motors (A, B, C) l 32k RAM/ 16k ROM ä 12 kB.
Chapter 2 Parts of a Computer System. 2.1 PC Hardware: Memory.
CSC 1010 Programming for All Lecture 2 Introduction to Python Some material based on material from Marty Stepp, Instructor, University of Washington.
Java – in context Main Features From Sun Microsystems ‘White Paper’
A computer contains two major sets of tools, software and hardware. Software is generally divided into Systems software and Applications software. Systems.
Chapter 7 Continued Arrays & Strings. Arrays of Structures Arrays can contain structures as well as simple data types. Let’s look at an example of this,
ROBOTC for VEX Robotics (VEX IQ) On-Line Session 2014 My name is Jason McKenna I will be leading you through these sessions Teacher for 17 years Hopewell.
Programming in Arduino Materials:Arduino Board Casperelectronics Pre Pres. Notes Photos from workshop?
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
CHAPTER 2 COMPUTER SOFTWARE. LEARNING OUTCOMES At the end of this class, students should be able to:  Explain the significance of software  Define and.
INTRO. To I.T Razan N. AlShihabi
After Construction Name: Per #:.
Processing with Programs 1
Fundamentals of Programming I Overview of Programming
Val Manes Department of Math & Computer Science
Topics Introduction Hardware and Software How Computers Store Data
Programming Introduction to C++.
C Basics.
Introduction to Python
Getting Started in RobotC
Topics Introduction Hardware and Software How Computers Store Data
Simulink Support for VEX Cortex BEST Robotics Sandeep Hiremath
(Computer fundamental Lab)
Software - Operating Systems
RobotC Programming for LEGO Mindstorms NXT
Introduction to Programing the Cortex for BEST
Presentation transcript:

Timothy Friez Carnegie Mellon/Robomatter January 27th, 2015 ROBOTC Technical Talk Timothy Friez Carnegie Mellon/Robomatter January 27th, 2015

ROBOTC Overview A complete ‘C’ programming language for robotics. Developed for Teaching, Powerful enough for Hobbyists/Professionals Developed in Microsoft Visual C++ 2008 and IAR Embedded Workbench I’ll answer the question now: NO MAC SUPPORT Works great under Bootcamp, Parallels or VM Ware Fusion. MAC support is desired, but hasn’t made a business/development case yet. Extremely easy to use for both beginners and advanced users Most “robot functions” are a single line commands.

ROBOTC Language Single Programming Language / Multiple Platforms Mindstorms – NXT and EV3 Innovation FIRST – VEX Cortex, and VEX IQ Arduino - Arduino Uno, Mega, Mega 2560 controllers Developed for Education (High School/College) Students learn in a friendly environment about C-Based programming Friendlier Compiler, GUI Device Configuration, Code Templates Focus is for new programmers to C, but powerful to make experienced programmers feel comfortable.

ROBOTC as a Language Language extensions for robotics Built-in variables for robotics devices – motors, sensors, joysticks Example: One line command to drive motors NXT - motor[motorA] = 100; //Turn Motor A @ 100% User “friendly” compiler Auto-correct from popular programming errors Letter case errors in variable names: “playSound” for “PlaySound”. Compiler is NOT CASE Sensitive – This is by design!

Development Environment Normal-style source code editor Syntax highlighting and formatting Code completion Integrated help/support Compiler, linker and program downloader – integrated and combined No command line tools required (or available…) Interactive Run-Time Debugger Allows monitoring of tasks (threads), variables, devices such as motors and sensors. User friendly “Basic”, “Expert” and “Super User” mode to adjust features and menus 100+ programming examples in the “Sample Code” Library

Interactive Real-time Run-Time Debugger Run/Stop, Suspend/Resume programs from PC Single step through program execution, one line at a time. Unlimited user defined breakpoints Read / write / display the contents of any user variable. Consciously view the status of all devices in at run-time from your PC. Zero additional coding required, enabled by default!

ROBOTC vs. “Other” Languages #1 Reminder: You are creating code to be run of a 256kb ARM Processor – not a desktop! Variables and Memory The NXT Supports… Integers, Longs, Floats, Bytes, Bool, Chars and Strings (String are limited to 20 characters – use Char[] for longer strings) The NXT has room for 15,000 bytes of variables Adding “const” in front of a variable will make that variable a constant. This will prevent the variable from being changed by the program Constants do not take up any memory on the NXT Support for Pointers/Recursion (standard ANSI C-style) ROBOTC is a procedural language – there are no classes. You can use a “struct” as an alternative to group variables.

Functions and Tasks You can create functions (up to 255) Standard C programming style for declaration void functionName(int parameters, float otherParameters) Utilize library (.h) files to organize your code You can create “tasks” too – Up to 20 tasks per program. task myTask() – Create a Task (no parameters) startTask(myTask) – Starts the Task stopTask(myTask) – Ends the Task Key thing to remember: Single processor, single thread at a time. The internal task manager will run other tasks when idle time is available Create idle time in a task by using the “wait1Msec(time)” command Main structure in ROBOTC is “task main()”, not “void main()”

ROBOTC vs. “Other” Languages Libraries and Workspaces ROBOTC is built around a 1-program model – no workspace files. ROBOTC automatically includes all of the headers behind the scenes Stuff like math libraries, string support, standard language libraries are already included. You can create your own external libraries and do a “#include” to bring them into your program. Advanced C Data Structures Pointer Support (* and &) void testFunct(int &tempVar) Structs and Typedefs are supported Standard ANSI-C support in most cases.

ROBOTC vs. “Other” Languages LCD Capabilities You have full control of the LCD – Take a look at the help documentation / samples. You can turn individual pixels on or off, or use some of the drawing libraries already built into ROBOTC. Advanced Ideas with NXT I2C Support – Big 3rd party sensor library or roll your own http://botbench.com/blog/robotc-driver-suite/ File I/O See Sample Programs – You can write to text files and use the NXT File Management utility to download the file to your PC Bit Shifting and Comparators operators are available Arrays – ROBOTC supports up to 2-dimention arrays.

Support and Curriculum ROBOTC.net Community Forums www.robotc.net/forums Over 5000+ active users Most questions can be answered here ROBOTC Technical Support support@robotc.net – Ticketing System Or e-mail Tim (tfriez@cmu.edu) or John (jwatson@robotc.net) directly Help Documentation / Function Reference Built-In and Online at www.robotc.net Video based curriculum Answers questions about how to use hardware and gives beginning programming tutorials http://tinyurl.com/RCNXTTraining

ROBOTC Licensing You’re entitled to a free copy of ROBOTC thanks to this class Download from http://www.robotc.net/download/nxt/ Use the following licensing information: ROBOTC for MINDSTORMS 4.X License ID: 61588936 Password: Howie2015 You may need the LEGO USB Driver as well This is typically included in the installer package and automatically installed. 32Bit: http://downloads.robotc.net/drivers/NXTUSBDriver_32bit.zip 64Bit: http://downloads.robotc.net/drivers/NXTUSBDriver_64bit.zip

ROBOTC Live Demo Loading Firmware Opening a Sample Downloading Code Running Code Using the Debugger