loading

We all dream of having appliances and machines that can obey our spoken commands. Well, let's take the first step towards making this happen and build a speech-controlled Arduino-based mobile robot.

You may be thinking that making such a robot must be a very complex task. After all, humans take many years before they can understand speech properly. Well, it is not as difficult as you may think and it is definitely lots of fun.

Step 1: Materials

In order to make a speech controlled mobile robot, there are a few basic components you will need. Rather than reinventing the wheel and telling you how to first build the mobile platform from the component level, or a speech recognition circuit, we show you how to integrate existing components into one seamless design. The list of parts below is suggested, though many can be swapped for similar products.

1x DFRobotShop Rover kit: It constitutes the mobile robot to be controlled. The DFRobotShop Rover is based around an ATMega328 chip with Arduino bootloader and incorporates a dual motor controller, two gear motors connected to sprockets and tracks. Alternatively, you can create / use your own mobile robot which would need: microcontroller; motors; motor controller; wheels or tracks; battery pack 1x VRbot speech recognition module: It processes the speech and identifies the commands. The unit comes fully assembled with a microphone and additional cable. 2x Xbee RF communication modules: These transceiver modules create a wireless link between the speech recognition engine and the robot. The small blue square is the surface mount antenna. Note that you are not restricted to using XBee modules to transmit serial data. 1x Arduino Uno: Controls the speech recognition module. Any Arduino or other microcontroller which has a serial output pin can be used in its place. 1x IO expansion shield: Allows for easy connection between the Xbee module (which has a very specific pin header configuration) to the DFRobotShop Rover. This is used for convenience rather than necessity. 1x Xbee shield: Allows for easy connection of an Xbee module to the Arduino Uno. Just like the I/O shield, this is used for convenience and is not required. Male headers: Required to connect the Xbee shield to the Arduino Uno. 1x barrel jack to 9V battery adaptor: Used to power the Arduino Uno with a 9V battery.   1x  microphone (a microphone is included with the speech recognition module)
Optional parts:
  • 1x LED. It is not required since the IO expansion shield already has one but it can provide a more visible activity feedback.
  • 1x Audio jack used to connect the optional headset
  • 1x Headset (this is more comfortable than holding up a microphone)

Step 2: Tools

Several tools will be required to build the project, most of which are found in a small workshop. If you don't already have these items, they are all inexpensive (except for the computer).

A Wire Cutter. It will be used to cut the leads off components.
A Soldering Iron. In order to solder all the (many) connections, a soldering station might be preferable since it provides steady and reliable temperature control that allows for easier and safer soldering (you have less risk of burning the components if the temperature is set correctly).
A Third Hand. This is not absolutely required, but it is always useful for holding components and parts when soldering.
  A computer. It programs the DFRobotShop Rover and the Arduino Uno using the Arduino IDE.
  A Hot-glue gun in order to stick the components together.

Step 3: Assembly

  1. Assemble the DFRobotShop Rover and mount the IO expansion shield, an Xbee Module and the LED. Se the picture above or the video for further information.
  2. Solder the headers onto the Xbee shield. Also solder four headers on the prototyping area as shown below. Do not like soldering? Then keep reading since there is no-solder-required version of the project.
  3. Connect the four headers to the corresponding pins as shown below.
  4. As shown above, you can also mount the headphone jack and use the cable included with the microphone in order to connect it to the VRbot module microphone input.
  5. Put the shield onto the Arduino and connect the battery.
  6. Connect the VRbot speech recognition module wires and the microphone. Incorporating multiple parts from different suppliers often means that screws, headers and other connection points do not always line up. In this case, there is no specific mounting position for the voice recognition module.
  7. Program the DFRobotShop Rover and the Arduino Uno with these programs respectively: dfrobotshop_serial.zip and VRbot.zip. These files contain the sample code needed for the DFRobotShop Rover as well as the Arduino connected to the voice module.
  8. Start talking to your robot! Say "forward", "backward", "left", or "right" in order to make the robot move in the desired direction. The word "move" indicated in the video has been removed from the program in order to improve the performance.

Step 4: Go Further

Now that you have the basic program you can create new commands in order to build upon this project. For instance, it would be nice to program a "dance" command that would make the rover execute a predefined choreography. It is also possible to use this knowledge to control other devices such as lamps, TV sets, and more.

You can find more information about using the VRbot speech recognition module here:

In our case, we used two of these robots in order to create a "ball-fetching" challenge at the CRC 2011 with high-school and CEGEP students.

Step 5: Get Your Own

RobotShop put together a full kit that you can buy in order to get started with speech control. This kit is a bit different than the project shown and does not require any soldering and uses the microphone included with the VRbot module:

DFRobotShop Rover - Speech Control Kit

several links in this instr. Are now longer valid..renew please.great project
Interesting idea. We have not tried with a standard BT headset. Note that the voice shield would need to be mounted on the robot along with a BT device.
can i use bluetooth headset for sending commands to an arduino robot ??
gutted the zip files to program are no longer available. is there a way to get these or a similar project?
Sorry for the dead links, they are updated now.
Hey I'm a novice at digital/arduino and I was wondering is there a way to bypass the wireless interface to have all hardware in the same place? Great project, thanks.
Just use one Arduino module (or robot) and skip the XBee link. Much as the example provided with the speech recognition module.
keep going nice project <br>

About This Instructable

29,859views

72favorites

Bio: RobotShop is the World leading robot store for personal and professional robot technology.
More by RobotShop:Carlitos' Projects: Wireless Speech-Controlled Arduino Robot Carlitos' Project: RGB LED Mood Cube 
Add instructable to: