Welcome to the Tutorials page - your resource for getting started with Zero Robotics! The ZR Website tutorials handle the basics of navigating our system; if you're new, start there, then go on to the Beginner section. The programming tutorials are meant to be followed in order, but returning competitors may be able to skip directly to the Intermediate or Advanced section. We are always interested in improving our introductory materials, so if you feel something is missing, please feel free to let us know.

If you are a Middle School Summer Program participant, please use the resources under Middle School Curriculum instead.

#### Reference Documents

Function Dictionary | ZR User API | Function interface definitions for generic ZeroRobotics control |

Website Basics | Create an Account | Set up an account on the ZR website |

Invite Students to Your Team | Invite team members after everyone has made an account (mentors only) | |

IDE | Getting to Know the ZR IDE | Intro to the ZR programming environment |

Using the Graphical Editor | Use the graphical editor as an alternative to writing code | |

Introduction to Game Mode | Select the appropriate Game Mode and test your code against a standard player | |

Intramural Competitions and Sharing Projects | Share code with your team and compete against a teammate. | |

Submit Code for a Competition | Submit code for a competition. |

Basic SPHERES Controls | Variables, Arrays, and the setPositionTarget Function | Create variables, arrays, and make the satellite move |

More Simple Arrays and setAttitude Target | Practice using arrays and make your satellite rotate to face a certain direction | |

Programming Concepts | Conditionals: The Basics of "If-Then" | Intro to conditional statements |

Conditionals: More Fun with "If-Then", Logic Operators and Debugging | Enhance the "if-then" statement with logic operators and learn to print to the debug console | |

Conditionals: Advanced Logic Operators | Use the "and" and "or" logic operators | |

Conditionals: Else-If | Learn about the "else-if" statement, nesting conditionals | |

For Loops | Use a "for" loop to repeat an action a set number of times, as well as find the position of the other satellite. | |

Applied Conditionals | Use getMyZRState in conditional statements | |

Creating Functions | Organize your code with procedural functions | |

Functions and the Step Counter Model | Learn to use a step counter and practice creating functions | |

Useful Math and Physics | Intro to Physics | Basic information on weightlessness, translation, and rotation |

Kinematics | Conceptual fundamentals of motion | |

Combining Vectors | Fundamentals of using and combining vectors |

More SPHERES Controls | setAttitudeTarget, Revisited | Write code to control the SPHERE's direction |

Hints about SPHERES Loop Dynamics | Get a better understanding of SPHERES dynamics and Newton's first law. | |

setVelocityTarget | Use setVelocityTarget for efficiency | |

Force | Learn Newton's Laws and use setForce | |

Spinning: Torque | Intro to torque and the setTorques function | |

Spinning: Angular Velocity | Make your satellite spin using angular velocity and setAttRateTarget | |

Spinning: Partial Turns | Use dot product to perform partial rotations |

Advanced Programming | Spinning: Tilted Axis | Use cross product to control spinning on a tilted axis |

Revolving: Polar Coordinates | Use polar coordinates to revolve in 2-D at the origin | |

Revolving: Tilted Axis | Use cross product to revolve on a tilted axis anywhere on the coordinate plane | |

Recommended Functions | Descriptions of functions we recommend you add to your algorithms |

SPHERES | Make Paper SPHERES | Create a 3D SPHERES model |

Paper SPHERES Plan | Printable plan for Make Paper SPHERES | |

Label the SPHERES | Label the components of a SPHERES satellite | |

Communications | Learn the basic principle of satellite communication | |

Trilateration Ropes | Learn about trilateration and SPHERES positioning | |

Physics | Grids and Coordinates | Reinforce basic algebra and explore the coordinate plane |

Vector Hunt | Underscore the importance of both magnitude and direction | |

Soccer Ball Demo | Use a soccer ball to understand Newton's First Law | |

Chairs on Wheels | Use rolling chairs to understand Newton's Third Law | |

Thruster Balloons | Demonstration to reinforce Newton's Third Law | |

Free Body Diagrams | Visualize forces with free body diagrams | |

Bottle Rockets | Design, build, and launch your own bottle rocket to better understand kinematics and force | |

Bouncy Balls | Understand core elements of physics using bouncy balls | |

Dry Ice Dynamics | Experience frictionless dynamics with dry ice | |

Speed of Sound | Demonstrate that sound travels slower than light | |

Programming | Programming Peanut Butter and Jelly | Learn the fundamental principle of programming by making a sandwich |

Write it then Do it - Programming | Reinforce the concepts of explicitness and thoroughness in programming | |

Review | Jeopardy | Test your knowledge with an interactive review game |

ZR Team Management FAQs | Questions and answers for mentors and competitors |

Links | Middle School Student Materials | Resources for students and educators in the ZR middle school summer program; may also be useful for high school teams using the graphical editor or needing more help with math or physics. |

Pope John Workshop | A series of videos and problem sets produced by Stephen Pendergrast, Pope John XXIII Regional High School, Sparta, NJ, to train new team members. Complementary to the tutorials on this page. | |

y0b0tics! Circle Tutorial | A text-based tutorial to help new teams get off the ground. Courtesy of Team y0b0tics!, Montclair High School, Montclair, NJ. |