Chapter 4 Summary

This chapter was all about robot navigation, experimenting with many different programming approaches and employing some robotics and engineering skills: 


  • 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