Target Audience..This tutorial is written to complement the guidance of center programs. This is designed mainly for Storming Robots students to perform further review and exercises at home. Therefore, the format does not present itself as a typical ideal tutorial format. However, most students at SR will find materials here quite intuitive to follow.
Looking for Competition specific materials?The proper approach is to build the necessary foundation, and enrich your knowledge base. Then, you can apply towards a certain competition and further advance your knowledge thru proper engineering process. Focus on learning concepts applied only to a competition is like putting cart before the horse. Recommendation: &nbps;At the minimal, you should cover all the materials in RobotC Packet I under "Robotics Project Track". Robotics Packet II will be very helpful as well. I will include a chart of what I think you should cover at minimal in order to tackle a particular competition.
Computer Science Track
Algorithms in C/C++
Module 1: Warm up - Bare Basics
Module 2: Basic IO
Module 3: Base Conversion
Module 4: Control Structure
Module 5: Array and Functions
Other more advanced topics in Data Structure, such as stack/queue and many other algorithms will be covered in Level III+ in the Algorithms in C/C++ track.
Advanced Placement - Computer Science AAP Computer Science (OOPS-Java). Exercises. A video clip showing how to create a Java project in Eclipse IDE
About self-study AP CS A:Most of our Algorithms in C/C++ students, who have completed Level B with satisfactory result, self-studied AP CS A and scored 5 by simply using the AP Baron Book. However, for those who managed to finish level B but with lengthly assistance from instructor, these students are recommended to get a Java textbook
The IDE we use...
Do note that the MS and Eclipse online links do change from time to time. This is out of our control. Therefore, if the link above does not work, you will need to search them online.
Microsoft Visual Studio Community Version.Download and install the Desktop Development with C/C++. OR
Eclipse IDERead this first before you choose Eclipse Eclipse has far smaller footprint. However, it is more complicated to set up to use with the debugger. Just like most OpenSource software, you might have to manually modify some system configuration. If you are not familiar with some simple windows operations such as setting up system environment, or the windows file system, I do not recommend you to install this. You should install Visual Studio instead.
Rudimentary understanding in the Windows File System and Commands.
Basic File system of Windows you should know.
Links from other websites which I found very useful:
The C Library Reference Guide -- a reference on the C language and its standard library.
Before proceeding with this sectionYou should not pass this point until you are complete with the Packet I and II above. The following samples were written with the assumption that you have already had satisfactory knowledge level from the Packet I & II. Some of them were written for students who have already taken algorithm in C with us (past the pointer chapter).
The following samples may have been written with older RobotC version. Therefore, do not expect they all compile perfectly. However, if you have worked through Packet I and II, you should not have difficulty in making necessary modification to make them work.
I2C Interface / RobotCReview RobotC - I2C Interface Packet I (last updated - July/2014) Document covers :
Write your own I2C interfaceYou can learn it from RobotC's library code: From RobotC Menu: File -> Open Sample Programs -> 3rd Party Driver Library -> include -> hitechnic-irseeker-v2.h. Do note that the location may be slightly different. The key is to look for samples and the 3rd Party Driver Library.
Special Note:Here is a video to show you how to scan I2C sensor. This video shows a setup with a Mindsensor Splitter connected to multiple i2c devices on teh same port. You can do the same type of scanning on any of the 4 input ports.
Mindsensors created a I2C adapter module which allows :
Wireless Communication with Mindstorms via Bluetooth
Bluetooth Interface (last updated - June/2014)
After playing with this communication, you should make modification to perform the following:
Technical Information about other special platform
If you are SR students, you should utlize the information provided in our internal Forum. You will need to register your email address to gain access. With google authentication enabled, you will be able to access the forum with your gmail. If your request was not granted within a couple of days, you should email us . Do note, you must use an email address which allows us to identify as you, such as JoeySmith@gmail.com, not somethingStrange@gmail.com.
Wireless Communication with Mindstorms via XBeeA Quick Start Intro doc.
GPS Data StreamingCheck out the Multi-agent site and RobotC/CMU 's firework site. Here is the GPS Data Streaming that we used with an advanced project.
Graphical RobotC Packet(last updated - Nov/2016) Should work on the samples and challenges listed in the graphical RobotC Packet. Additional Challenge
RobotC Packet I(last updated - December/2016)
You should review each chapter in the RobotC Packet Ibefore you tackle the corresponding samples below. NOTE: RobotC IDE, by the CMU Robotics Academy, comes with a rich set of samples. &nbps;You should be able to consult its sample directories at ease.
Be resourceful!Use the New Help feature from version 4.X. The following files are all in zip format. Some of these samples contain error files which you are supposed to correct.
Download Chapter 1 Samples
After you complete Chapter 1, download these files and fix the errors. Download Chapter 2 Samples
After you complete Chapter 2, download these files and fix the errors. Download Chapter 3 Samples
Note: Found errors - please Email us .
A reference table to use RobotC 's pragma NXT and EV3 RGB Color Sensor Samples (for EV3 and NXT). - <updated in October, 2017) EV3 Motor Synchronization Sample - <updated in July, 2018) A Simple Programming Style Best Practice for robotic project students.
RobotC Packet IIUse RobotC Packet II (last updated - Dec/2014) The following files are all in zip format. Some of these samples contain error files which you are supposed to correct.
For VexIQ/RobotCRobotC for VexIQ Packet (updated - August/2015) DO NOTE: The RobotC Packet I and II above both apply to VexIQ as well. Except a very slight differency in motor feedback control and manipulation, almost every aspect in sensor controls are identical.
Notes: Finishing up to Packet II from above will help to understand samples from RobotC with ease. In addition, you may find files won't compile due to small changes in more latest versions of RobotC. However, if you have thorough understanding in Packet II, you should have no issue in fixing these errors.
AccelerometerSome sample I2C device code (using I2C Samples and common libraries files). Accelerometer Sample Library Accelerometer Sample Test (must download the Sample Library as well)
Mindsensors Light ArrayHere is a sample calibration program using Mindsensor Light Array More good ones from 3rd party samples from RobotC's installation - from "File > Open Sample programsNXT > 3rd Party Sensor Drivers" - look for Mindsensors array samples.) Whenever you use a new sensor, you should always understand its behavior by performing data logging. Consult Chapter 6 in RobotC Packet II.
HiTechnic Compass SensorCompass Sensor Interface Packet (last updated - Jan/2013) Exercises
After playing with the samples, you should make the modification yourselves:
HiTechnic IR Seeker
To use the HiTechnic specific driver library codes, you need to:To access the drivers from the RobotC IDE:
- Download this I2C - InfraRed Seeker Sample
Create I2C based Combo Sensors module using ArduinoUse this packet if you want to :
- interface Mindstorms NXT with Arduino via I2C.
- create your own Arduino based combo sensors device, ie. using Arduino as I2C slave device. I2C RobotC-Arduino Packet
EV3 / Development Linux PlatformHere is a summary to help you getting you started.
Arduino (with Uno)
Socket Networking...Coming Soon!
Raspberry PI -
Parts for Soccer with Arduino (coming soon).
Raspberry PI -
Get the Basic
Robotics Club - with Arduino List
Do note: shared folder: s2018/shortname shown along with the workshop name, e.g. s2018/mechDog.
Additional downloads for various workshopsDownload the Terraformers for DeepSpace Workshop. Install on your disk for review
Math Pre-evaluation for some workshops.
Simple Programming Style Best Practice Checklist .
To set up google sync...This is particularly important when you work as a team.
Steps to install and setup your Google Sync Application on your computer. For higher grade, we prefer using gethub.