This post is a basic introduction to the parts I bought in order to build the cartographer robot; advanced makers may wish to skip to subsequent blog posts in this series in which I describe building, wiring, and programming steps.
Main Build List:
- Arduino Uno R3
- Parallax Shield Kit (key included components: BOE Shield, continuous rotation servos, chassis, IR LEDs, IR Receivers, LEDs, 1000 Ohm Resistors, 2000 Ohm Resistors, 220 Ohm Resistors, pushbuttons, jumper wires.
- Arduino Prototyping Shield
- HC-SR04 Ultrasonic Range Sensor
- Parallax Serial LCD
Other Useful Parts Sources:
- Official Arduino starter kit with documentation
- Much cheaper, unofficial Arduino starter kit without documentation
- Unofficial Arduino Board 1
- Unofficial Arduino Board 2
- IR LEDs and IR Receivers
- DuPont Jumper Wires
- Arduino programming applications for OS X, Windows, and Linux
- Official programming documentation
- Excellent introductory text
Part Review: Arduino Uno R3
This is a universally useful microcontroller board that can store and execute C programs written on a Mac or PC. It has analog and digital I/O pins that can be connected to an enormous number of sensors and actuators. Arduino is loved by the hobbyist community because its standardized, open-source design eliminates engineering problems that are often prohibitively difficult to a beginner. With Arduino, there is no need to select the right microcontroller out of thousands of options, make a regulated power supply for it, and then learn surface mount soldering to connect it to a circuit; the board does all of that for you at a very low cost.
I like Arduino because it is very well designed. One part of its genius is the standardized pin layout that has been adopted by part manufacturers who make Arduino-compatible expansion boards or “shields.” Once plugged in, Arduino shields add functions such as Internet connectivity, data storage, or wireless communications. The shield pictured in the images below is a prototyping shield that adds more electrical connections to the Arduino. Even more useful is the ability to expand Arduino with sensors or actuators that aren’t necessarily designed for it; via its I/O pins, Arduino can power and communicate with any device that uses a 5V power supply. This example gives a sense of the breadth of the selection of devices that can be used with Arduino. Arduino’s great design gives it an infinite potential for creative expression.
Part Review: Parallax BOE Robotics Shield Kit
The first iteration of this rover is based on the Arduino-compatible Parallax BOE Robotics kit. I chose the BOE kit because I wanted to make the first prototype as quickly as possible by not doing my own mechanical design. Furthermore, the kit reduces the acquisition time of useful parts because it comes with almost every sensor, actuator, wire and resistor needed to complete this build; the applicable continuous rotation servo motors, infrared sensors, and wiring will be described subsequently. One additional advantage of the kit is that it acts as a motor interface shield for the Arduino while not blocking additional expansion with more shields. I take advantage of this capability by adding both the BOE shield and the prototyping shield shown in the above section. Although prototyping speed is advantageous with the BOE kit, high unit cost and quite large physical dimensions are drawbacks; for future iterations, I plan to 3D print my own chassis and solder my own circuit layout to reduce unit cost and robot dimensions.
Part Review: HC-SR04
The robot uses an HC-SR04 ultrasonic sensor to complement the infrared sensors included with the BOE kit. An ultrasonic sensor is a good complement to infrared sensors because it can more easily determine distances to obstacles. Furthermore, infrared sensors have trouble detecting transparent and black obstacles because they do not reflect enough light; ultrasonic sensors do not have this problem.
Part Review: Parallax Serial LCD
The Parallax serial LCD is useful because it allows the robot to easily communicate with humans. Other, cheaper, “Arduino-compatible” LCDs exist, but they require 16 pins in order to be used. The Parallax version comes with a microcontroller on the back that allows Arduino to communicate with the LCD via software serial techniques that require only 3 pins. The Parallax LCD is also useful because it includes a speaker, thus further reducing the number of pins needed to communicate with human users. This LCD vastly increases ease of implementation, but it adds computational overhead and cost: serial communication is notoriously slow, and 16-pin LCDs cost 1/3 as much.