Robotics I - Introduction to Robotics and Programming
A course designed for students who have little or no experience with building robots. Beginning with the fundamental principles of construction and programming, we'll branch into the use of sensors, debugging techniques, and gears. Students use the Tetrix Robotics kit and ROBOTC programming environment from Carnegie Mellon to do hands-on exploration of all of these topics. Engineering notebooks are a central part of the course, and they are required to document their design and development process for review by the teacher. This is a project-based class that places emphasis on teamwork, risk-free experimentation, and student-led topics. Students who take Robotics I are well-prepared for Robotics II and more advanced robotics engineering.
On the pure programming side, students will work with the Processing programming environment to learn how programs are constructed and the building blocks that are used. The learning is also project-based but is more independent, and is accompanied by written work to teach and reinforce the basic principles of engineering. Programming principles taught include variables, functions, loops, if/then/else conditional statements, object-oriented programming (OOP), and much more. Processing is a language primarily for visual artists, but is also a great way for a beginner to learn programming with visual feedback.
Students who take Robotics I are well-prepared for Robotics II and more advanced robotics engineering.
See our Haiku class page for a detailed description of this course.
Our textbook is "Learning Processing" by Daniel Shiffman. It contains tons of exercises, lessons, step-by-step instructions, and lots of supporting code and examples online to help you learn to program.
We also use Khan Academy's Computer Programming curriculum for some of our lessons.
See our Lincoln Robotics YouTube channel for movies of our creations.
Also check out our Lincoln Robotics Wiki for info about our projects and part descriptions for the LEGO Mindstorms Education NXT kit we use to built our bots.
This week's challenge is to attach a touch sensor to your bot and use it to create a "bumper bot" that navigates an enclosed space by bouncing off of walls, in a Roomba-like fashion.
We already have working examples of this behavior!
Using the "Motor Synchronization" exercise under RobotC Curriculum > Movement > Improved Movement, create a table of values for a program that makes your robot drive in four different circles, diameters 1" - 4". Note the values in your engineering notebook for one motor synch combo - either "synchBC" or "synchCB". After you have those values, work on eliminating the "wait1Msec" commands from your programs and use nMotorEncoder values instead to calculate the distance your bot needs to travel around the circles.