This chapter was all about robot navigation, experimenting with many different programming approaches and employing some robotics and engineering skills:
Programming
- Simplifying navigation by creating custom functions for frequently-used maneuver code, and how to call those functions
- How to use counted for loops with step increments in maneuver code
- What parameters are, and how to write functions and function calls that use them
- How a local variable can be created as a parameter in a function declaration
- How to declare, initialize, and use the Arduino language’s int and char arrays, taking advantage of the Arduino library’s sizeof function
- How to manage program flow control, using do-while and switch/case
- How to use the post increment operator (++) in conditional loops
- How to use the not-equal comparison operator (!=) as a condition in a loop
- Writing sketches to play a sequence of notes on the piezospeaker
- Writing sketches using several different program strategies to perform the same maneuver sequences
Robotics Skills
- How basic rolling-robot maneuvers are accomplished by controlling wheel speed and direction
- What the differences are between gradual turns, pivot-turns, and rotating-in-place turns, and what wheel speed/direction combinations make these turns.
- What speed ramping is, how to use it so your robot moves smoothly into and out of maneuvers, and how ramping is beneficial to your BOE Shield-Bot
- What dead reckoning is, in the context of entry-level robotics navigation
- Controlling robot maneuver run-time to make the BOE Shield-Bot travel a pre-determined distance or to rotate to a particular angle
- Compensating for hardware variance by adjusting servo speeds for straight travel
Engineering Skills
- Making observations and measurements to derive constants for a simple formula that characterizes the cause-and-effect relationship between system input and system output. (Yes it sounds fancy, but that’s what you did with that ruler.)
- The difference between a hardware adjustment and a software adjustment
- What an iterative process is, and using it for testing software adjustments