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.
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
Datasheets

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
Wood!

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