Hi, my name is Tommy. I go to Mills High School in Millbrae and I am a rising junior. My starter project is the MiniPOV and my main project is a voice recognition robot. The MiniPOV is a device with 8 blinking LEDs that display a programmed image when I wave it through the air. I chose the MiniPOV as my starter project because I didn’t know anything about programming, electrical, or mechanical engineering before I came to BlueStamp, so I believed making the MiniPOV is a good start on learning those subjects. Once I finished the MiniPOV, I started working on my main project, the voice recognition robot. It is a robot that can perform simple movements with my voice commands. I picked the voice recognition robot as my main project because I think robots are fascinating and I talk a lot sometimes, so I thought it would be fun to build my own robot that can be simply controlled by talking.
Below are my milestones and documentation of the starter and main projects.
Here is my Bill of Material:
Here are all the codes I used for the robot (arduino .ino files):
Here is model of my robot (Sketch Up file):
Here is the schematic drawing:
Final Video: Main Project Completed (July 18)
For the past 5 weeks, I have been working on my voice recognition robot, which I have to say was a life changing experience for me because I learned and explored a lot of new things, and I no longer look at programming and electrical engineering as mysteries even though I was completely freaked out when I first came to BlueStamp Engineering due to my lack of knowledge on everything I was about to do in the program. However, I eventually started to feel more comfortable working on my project because every problem I solved and every milestone I achieved gives me motivation to move forward. At the end of the fifth week, I finally completed making an actual functioning voice recognition robot, and I was very excited because even I encountered tons of problems over the course of five weeks, including breaking two servos and a Axon II board, a platform like arduino, I was still able to finish and perfect my project.
So let me give you a general idea of how my I built the robot and how it works. First I create and train a command table with a software called EasyVR Commander, the software and tutorial can be downloaded on their official site. Then I upload the trained commands table to the EasyVR shield(a thingie that gives the robot voice input and output), so whenever I say the specific command, the shield can send the specific signal to the Botboarduino board, which is attaching to the shield (Note: Botboarduino is an excellent platform for controlling multiple servos). Then I connect two 360 degree servos (Has to be 360 degree servos) to specific pins on the Botboarduino and I can start writing action code for specific commands. For example, I write the code and values for the servos to rotate forward with whatever speed I like for the “FORWARD” command in the the command table(sample code can be found in the arduino servo library). When the code are done, I assemble all the parts together and attach a 6V battery pack to the EasyVR shield(well, doesn’t have to be 6V) and my robot is ready to go!
Like I said, I encountered a lot of problems during the process, but I can solve most of the problems by doings things step by step. Even though sometimes they can’t be solved, I eventually found another path to go around it, and I think that’s the most important thing I learned in BlueStamp Engineering. Trust me, it feels fantastic every time you get to say “IN YOUR FACE” to problems.
Third Milestone: Controlling servos using voice command
Description: For my third milestone, I am able to control two servos that are connecting to an Arduino board and a EasyVR shield using voice command. I programmed the Arduino board and powered it with an external power (must have external power to control servos), which allows me to control them using voice commands I programmed in. I also programmed the arudino to give me feedback through a headphone. However, the servos takes up large amount of energy and make the mic very insensitive, which means I have to speak very loud and clear in order for the mic to pick up my voice.
My next step is to assemble all the parts together and make it a functioning voice controlled robot.
Second Milestone: My first voice command
Description: For my second milestone, I programmed the EasyVR shield and Arduino to control a LED, which allows me to turn the LED on and off by saying the voice command I want. This is a huge achievement because this is the first time I got the codes working, which I have never done anything like this before. The following video is a demonstration.
My next milestone will be controlling servos using voice command.
First Milestone: Made a virtual model of the robot and assemble the parts
Description: For my first milestone, I created a virtual model of the robot with Google Sketch with similar dimensions of the robot, so later when I build the real robot I can make sure everything fits properly. Then I built the robot the same same way I design my robot with Google Sketch with simple materials, like card board and tapes. It turned out every parts fits perfectly.
I am still trying to figure out how to upload the code I programmed to the microcontroller, Axon II. For my next milestone video, I am going to be showing you how I program my robot and am able to control it to do simple things with voice commands.
Starter Project: MiniPOV
Description: The MiniPOV is a device powered by two AA batteries with a microcontroller that blinks 8 LEDs on and off to display a programmed vision when waving through the air. The MiniPOV contains resistors and diodes to help it send or block current from the LEDs so they can blinks on and off at the right time. These’s also a serial port at the end of the MiniPOV, which is for connecting to my computer to program the vision. The vision code is a bunch of 8-bit numbers, which displays in binary (from B8(00000000) to B8(11111111), in which 0 means the LED is off and 1 means the LED is on).
During the programming process, I encountered a problem. The problem is that all the LEDs of the MiniPOV are not blinking. Later I figured out the problem was that I forgot to fix the delay time of the LEDs, which makes the LEDs blink really fast, so I have to wave really fast in order to show the vision I programmed.