Sunday, January 27, 2008

Infrared vs. Ultrasonic - What You Should Know

Over at , I wrote a tutorial explaining the pros and cons of using infrared and ultrasonic. I compared and contrasted them and wrote a bit of background information on the sensors.
The tutorial is titled Infrared vs. Ultrasonic - What You Should Know

Note: Ultrasonic is basically sonar : Infrared vs. Sonar is a valid title too

Friday, January 25, 2008

My Google Sketchup Tutorial

A Google SketchUp tutorial I wrote for

Here is the link for it

Voice Control and Chives 's Software

So many people have contacted me regarding how Chives works , software wise. So here is a detailed explanation.

When Chives' laptop starts up, Windows Speech Recognition also starts up. Now Chives's software, which I programmed in Visual Basic 6.0 , consists of multiple buttons whose captions are the voice commands. Meaning the caption titled is the command it does. "Get me a drink" is the caption of the button which gets you a drink . By clicking that button , the computer sends a signal through a USB port to the Phidgets controller ( we'll deal with that later, but you can google it if you want .)

Now where does the voice control come in? My first attempt at Speech recognition was that of using the Microsoft Speech SDK , which did not work out well. Accuracy was terrible. Then I stumbled upon Windows Vista Speech Recognition which is amazing. It actually scans the page automatically for the captions of buttons, and when you say the caption of a button it will click the button for you , all controlled by speech. So now all I did was create a program filled with buttons that did different tasks. Vola! Instant speech recognition. Except there is one slight problem now ..... having the robot talk back to us. Now I know you could use Microsoft Text to Speech , but frankly , after using that I felt like I really was talking to a robot . So I found this and prerecorded all of chives's sounds and also created my own Number to Speech engine. This engine I made allowed me to simply slip in a number variable into the engine and then a number would be said in a natural voice, eliminating the need for me to record every single sound from 1 to 1000.
Another issue which emerges throughout this type of program is timing. There are over 50 timers in Chives's program, since this will allow for the words to be said , for actions to last a certain amount of time , you get the idea , you need at least one timer for each function.

Well you get the basic idea of how I got voice control to work and text to speech to work ( in a natural voice, not Microsoft text to speech) . But I warn you, there are hundreds of bugs which I had to work out , causing me a lot of headaches. If you endeavor to create a voice controlled robot , feel free to contact me and I'll help you out of the bugs which I already fixed , give you tips , give you sample programs I made , because this will save you a lot of time and headaches.


Tuesday, January 22, 2008

Tips for Modifying Servos

OK so here I am making my own tips/instructions for modifying a servo. This is my favorite and the most accurate way.

  • To modify the servo replace the pot with two 2.2K precision ( 1% -2% tolerance) resistors
  • If precision resistors are not available but you have resistors with the same color-band , get a multimeter and measure which resistors have the closest resistance. Then pick the two resistors that have the closest resistance and use those.
  • Be careful when desoldering the potentiometer ( if it has leads connected to the PCB) . If the potentiometer has wires coming out of it and not only leads, solder the resistors to the wires and not directly to the circuit board. ( photo courtesy of Seatlle Robotics Club)
  • When you cut the wires off the potentiometer ( if it has wires) , cut it so that the potentiometer can be reused later on, you might need it in one of your projects.
  • After you have modified the servo circuitwise, try to remove the pot from the inside of the servo. If the potentiometer is hard to remove , DO NOT USE FORCE, and just leave it in there.
  • Also, when using servos for locomotion. One servo has to be going clockwise and one has to be going counterclockwise for the vehicle to move forward, right? So on one of the servos , reverse the wires to the motor so that way , both motors will get the same pulse to go forward.
  • When you modify the output gear for continuous rotation saw it carefully, making sure not to damage the gear teeth, and use a file to smooth it out.
  • Before putting the servo back together , make sure all the gears can move and that nothing is stuck in between the gears
  • Last tip: Be careful when opening a servo. Open the screws carefully and don't lose gears, as well as do not touch the grease too much.

Monday, January 21, 2008

Line Following, Obstacle Avoiding , and Victim Finding , Oh My!

My tutorial for is 75% complete!!! Everything except programming and the circuit is described in heavy detail on the tutorial

Check it out at Line Following, Obstacle Avoiding , and Victim Finding , Oh My!

And here is a glimpse of the actual robot

My robotics CAD collection

As many of you know I use google sketchup to make CADs of my robots and other projects. Now usually I make my own parts and sometimes I get lucky and find the parts on Google Warehouse. Today , when making a CAD for one of my robots I was so upset, I could not find a single CAD of the parts besides a servo. This got me very frustrated. So I sent out a couple of emails, posted a thread on and assembled a collection of robot components. I'm still making more parts myself.

If this collection has helped you , please make a CAD part to add to the collection , or at least leave a comment on this blog expressing your gratitude.

Anyway here is the link to My Robotics Collection