Search WWW
Search Site

A Diary of the Creation of Artificial Life

This is a diary recording from start to finish the process of building a robot.  After my first co-op, I decided that I probably already had the skills to attempt to build a robot.  I got a book on robot building, read through most of it, and started to plan a robot.  The following is what I did toward the goal of building a robot that would serve me drinks.

If you find this robot diary helpful as a resource for your own robot building, please feel free to donate some money to help offset the costs of my robot project.

Brief Robot Overview

December 10, 2001  
    The Idea

Robot Builder's Bonanza
After my first co-op at AFRL, I decided that I probably had the skills necessary to build a robot.  I now knew how to program a microconverter, run a stepper motor through one, and solder components onto boards.  I knew enough about circuits and sensors that I thought it was possible for me to actually build a robot.  I started looking into robot websites and books, and I got the book Robot Builder's Bonanza by Gordon McComb.  I also got a little robot kit to play around with, but it didn't really have many options, and the gears on the wheels were so poorly fitted that both wheels never seemed to work at once.  But this idea stayed in the back of my head until came to the forefront again at the start of next co-op quarter.

April 1, 2002
    The Start of a Robot

Being back on co-op again, I once again started thinking about building a robot.  I mentioned it to my supervisor at work, and he thought it was a good idea.  Since we would be designing a circuit board anyway for our temperature controller at work, I could also design some circuit boards for my robot, and maybe even design one that would use the same Analog Devices ADUC812 microconverter that I was using for the temperature controller at work.   This would give my robot an extremely powerful microconverter to run it and it would be one that I already knew how to program and use.

April 15, 2002
    Microconverter Board Design

Robot Brain Board Layout
My board for the robot and the board for the temperature controller would be very similar.  For the most part I followed the schematics for common usage of the ADUC812 in a board design.  Using Eagle Layout Editor, I designed a schematic representing the microconverter and all its necessary components to make it run properly.  The temperature controller board and my robot brain differed in some of these components as they required different systems to communicate with other boards and other types of things.  I designed the microconverter board with four layers, including separate analog and digital ground planes.  I used both some of the reference materials on the ADUC812 and some of my knowledge from co-op and circuits classes to design the board.  

April 22, 2002
    Robot Plans

My Robot Design Notes
While reading through the book Robot Builder's Bonanza, I started taking notes on what kind of robot I wanted, what types of sensors I wanted, and how it would be designed.  I decided that since I was making circuit boards for it anyway, I might as well make circuit boards for all the different types of sensors that I might use. This way, I would have boards for the various sensors in the case that I did decide I needed them.  I did decide that I wanted to have the robot be a decent size, have IR sensors with the ability to follow a line on the floor, and I wanted it to eventually have an arm so that it could get soda from the fridge for me.  I also found the idea of a speech synthesis chip for a talking robot interesting and possibly adding a vacuum to the robot so that it would vacuum my room on its own while I was away.  

April 25, 2002
    Free Samples

Allegro Motor Drivers
The robot book I was using as my reference recommended Allegro for both the DC motor drivers and the stepper motor drivers.  Allegro gives away free samples of their chips so I ordered free samples of the surface mount versions of both chips.  Maxim Dallas Semiconductor also gives away free samples of all of their chips so I ordered some op amps, comparators, microconverters and a few other items that might be useful for my robot.  It was great to be able to get some of the more important components of my robot boards for free.

April 29, 2002
    More Robot Boards

Sensor and Motor Board Layouts
After deciding on all the sensors I wanted, I started designing some other circuit boards just for the robot.  I planned to make lots of smaller boards and connect them back to the microconverter with cables, so that I could easily mix and match different sensor boards into the robot depending on what I wanted.  I wanted to make boards for the IR sensors, motor drivers, other sensors, IO interface, speech synthesis, power, contact switches, extra LED's and the stepper motor drivers for the arm.  For the most part, I designed these boards using a combination of the diagrams and ideas in the book, the schematics in the data sheets for the chips and sensors I planned to use, and my own idea of how I wanted it setup.  One interesting extra feature I added was a jumper on the IR sensor board to switch between analog and digital output.  You can set the IR sensors on my board to output a variable voltage based on the level of infrared light that they see, or with the potentiometer, you can set it so it just turns on or off after the IR level passes a certain trip point.  With this feature, I can use the boards on the front to give a rough estimate of how far away objects are, and also use the same boards underneath with a digital setting that just turns on or off depending on if the robot is over the reflective tape it is trying to follow.  

May 4, 2002
    Platform Ideas

Drawing of my Robot Vision
I came to the conclusion that the best platform for my robot would probably be aluminum, since it is metal and fairly durable, but still light enough that its easy to cut and it is pretty cheap.  I got some cheap aluminum shelves from K-mart and figured that these would work pretty well.  I was already planning to maybe put the arm of the robot up on a second level, and the shelves already provide the basic supports and things to make that idea work.  I figured I would cut the shelf into a smaller size for the robot, and then drill some holes in it to mount the circuit boards onto.  I had my friend get me some old lawnmower wheels for my robot and I I was planning to make it a decent size, maybe about a foot and a half long by about a foot wide.

May 20, 2002
    Board components 

Robot Parts
I had ordred some different parts for my robot from an online surplus supplier, Electronic Goldmine.  I ordered various DC and stepper motors along with a wide variety of different types of IR LED's and phototransistors to be the main eyes of my robot.  I also ordered some PIR sensors, Cds sensors, and a small microphone and speaker for voice recognition and speech synthesis if I ever get around to that.  I got multiple makes of the DC motors and the IR sensors so I can try them out and see which ones work the best. 

May 21, 2002
    Robot Circuit Boards

Circuit Board/Design Comparison
After finalizing the design for all my robot boards other than the temperature controller, I put a bunch of them together on a larger board and sent the plans off to a foundry to get the boards made.  I sent the boards to Advanced Circuits because they have a special deal for 2 layer boards for only $33 each.  It only took about a week before I got the boards back.  On the left is a comparison between part of my board layout that I designed and the actual board that I received.  They were very nice looking.  It was a great feeling to have the boards I worked on in my hands.  I was very excited since with these and the robot parts I had gotten, it seemed like my robot would soon become a reality.  



May 26, 2002
    Populating the boards

After getting my robot boards in, I needed to populate the boards with all the components.  Most of the components I would still have to order since we didn't have some of the potentiometers, connectors and comparators at work.  We did have a wide selection of chip resistors to put on and some capacitors.  After being shown how to solder a surface mount resistor onto a board, I proceeded to populate both of my 2 layer robot boards with all their resistors, which was nearly 90 resistors per board.  I also put on some of the capacitors that were necessary for the boards.  

May 29, 2002
     Four Layer Boards

Robot Brain Board
The brain of my robot, the microconverter board, required four layers to fit all the routing on it.  Since there weren't as many of these, I had them made with the temperature controller board at work since it was a similar four layer board.  I also got a four layer board made for the speech synthesis chip I was thinking about getting so that I would be able to put it to use if I got it.  We ordered these boards from Prototron.  It took about a week and a half to get these boards back.  After getting these boards back, I started soldering chip resistors and capacitors on them as I had with my other two layer robot boards. 

June 3, 2002
    More Board Components

Board components
After putting all the resistors and capacitors that we had on the appropriate boards, I needed to get the rest of the components for the boards so that I could finish populating the boards.  The boards still needed various connectors, potentiometers, comparators, op amps, and other components.  I printed out a part list from Eagle Layout Editor and started going through the Digikey catalog and making an order list of all the different components that were needed.   I didn't get the components until June 14th, delaying some of my plans to finish populating the boards.

June 12, 2002
    A Platform

The Platform
I had already decided to use a cheap aluminum shelf I got at K Mart for my robot's platform.  Now I needed to drill some holes in the shelf so that I could mount my circuit boards onto it.  First I went to Lowe's to find out what kind of screws and spacers I could get, since I wanted my boards to be raised off the platform slightly.  Since I had made the holes on my circuit boards really small, I needed really tiny screws, nuts, and spacers.  I was able to get a few from Lowe's but I ended up buying them in bulk from Digikey instead.  I also got the appropriate size drill bit for the screws at Lowe's.  First I laid out where I wanted the boards to go on the platform.  After taping down the boards, I used a pencil to outline where each hole should go.  Then I removed the boards and started drilling.  Then I cut the shelf down to size and drilled holes for all the boards.  In addition to all the small holes, I needed holes for the wires to go to the two line follower boards underneath and some larger holes for the caster to go in the front.  Now when I finish populating the boards I can go ahead and mount them on the shelf and have a robot.  

June 17, 2002

My Robot Binder
Today I finished making up some datasheets with information on my robot boards.  I have layout diagrams, schematics, and parts lists.  But the main reason for them is so I can have a quick reference to check which pins should connect to what.  Previously I had been forced to keep going back and forth between the Eagle Layout Editor and the board to decide which thing should go where.  Now there are diagrams and descriptions of each pin out on the board.  I printed out all my data sheets and made a robot binder.  Right now it has those data sheets along with datasheets for the motor driver ICs and the ADUC812 microconverter.  I intend to add further information to it as I go along so it will be my reference for when I have questions about where a component or connection goes.   

July 25, 2002
    Lessons Learned

Soldering Iron
Now that I have been soldering components on to my boards for quite a while, I have learned quite a few lessons about both board design and about soldering components onto a board.  I intend to make changes to my board designs based on what I learned in case I ever decide to build another robot.  Hopefully these will help you as well.  The first thing I found out was that my screw holes were too small for any standard screws, so I decided to increase the drill hole size on my next set of boards to .125 inches.  I also realized that I would prefer to use the type of potentiometer that is flat on the board.  I originally had these in my board layouts, but then I found out that they didn't make that type of potentiometer (CT6) in the 1 Mega Ohm variety.  So I went with some different potentiometers that kind of fit in the same footprint.  Another feature that I'm going to add to the next reincarnation of my robot will be more decoupling capacitors on each board for the robot.  I also found out that it is somewhat difficult to solder single pins onto a board.  Since the connectors that attach to them can sit side by side on one bank of pins, I think that next time the boards will multiple sets of single or double pins will instead have a large bank of pins.  I also realized that for noise reasons, the motors should probably be on a separate power supply from the rest of my electronics.  I am still going to implement this feature on this robot, but it will be much easier next time with it designed into the boards.  I also found out how hard it can be to try to solder some of the surface mount devices on after you have already put some of the through hole parts such as connectors on.  The pin headers are big and get in the way of the soldering iron while trying to solder IC's and things on, so next time I will make sure to solder all the surface mount devices first.  I also plan to make sure the pads for the SMD are farther apart on the next boards.  I haven't short circuited any yet, but there have been a few close calls that have required some solder removal.  

August 19, 2002
    Boards Populated!

Fully Populated Robot Boards
It took about a month and a half since I started soldering components, but I've finally gotten it done.  I was soldering for a few hours each week in between classes and school work and everything else.  Now, 863 components have been soldered onto the boards and I'm getting close to putting my robot into action.  There were a few difficulties along the way.  The main ones were trying to solder some of the IC's on that were really close to pin headers and things and made it hard to get the soldering iron in there.  Another problem was trying to solder on the small 820 pF capacitors that came in the 0402 package.  The actual dimensions of these capacitors were 1 mm long by .5 mm wide and .5 mm high, and they were nearly impossible to solder on since the tweezers I had were bigger than the capacitors.  Now that all my boards are fully populated, I hope to make some cables and connectors to wire everything up soon.  Then I'll be able to start trying to downloading code and get this thing working.

August 21, 2002
    And so the wiring begins!!!

Battery Holders, Download Cable, and Wiring 
I started making some cables for my robot yesterday and now I have enough to actually begin to play with my robot.  I am using Molex connectors that require you to crimp the wire into a pin and then you push the pin into a connector housing that will fit on the pin headers on the boards. I had a little trouble with the wires staying in my crimp pins at first, so I started crimping and soldering the wires in.  It's a pretty slow process, and I think I've only connected about 25 wires so far.  But I've made a download cable, cables from the battery holders, a power cable, and a cable to send the signal from the brain board to an LED board for a test.  I was finally able to test something and I hooked up the cable from the battery holders to the power board and brain board and their Power LED's lit up.  So at least that part of those boards works and my connections work.  I did find out that my power switch is in backward so that the on side is hooked up to the momentary switch of it so it won't stay in that position on its own.  I'm going to need to find some way to reverse the switch I suppose.  

August 21, 2002
    Preparing to test the brain board

My Schematic for the Robot Brain
Now that I have the ability to power my brain board, to download code to it, and to connect its outputs to the LED's, I can test it.  The brain board is by far the most complicated board I designed as the microcontroller on the board has 52 pins most of which require specific inputs on them to work properly.   If I screwed up any serious part of the design the microcontroller might not work, whether it won't turn on, or perhaps won't accept new code or maybe won't run the code correctly.  I also soldered about 100 components on these boards so if any of these aren't connected securely or are short circuited the board will probably malfunction.  Finally I had to make a serial download cable for this board and the wires on it are loose or connected in the wrong spots I won't be able to download code.  I'm going to write a small piece of code in Keil uVision to make the LED's flash and attempt to download it some time tonight.  Then I'll get to find out if my board design, soldering, and wiring have turned out OK.  If this board doesn't work, I'll have no way to control the robot.

August 21, 2002
    And the test is... inconclusive.

Here is what happened.  Out of the three robot brain boards, only two of them have the power interface working properly.   On the third board the power LED goes on and off so some connection must not be very good there.  On the other two boards, I powered them up, put the download jumper on, and tried to download some code.  On one the download program would not connect at all.  On the second board, the program could reset the board externally.  Then I could download the code, and it would download all the way to 100%.  Then the program would tell me that there was some sort of code transmission error.  So I was unable to get the code to run.  I really need a multimeter or scope so I can see which connections on the two boards that won't connect are bad, since the boards are the same all three should be able to get to 100% download.  Then I'll have to fiddle with the boards and try to figure out why it has that error at the end.  It was exciting to see the download bar get to 100%, but then the code wouldn't run and that was quite a disappointment.  However I think I may be able to get it to work.

August 26, 2002
    Some Advancements...

I've made a few improvements but my boards still don't work.  I fixed the toggle switches on my power boards.  I used some desoldering braid to take the solder off the switches and I was really amazed at how well that stuff works.  Anyway, on the robot brain boards, originally two of them wouldn't work with the computer at all and on the third I could download to 100% before I got an error.  I got a mulitmeter and went through and checked all the different points on my board that would be relevant.  I checked these points not only against my own schematic for the board but against the schematic for the evaluation board.  Since I know that the evalutation board works and all these connections are the same then my board should work.  I checked 43 connections in all, including all the important pins on the ADUC812 chip and all the pins for the RS-232 driver chip.  I was able to fix one board when I realized that one pin the on the MAX232 chip was not connected.  On the third board I resoldered the cable's connections to the board and got it working.  I also found that my boards were only getting about 4 volts of power instead of 5 since the voltage regulator apparently needs much more than 5 volts to get a 5 volt output.  I'm now hooking it up to 9 volt battery so things are working fine.  So now on all three boards I can connect from the computer and download up to 100%.  Basically  now I've limited the problem down to something that is common between all three boards.  It's either the software, the download cable, or the board design itself.  I checked the design with the evaluation board schematics so I don't think that is it.  I've used the download program I'm currently using before and I've tried to download both my code and sample code and the same problem works.  I'm hoping it's the cable and I'm going to try to make a new one later this week.  I'm thinking maybe the code transmission error is somewhere in the line so I'm going to make a new shorter cable and try to see if it works.

August 28, 2002
    Code Downloaded!!!

I got an actual ADUC812 evaluation board and tried to download code to it from my computer and it gave me the same error.  Then I went downstairs and tried from my friends' computer and was able to download code both to it and to my own boards.  So the problem wasn't the board or the cable, but my computer.  I'm still not sure what the problem was.  There was still a problem however, since my code was supposed to make the LED's on another board flash and they didn't flash at all.  But I'm making progress.

August 31, 2002
    Flashing LED's!

My new transistor interface to the LED's 
I discovered two problems and I was able to fix both of them so that now my chip can turn the LED's on and off.  First, I realized that the ADUC812 microcontroller doesn't provide enough current to power an LED.  I fixed this by having the chip output go into a transistor which then would open or close the circuit between the LED and the voltage source.  The second problem was that the transistors/LEDs were on a second supply   I had originally intended to have everything on the same supply, but since I had put voltage regulators on both the power boards and the microcontroller boards, it didn't work.  The power board regulated the voltage to 5 volts, and then the brain board didn't tried to regulate that again.  So I removed the voltage regulator from the robot brain board so I could power it from the same power board as the LED's.  With everything on the same supply the transistors could now read the voltage output of the chip correctly and I was able to code my LED's to flash.  I still have some things to fix like figuring out why my serial port won't download to my robot board.  

September 1, 2002
    Ah Ha!!!

I found a new version of the downloader program on Analog's website.  It works fine.  So I was finally able to download my code to make the LED's count from 0 to 15 in binary.  It's so nice.  Now I just have to physically wire everything up and I can start writing code.  It's such a relief and excitement to see that this board I designed actually works and I can really download code to it and run it.

September 4, 2002
    Some Testing

My boards working together
Now that I've got my LED's and brain boards working, I set out to test the rest of my boards.  I wrote a little piece of code to run the LED's with the buttons and got it to work.  Next I tried to run the motors through the motor boards and I was able to run them, turn them on and off, and change directions with the buttons.  The next thing I tested were the infrared sensor boards.  I tested these by reading the analog output on the ADC's of the chip and then outputting what it say to the computer through the serial port and hyperterminal.  At first I was getting no change at all no matter how I changed what the board was looking at.  After some more testing, I went to Radioshack and bought some more infrared sensors.  I replaced one board with these and they worked, giving me varied responses depending on how close different objects were.  So now I'm slowly changing the infrared boards over.  Right now I do have a few problems still as one of the four motor boards doesn't work and 1 of the power boards doesn't work but I don't need those yet anyway.  So now I'm going to try to mount these boards on my shelf, wire them up, and see if I can make the boards work together to follow a line down the hall.  

September 7, 2002
    Black and White

My robot is so cute!
I replaced 6 of the IR boards with the new IR sensors and they work much better now.  I tested all of them in both analog and digital modes and got very good results.  The next thing I did was to mount some of the essential boards onto my platform along with the caster wheel.  You can't see it in this picture, but there are two IR boards mounted on the bottom of this shelf for line following.  First I hooked them up with the ADC's and measure the voltage output of them over the white carpet and then over the black tape and I used these levels to figure out where to set the potentiometers on them for digital output.  I found that about 4 volts was the perfect divider between the carpet and tape.  So now I have the ability to detect if the bot is over the tape or not.  Next I tried mounting the motors onto the platform with mounting tape and twist ties.  I was able to attach the wheels to the motors by finding some wood dowels to fit into the wheels and then drill holes in them for the motor axles.  However, my motors do not have enough torque to turn the wheels when they are on the ground.  So I have to either find stronger motors, smaller wheels maybe, or find a way to gear down the motors so they have more torque and less speed.  Once I do that I have already written a few test programs to see how the robot moves.  

October 4, 2002
    More Torque!

The gear kit I got for my bot.
I ordered some gear kits for my motors so I could reduce their speed and get more torque out of them.  Now I have enough torque to turn the huge lawnmower wheels I got, although I still haven't tried it with the wheels on the ground yet supporting the weight of the robot.  I've also finally got my second power board working again, so I can run the motors on a separate supply from the rest of the electronics and they won't eat up the current that the electronic parts need.  Next I'm going to try to solidly attach the motors to the bot and try to get it to turn the wheels under the full weight of the bot.  Then I'm going to try to recalibrate my IR sensors for the dark carpet here at the dorm and see if I can put some on the front that will detect objects in the way.


October 30, 2002
    Real Gearboxes

The new 800:1 Gearbox
The gearboxes I used before turned out  not to work so well.  With the full weight of the robot on them the axles just started to bend and the small gears started to break.   Plus the gear ratio of this gearbox was only about 20:1.  I got a new gear set that had bigger stronger axles, a bigger gear ratio, and it was adjustable.  This gearbox's highest setting is 808:1.  This is a lot of torque.  I tried putting these gearboxes on the robot and powering them up and they are able to move the bot around.  I didn't have the motor boxes solidly secured to the platform so after a little while they came off.  But I plan to add more supports to the platform so it doesn't bend as much and to secure the motors to the platform with screws and maybe some rubber cement or superglue.  After the motors are secured, I'll test the driving of the bot and then take a look at getting the IR sensors on the bottom to recognize the lines on the ground.  


December 17, 2002
    Line Following!!!

My robot at the end of a left turn.
I glued the wheels to the dowels and glued the dowels to the motors and then mounted the motors to the platform using 3M Exterior Mounting Tape which is extremely strong.  So now my robot can move.  For some reason I can't get my right side infrared sensor to work, but the left works so I decided to try out a left hand turn.  The bot maneuvered around the turn perfectly, although it got pretty slow at the end as the turn got too sharp.  One thing I did notice was that sometimes instead of turning at all the platform would just warp until the sensor wasn't over the line, then it would try to go forward and that would just warp it back so the sensor was over the line.  So it would get stuck warping back and forth.  So I think tomorrow I am going to get some plywood and use that instead since it shouldn't warp quite as much.  But other than that and the right IR, this thing is working great! 


December 18, 2002

Norwegian Wood (This bird has flown)
I replaced some more of the IR sensors with the better ones from radioshack so know I have working sensors on the left and right sides.  I got a wood board from Lowe's and mounted all the boards on it and it looks really nice.  Plus it's not flimsy like the aluminum.  But when I tried to test it, it is too heavy for the motors to move it very far.  So I need to find a some kind of platform that is lighter but still sturdy.  Possibly some sort of plastic platform or maybe just a lighter wood platform.   




December 19, 2002
    IT WORKS!!! IT WORKS!!!! IT WORKS!!!! IT WORKS!!!!!!

My robot following a line!!! 

IT WORKS!!!  I went to Home Depot and got some new lighter wood for a platform. My new platform is 12 x 20 inches, slightly bigger than the old one, but it's a lot thinner and lighter.  The old one weighed 3.5 pounds and this one is only 2 pounds.  Anyway After drilling holes and mounting all the boards onto this new platform, I wired it up and downloaded the code to test it.  It was able to move, but it would get stuck frequently.  However, after I moved the batteries to the back, it worked fine.  It's pretty important to balance the weight on the robot.  It was able to follow the line all the way to the hallway, at which point it couldn't see the line because it was dark in the hall.  The only problems I had with it were that the tape I used to mount the motors wasn't as strong as I needed, and the right motor started coming off the bot.  I can fix that once I get back to school because I have more mounting brackets for the gearboxes.  The second problem was that occasionally it would go too fast and not be able to make the sharp turns, but I just have to put down the tape with softer turns.  The third problem is the only serious one and that is the IR sensors I'm using to see the line the robot is trying to follow.  They work pretty well, but occasionally they just start going crazy and I have to reset it.  Plus once it got into the hallway it couldn't see the line at all.  I think it might be able to still differentiate the line from the carpet in darkness, but I have to recalibrate the potentiometers for it to work right.  That's the bad thing is that I have to keep fixing the potentiometers for all different light conditions.  But I have two ideas to fix this.  First off, I can try using different kinds of tape.  I was thinking maybe with a reflective tape it would be much easier to contrast betweent the carpet and tape, even in darkness.  The second thing is maybe I could use the IR sensors as analog instead of digital.  The program could read them into the ADC and see what the voltage levels are.  Since I'm going to have light sensors as well, maybe I could find someway to set the cutoff point in the software based on the light level in the room. Then it would be able to automatically adapt to the light levels in a room.  But for now I'm pretty excited that it does work and it can follow the tape I put down around the room.  I'm going to try getting the IR sensors to work a little better first before I move onto mounting some in the front to try to see objects in front of it or try to do some wall following.   

March 15, 2003
    Speech Therapy

The RC8650 speech chips 

I actually soldered the two RC8650 speech chips on the board myself.  I learned a trick where you just put some flux on, and then run a soldering iron with some solder on it down the ends of the pads and the pins just solder up for the most part.  A few got shorted but nothing some solder wick couldn't easily fix.  Probably is, after doing this and testing my board, all I got was some clicks and buzzes from my speaker.  I looked over the datasheet for the chips again, and found a few things different from my board.  Apparently they had revised their datasheet since when I designed the board and now it recommended 100k pull-up resisters instead of 47k, so I changed the pull-up resisters. I also tied the shutdown pin on the audio amplifier to ground.  Still just clicks.  So now I'm going to try to find a new speaker to test.  Right now I think it's got to be either the speaker or the audio amplifying part of the circuit.  So if I can't get the speaker to work then I'll try building another amplifier circuit and connecting it to it.  If that fails, then I'll use the multimeter to try and check some of the different voltage levels.  


March 18, 2003
    Inverted Pins

I figured out what the problem with the speech board is.  I was studying the schematic and layout on my computer, and I realized that the pins for the smaller 48 pin chip were all wrong.  Connections to pin 1 actually went to pin 48, pin 2 to pin 47, pin 3 to pin 46, etc.  So if I want to get speech from my board, I'll have to get a new board made and solder the chips on there and try it out.  I could send in new layouts for the other boards too and then I'd actually have LED's without needing an extra transistor board and all my boards would have power LED's.  So it wouldn't be that bad of a thing to get all my boards fabricated again, it would just cost money.  But I'm going to think about it.  

March 19, 2003
    Wall Following

I tested the IR sensors I have on the front of the robot and wrote some code to have it follow the wall.  At first I was trying to set the voltage in the code for how close to the wall the robot should be, but things like the wall color and the light in the room affected it so it didn't work too well if I coded it here and tested it in the hall.  Then I realized I could set it during operation, so what you with this code is, put the robot the distance from the wall you want it to drive, and then press the button, and it sets that as the threshold voltage.  The second button decides between following the wall on the left or right side.  It still doesn't quite work because at close ranges it has the same voltage output if it's too close or too far.  I think for larger ranges of a few feet it might work better so maybe it will just need to travel very far from the wall.  It should work OK for object avoidance at that range.  The other thing I realize is I need to mount some new sensors on the sides of the robot facing directly out to the wall.  

March 20, 2003
    New Stuff

I was having some problems yesterday with my robot getting stuck on the thick carpet.  I ordered some new Tamiya 70110 4 ratio gearboxes that have gear ratios of 1543:1 and 5402:1.  My old gearboxes were 800:1 so I should be able to run the robot with the 1543:1, but if that's not enough, certainly 5402:1 will be.  I'm also going to get some slightly smaller (and cleaner) lawnmower wheels.  I have realized that if I'm going to use buttons for calibration as well as other things, I'll need more buttons, so on the new set of boards I've added many more buttons.  I sent out my board plans to Advanced Circuits today, so I should have the new boards in a few weeks.  These new boards will have many improvements, including: power indicator LED's on all boards, more buttons, working LED boards, working microphone input, a working speech synthesis board, more labels on the connectors, separate power inputs on the motor boards, larger mounting holes, and an option for analog CdS sensor input.  

Future Robot Plans

I want to find some smaller wheels for the robot.  I'm already waiting on some new circuit boards and gearboxes that I ordered.  Until then, I'm going to superglue my wheels on, and test my wall following code some more.  After that, I'm going to take a shot at following a line and avoiding objects in the way.  I also came up with a great idea for my arm; I think I'll use the arm from one of those desk lamps with the flexible joints.   

More Information on my robot