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
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)
- 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
|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
- 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.
- 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.
- Connect the four headers to the corresponding pins as shown below.
- 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.
- Put the shield onto the Arduino and connect the battery.
- 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.
- 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.
- 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: