Errata for Make an Arduino-Controlled Robot

The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

The trickle charge discussion and diagram don't convey enough information to correctly wire the circuit.
There is discussion and a diagram about the trickle charge circuit page 32 and then discussion again on page 229, but I believe we need a schematic because I can't tell from the diagram which element of the plug the anode of the reverse voltage protection diode is connected to.
I believe it is the center conductor of the plug, because the diode will conduct only if the voltage is more positive at the anode then the cathode. The diagram, looks like it's connected to the shield of the plug.
Please advise.

Note from the Author or Editor:The following text should be added to page 32 and page 55 preceding the sentence: See (page 229) for information about using the charger."
The charging jack has three tabs, locate the tab for the center pin (its the one attached with a rivet visible from the back of the jack), this connects to the positive end of the diode (the circular band on the diode identifies the cathode- the negative end). The tab next this is connected to ground.

Ed Young

Nov 19, 2012

Printed, PDF, ePub, Mobi, Safari Books Online, Other Digital Version

Page 44
example code

On page 43 and 44 example 3-1 (Initial motor test for 2wd) you state the sketch runs the motors in opposite directions to cause the motor to rotate clockwise for 5 seconds and then counter-clockwise for 5 seconds. The sketch is written to only rotate in one direction. There is no code in there for counter-clockwise rotation. The same goes for the downloaded sketch.

Note from the Author or Editor:The code functions correctly but the text referring to counter-clockwise rotation should be removed. The comments in the download code have been updated and the text on page 44 should be changed from:
to:
This sketch runs the motors in opposite directions to cause the robot to rotate clockwise for 5 seconds, then reverses direction to rotate counter-clockwise. This will repeat until the power is switched off.
to:
This sketch runs the motors in opposite directions to cause the robot to rotate clockwise for 5 seconds, then stops for 5 seconds. This will repeat until the power is switched off.

Vladimir Mariano

Nov 01, 2012

Printed, PDF, ePub

Page 56-57

Wiring for the trickle charger is not clear.
Change:
The circuit is wired as shown in Figure 4-16. The battery is connected to both the robot
and charger when it is switched on, enabling the Arduino to monitor and display the
battery voltage. The connection via the resistor to pin 13 is required to tell the Arduino
that a charger is connected so it can monitor the voltage instead of driving the robot.
Figure 4-16. Wiring for trickle charging with Arduino Voltage Monitoring
To:
The circuit is wired as shown in Figure 4-16. The battery positive lead is connected to center pole of the switch. One switch pole is connected to the +M power input connection on the motor shield, the other switch pole is connected to the resistor that is wired to the charging jack via the diode. With the switch as shown In figure 4-16, the toggle will be up to power the robot, down to trickle charge.
Figure 4-16. Wiring for trickle charging
Although not needed for the standard functionality, figure 4-17 shows an additional blue wire that can be used to connect the charging socket so Arduino can automatically detect when the charger is connected. Figure 3-19 has a clearer picture of where this wire connects to the socket and Appendix D contains code that reads this pin. However, this capability is only required if you implement the optional battery monitoring capability discussed in Appendix D.

Figure 4-25 disagrees with figure 4-26. Both indicate the motor connections to the motor shield but the polarity of two of the motors isn't clear. Which figure is correct?
Thanks,
Rob

Note from the Author or Editor:If you have soldered the motor connections so the wires near the top plate are the same color, then the front and back motors should be reversed, as shown in figure 4-25. Otherwise use figure 4-26.
Because you should test the motor directions anyway and because it's easy to swap the connections at the shield, it actually doesn't matter how you have wired the motors as long as you test that the motors run in the correct direction using the test code. Just make sure that you swap the black and red wires at the motor shield terminals for any motors running in the wrong direction in the test.

Rob Moore

Jan 29, 2013

Printed, PDF, ePub, Mobi, Safari Books Online, Other Digital Version

Page 88
helloRobot.ino

I have the 4WD robot kit from MakerShed, and I've downloaded the Arduino 1.0.2 on my windows machine and the example source code. If I try to compile helloRobot.ino, it compiles if I have the Uno board selected, but not the Leonardo. When using the Leonardo, I get the following errors:
C:\Users\John\Documents\Arduino\libraries\AFMotor\AFMotor.cpp: In constructor 'AF_Stepper::AF_Stepper(uint16_t, uint8_t)':
C:\Users\John\Documents\Arduino\libraries\AFMotor\AFMotor.cpp:369: error: 'CS20' was not declared in this scope
Similar errors occur when I try MotorTest4wd.ino from page 67. In this case it again compiles if the Uno board is selected, but not the Leonardo. For the Leonardo, I get these errors:
MotorTest4wd:16: error: 'CS22' was not declared in this scope
MotorTest4wd:17: error: 'CS22' was not declared in this scope
Does anyone know how to work around these errors? If so, please email me at john476@conneely.org.
Thanks!
John

Note from the Author or Editor:The AFMotor library included in the code download zip file has been updated to compile without errors using Arduino 1.0.2.
No other change is required.