1. Implementing Voice Recognition in your robot.
There are several ways to implement Voice Recognition into a robot. One way is to have your main microcontroller chatting over a serial line with the VRbot module, but this means it will have to stay on a loop until it recognizes the trigger word and then do something based on what command follows. An other way is to use a dedicated microcontroller that is somehow connected to the main microcontroller (using a serial line, the I2C bus, or whatever other means). This way you can have your robot do something until the dedicated microcontroller receives a vocal command and transmits it to the main one.
I am going to show you how to add a dedicated microcontroller to your robot and how use the I2C interface to communicate with the main microcontroller.
First, you need to order a VRbot module. Then you have to download the Arduino Demo PDF
and the VRbot GUI
software from Tigal. They already have a demo code
for POP-BOT. I have modified their code to adapt it for my robot and made a library (see the attached file) that takes care of the bit bang serial communication with the VRbot module.
Play with the VRbot module and train new commands.
The VRbot GUI software can talk with the VRbot module directly, using any serial adapter, or through the microcontroller board it is connected to. The secon method did not work for me as it was written in the example code, so I used a FTDI Basic board that is basically a USB serial adapter and a few wires to make the connections. The FTDI Basic board also powers the VRbot module, so you don't need anything else. VRbot module comes with 4 wires, so you need to connect the Black wire to GND, the Red wire to 5V (or Vcc), the White wire to Tx and the Blue wire to Rx. The open up your VRbot GUI software, select the COMM port your FTDI is using and click the Connect button. If it doesn't connect, reverse the Blue and White wires. Read the PDF file, it goes in depth through training new commands to your VRbot module. Make sure you write down the Group number and the command number inside that group for each new command you train. You will need it when you program the actions triggered by that command.
You may take a look at their sample code for the POP-BOT, just to get an idea how things are going. The POP-BOT uses an LCD to display the commands, a LED and a piezo speaker that beeps when the command is recognized. You will need at least one confirmation method, let's say a simple LED that lits up when waiting for a command and turns off after the command is recognized.