Let's Make Robots!

Working on a robot platform for various 'bot experiments

LeftBrain-RightBrain-Layout-Update25FEB12.jpg3.98 MB

A comment about popsicle sticks. <grins> They have become a tried and tested building material for robots.

Schrödinger is no exception. It is very hard to see as they are hidden, but if you look closely at the last picture at the bottom of the page, you may be able to see that the solar cells are not glued directly to the top-cover, but have 3 popsicle sticks as backing on each one. Because the solar cells are thin and glass, I wanted something to help strengthen and protect them, so each one was lined on the back with, --you guessed it, --the famous popsicle sticks. 

Last update: Updated the schematic. I had not finished drawing the solar charging circuit and needed to add the SpeakJet chip and Shrödinger's audio circuitry. Barring any glaring errors, I think that is Shrödinger's circuitry as built.

Schrödinger is now marked as complete.

Many of you know I had "emergency" cancer surgery recently.  What I might add is that this has left me drained of energy to continue working on this robot project, at least at this time. The doctors want me to do chemo-therapy, and if I do, it will continue for 6 months leaving me even less energetic than I am now...  I have decided to mark this robot project completed.

I hope what is here is enough to give people a few good ideas for their own robots. Over time I had added and changed the parameters and scope of this project to include more and more diversity, but Shrödinger, the robot, has already surpassed it original goals. It moves and avoid obstacles. It has "kid appeal" with its flashy-lights display and funky electronic voice. What I did not finish was the real-world mapping using a combination of sensors and the i²c memory chips. What is missing there is software only, as the sensors (visible-light "eyes" plus an infrared and two ultrasonics as well) and the i²c memory board with three memory chips are all in place. This was a more recent addition to the plan over and above the original scope of the project.

What I have planned now is to show this project complete as is, and if I should get energetic later on and work out the mapping software, I will just make that a new project page.  For now, with my low energy levels, I will do well to simply begin planning for a (possible) future 'walker' project.  If I get that planned out and begin the construction stages on it, I may be 'borrowing' (robbing) parts from Shrödinger (especially brain, batteries, the LCDuino readout board {made by PatrickMcCabe} and maybe the i²c memory board as well) for the walker.


Good luck to all of you on your own projects.



Previous Add: Was an updated schematic drawing. I still don't show the SpeakJet chip on this schematic, but I am certain I will be adding it under control of the Right Brain.

Previously Added:     I added a movie demonstrating the SpeakJet chip I have purchased to add a voice to the robot. I should have mentioned the little LCD unit that held Shrödinger's name and credited PatrickMcCabe on a job well-done in making that "LCDuino" board. It is run by an AtMega328 w/Arduino software, which displayed the text and flashed the one LED mounted on it temporarily. The LCD will not be a part of the Shrödinger project (at least no plans for that at this time). I have changed my mind several times as to what I was going to put on Shrödinger, so it is always possible it could end up on the robot as well at some point... --who knows? If I did, I would then have three brains present, two picaxe and one arduino, -all 28 pin types.


     Since all of you name your robots, I have named this robot Schrödinger.  (That was the name of one of the early proponents of Quantum Mechanics. --the "cat-in-the-box" guy.)

     I finally did a spinal cord / brain stem operation and have his head functions hooked up.  Still have to test them and if correct, I will seal up his skull. Ok, I never did seal his skull but left it accessable. I did, however, enclose his spinal cord wires in a protective but flexible covering.

     I've added a third video, to show a little led board I will stick on the robot somewhere.  I stated that I did not have the communications between brains worked out, but that is not totally true. Here is how I set that up:

The LEFT BRAIN sends numbers to the RIGHT BRAIN to tell what it is doing. RIGHT BRAIN absolutely refuses to be called a "slave" or to refer to LEFT BRAIN as its "master".  Don't tell him, but LEFT BRAIN is pretty much in control, at least of the i2c bus.

LEFT BRAIN sends status updates like: 1-scanning with IR,  2-object found with IR,  3-scanning with sonics,  4-object found with sonics,  5-object too close,  6-full stop,  7-backing away,  8-contemplating which way to turn,  9-quick scan,  10-turning,  11-forward,  12-bumper switch (interrupt),  13-light scan (eyes),  14-need more light (asking right brain to open covers or turn on headlights),  15-area too bright (asking right brain to close covers or turn off headlights), ...  and so forth. Then it marks the interrupt line high going to RIGHT BRAIN.

Over at the RIGHT BRAIN, it gets the interrupt and reads the first (status) byte from i2c memory.the RIGHT BRAIN, having less work to do, uses this input to adjust its "emotions", displays emotions via mouth LEDs, eye covers, switch on/off the headlights and this little LED (flashy lights) activity board, which uses patterns to display brain activities.  Once the RIGHT BRAIN has picked up the number(s) being sent from the LEFT, it stores a number of its own in the same memory slot. When LEFT BRAIN sees this number (%11111111) appear, it knows RIGHT BRAIN got the last status byte it sent (so it can send another). It stores the next status and switches its interrupt line to RIGHT BRAIN high, to interrupt RIGHT BRAIN and tell it, that it has another new status to read.

In some of the pictures, you see a coil of wires on the left front corner of the chassis that is earlier pictures of his "spinal cord" wires, used to connect the head functions (eyes, mouth, eye-covers & headlights) Those have been hooked up now. The wiring of the main board is done. The top-cover has the IR distance sensor with servo and two ultrasonic distance sensors. It also carries the solar cells for charging the main logic batteries, and a small board (underneath) with the charging circuitry as well. All that shows in the first video is head-turning & steering servos plus the drive motors.  Since that video was made, I got hold of better batteries and have much less problems with batteries going dead. I found out that one of the brand new NiMH batteries is bad. It does not hold a charge more than a couple minutes under load, even though the other three in that set are just fine. I got a second set, and a new motor driver battery and it runs fine without rapid brown-outs.

     For the full schematic as I have it drawn so far, see file attachment (JPG file).

     I feel like mentioning something about the price and project costs... The page where we list the robots asked for a monetary amount but that is still unknown. I already have spent about three hundred US dollars on it. I have about everything I need for this project now but if I think of something I would like better, the price could go up.  My basic budget is somewhere between a $5 toy and a multimillion dollar Mars Rover. --So I am well within my budget limits...!  As to how much time I have put into it, I have no clue about that, either.  I fiddle with it whenever I get free time, and being retired, I have quite a bit of that.  I just keep trying different things. My biggest problem was the programming.  On a complex robot like this, there were a lot of sub-routines, and problems getting them to work together.


Much earlier notes:

     Not long ago, I discovered the Picaxe chip(s) and am using those for this project. I currently have three PICAXE 28X2s (post-Dec.2010) available for this project, but may only use two in the robot itself.  Having lots of miscellaneous bits and pieces laying about, (from 40 years in electronics) and wanting to try out the Picaxe, I decided to make a "testbed" robot upon which I could mount various things and change them around at will.  Also, I generally visit one of my brothers every weekend and he has small children underfoot quite often, so I decided further that I should make it "Child Resistant". (Nothing is totally "Child Proof", after all.)  Consequently, most of the robot is metal construction. 

     While I have no movies of the project, but I do lots of photos.

     Collecting things that look like they want to be part of the robot platform project... Looks like I have enough to get started.  It is funny, but in this picture are some of the things I originally planned to use for this robot, and now that I look at the picture, I notice that less than half of them actually got used. I keep making changes.  Well, I did say it was a "platform" for experimentation...

     That motor controller board is actually part of what will be on the robot. It will be mounted directly above the main "brain board".

     Some people may wonder how I can work on such a "messy" desk... Here is a little (true) story you may find interesting:

     Years ago, when I was in an engineering deptartment, the head of the department (I'll call him "Pinhead") was always very neat. That is, his desk was always clear of everything. (No baskets; no telephone... just a bare desktop.) He would take out a letter or spec-sheet or proposal and stare at it for hours, before putting it away and getting out another.

     One day he came back to where I was working and commented, "Your desk is always cluttered. Don't you realize that a cluttered desk is the sign of a cluttered mind?"

     My immediate answer to him was, "...then thank goodness I don't have an empty desk!"

     "Pinhead" didn't get it. --Not sure he ever did. <grins>


     Yes, I think this will work...

     I got this old lathe when someone owed me $50 and asked if I would take the lathe as payment.  Not sure if my eyes lit up like beacons, but I know I felt like saying, "I might if you twist my arm and force me to take it." <grins> --Even an old lathe like this one would sell for hundreds, easy. Since that I have put a couple hundred in it, making it smoother and more accurate.

     Here (above) you can see one of the aluminium hub inserts with its bearings.

     Trying the mouth LEDs. I had to put in several diodes to make the different expressions, since some of the LEDs are used for multiple expressions. (Later changed the plastic piece holding them to a metal one, since the plastic one got melted a bit.)

     The motors have now been replaced, since the old ones were only strong enough to move the robot on flat terrain, --no bumps.

     I was not happy with the power of the first stepper motors, so I ordered new ones. (Sanyo B00224s, what I actually received was the upgraded version called the B00324) Running them at 10 volts, they seem to work fantastically (compared to the other ones.)


     I had already tested the new motors and unhooked the wires from this controller and the picaxe breadboard, when I thought of snapping this picture.

     Both the old motors and the new ones had shafts that were too long for the space in my chassis.  I had to (carefully) grind them down and sand off the ends so they didn't hit on the other motor when the suspension goes up and down on one side or the other. (and take care to not get any metal dust/filings in the motors.)

     The white "tie-rods" are pieces cut from cheap wire coat-hangers and bent into shape with needle-nosed pliers. Another odd bit; I planned this servo placement to be temporary, but it worked fine, so I just added a cable tie (aka tie-wrap) and locked it in place as is.

     Ok, after finding the wheels did not turn far enough, I decided to drill a couple new adjustment holes in the steering arms. (See next photo.)  The middle holes seem to give me what I want, but I may tweak the steering further after the controllers, batteries, and driver chips are mounted and I can actually test how it handles when sitting on its wheels.

     I put in place ten of the bright white LEDs (scavanged from an LED light bulb). I decided to mount them over the CdS eyes, since the cadmium sulfide sensors will need the help in low light conditions.  I am setting it up for 'medium' light conditions and adding headlights for dark places, and eye covers for too bright conditions. (I could always use a dual op-amp in a comparator circuit, but not sure that will be needed.)

     I'm using wires stripped from a telephone line cord between the brain compartment and the head because they were designed to flex back and forth thousands of times without breaking. Being fine strands wrapped around cord, they are a bit hard to work with (and solder to) but it can be done.

     I was going to mount eyebrows for kid-appeal, but after I decided to put the headlights above the eyes, I won't have room for the other two servos.

     I think I have decided the only place I can mount this unit is fixed on the front of the vehicle. It will only give reading for movement straight ahead... (and I can calibrate it with a reading on a "fixed" object, while the 'Bot is moving. Mostly the proximity detection will be done with the eyes and a ultra-sonic sensors. I also added an infrared sensor mounted on the "top cover" of the body (below the head).


     Have the mouth LEDs mounted on the metal replacement part and wired up.  Mounted it on the head soon after. Next I mounted the servos for the "dust covers" for the eyes. Next picture shows them hooked to the picaxe breadboard and being tested.

     The eye covers are working just the way I want them to. In case of light that is too bright, I can rotate them partially closed to limit incoming light, or if the light is too low, I can turn on the headlights (10 ultra-bright white-light LEDs)


     The SR-04 ultra-sonic sensor worked so well, I sent for another one.  Most people seem to be using "name brand" ones that cost much more, but these work fine and only cost $8.49 USD. I am starting to think that the number of sensors, lights and servos must always expand to use up all available I/O pins.  :-)

     I am still thinking of adding a gripper arm on the robot, but have not commited to that yet.  If I do, I could either forego adding the LED display matrix and that will give me 7 additional I/O pins, or else add a separate brain to control arm movement.  I already verified that servos will work just fine on any I/O pin if I use the PULSOUT command instead of the SERVO or SERVOPOS commands.

     Here is a list of my I/O's as I currently see them (Still trying to get these to all work together the best way. Doing a lot of programming and testing. I think this will do it.

V+                                                                              20                                        +5 volts
GND (0V)                                                                    19 & 8                                   0 volts
Output 0 (B.0)                                                              21                         0              Ultrasonic PING Left         (Output)
Output 1 (B.1)                                                              22                         1              Ultrasonic PING Right       (Output)
Output 2 (B.2)                                                              23                         2              Head-Turning Servo           (Output)
Output 3 (B.3)                                                              24                         3              Steering Servo                  (Output)
Output 4 (B.4)                                                              25                         4              R Drive Step Motor 3 (&4)  (Output)
Output 5 (B.5)                                                              26                         5              R Drive Step Motor 1 (&2)  (Output)
Output 6 (B.6)                                                              27                         6              L Drive Step Motor 3 (&4)   (Output)
Output 7 (B.7)                                                              28                         7              L Drive Step Motor 1 (&2)   (Output)

In 0 / Out c0 / Infrain                                                     11                         8              Interrupt Out to Right Brain (Output)
In 1 / Output c1 / PWM 1                                              12                         9              Read Left Ultrasonic            (Input)
In 2 / Output c2 / PWM 2                                              13                        10              Read Right Ultrasonic         (Input)
In 3 / Output c3 / I2C SCI / SPI SCK                              14                        11              Memory I2C SCL 
In 4 / Output c4 / I2C SDA / SPI SDI                              15                        12              Memory I2C SDA
In 5 / Output c5 / SPI SDO                                            16                        13              Interrupt From Right Brain   (Input)
In 6 / Output c6 / Kbrd Clk / SER TX                               17                       14              Right Front Bumper Switch  (Input)
In 7 / Output c7 / Kbrd Data / SER RX                            18                        15              Left Front Bumper Switch    (Input)

ADC 0 / In a0 / ULPWU                                                  2                        16              InfraRed SERVO control    (Output)
ADC 1 / In a1                                                                 3                        17              InfraRed Measurement   (ADC in)
ADC 2 / In a2                                                                 4                        18              Right Eye                     (ADC in)
ADC 3 / In a3                                                                 5                        19              Left Eye                        (ADC in)

Serial In                                                                         6
Serial Out / A.4 / ADC 4?                                                7
Resonator                                                                      9 & 10
Reset                                                                            1

V+                                                                               20                                         +5 volts
GND (0V)                                                                     19 & 8                                    0 volts
Output 0 (B.0)                                                              21                         0               Red LEDs -common
Output 1 (B.1)                                                              22                         1                ...available
Output 2 (B.2)                                                              23                         2               Interrupt In from Left Brain
Output 3 (B.3)                                                              24                         3               Interrupt Out to Left Brain
Output 4 (B.4)                                                              25                         4               Right Eye Cover Servo     (Output)
Output 5 (B.5)                                                              26                         5               Left Eye Cover Servo   (Output)
Output 6 (B.6)                                                              27                         6                ...available
Output 7 (B.7)                                                              28                         7               Brake Light (transistor driver)
In 0 / Out c0 / Infrain                                                     11                         8               Mouth - Happy              (Output)
In 1 / Output c1 / PWM 1                                              12                         9               Mouth - Sad                  (Output)
In 2 / Output c2 / PWM 2                                              13                       10               Mouth - Normal              (Output)
In 3 / Output c3 / I2C SCI / SPI SCK                              14                       11               Memory I2C SCL 
In 4 / Output c4 / I2C SDA / SPI SDI                              15                       12               Memory I2C SDA
In 5 / Output C5 / SPI SDO                                           16                       13               \
In 6 / Output c6 / Kbrd Clk / SER TX                              17                       14                 > LED matrix board
In 7 / Output c7 / Kbrd Data / SER RX                           18                        15               /    (horizontal)
ADC 0 / In a0 / ULPWU                                                 2                        16               Headlights (transistor driver)
ADC 1 / In a1                                                                3                        17               \
ADC 2 / In a2                                                                4                        18                 > LED matrix board
ADC 3 / In a3                                                                5                        19               /    (vertical)

Serial In                                                                        6
Serial Out / A.4 / ADC 4?                                               7
Resonator                                                                     9 & 10
Reset                                                                           1


     As to the concerns about the steppers: I've ordered a couple new steppers plus new 32 pitch gears to fit them and have them mounted on the chassis where the others were.

     I am including my current working schematic for the robot as a file attachment (.jpg available above). If you spot anything that does not look like it will work properly, be sure and tell me, so I can change it before testing for maximum smoke in the picaxes.      <grin>

     Oh, something I did not list there. The NPN transistors are 2N3904s and the PNPs are 2N4036s but more or less any common transistors would do.  Those are ones I happened to have lying about. I considered using 2N404s, but decided I might need those germaniums for something special some day --(like in the solar battery charger, for instance).

     As to the dual transistor arrangement on the "mouth" lights, I would not have needed that, but I have already wired the diode matrix that runs them for switched positive rather than ground, so I threw in an extra PNP in each circuit to reverse the logic polarity.

     I also did not show the batteries, power switches and solar charger on the schematic yet. (The solar charger circuit is an option. I may or may not use it on this unit.)

     Main battery:  4 x NiMH,  [5 V by 2.5 AH]  -I have ordered another identical battery pack, to help increase the instantaneous available current for running servos, headlights and so forth at the same time.

     Additional battery to boost Stepper Motors (only) on up to 10 volts:  8 x NiCd,  [5 V by 2.0 AH]

     I listed these rechargeables as 5 volts, not 4.8 volts as that is what both sets actually read.



     The code above is the MOVEMENT section (only three readings for shorter pauses while moving. Takes 1 second plus.

     (Both that and the next one should speed up a little when not needing to send characters to the terminal at 9600 baud.)

     The one below is in the MAPPING section of the code (more readings, but takes 9 - 10 seconds to produce results).

As mentioned before, the program code is still in the process of development.


     I needed a miniature double-pole switch to turn on both batteries at once, and finally found some small slide switches in a parts drawer that were DPST.  One of those worked fine.

     If I do use the solar cells on this robot, I have to figure out a circuit that will charge both batteries --as in, disconnect them from the robot electronics (at least the motor "boost" battery) and charge them in paralell. Once they are charged up, they would then automatically switch back to series mode to power the robot.  I would also like them to swing out of the way when not in use, and align to the sun (or brightest light) when the battery gets low. However, this robot is probably complex enough.  I may not even add the solar cells on this one. If I do, I will probably mount them on the top cover (not shown in these pictures yet).

     I have decided not to use the X-band motion detector.  I already have plenty of sensors and not enough room to mount it on this 'Bot.  Basically, it won't be useful to have it there.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Good suggestion, but the wiper motors I am familiar with are physically too large for this chassis.

What I am more likely to do is locate a couple larger steppers, say on eBay. There are many sizes. It's more a matter finding ones that are reasonably priced and give better torque.

In leiu of that, I could use servos (modified for continuous rotation), or better yet, gear-motors. If I do either of those, I might need to mount a counter on the wheels (or wheel gears) to tell how far they rotated. Perhaps I should do that anyway, since the current setup does not have feedback to tell me if there is slippage -or if the motors stall.

After I tried different motors (Tamyia geared, continuous servo, steppers) I have to say that steppers are the best for precise distance. It requires no counters, has high torque, variable speed and allows small steps (usually 200 per rotation).

I made good experience with this ones http://www.3xmotion.com/english/default/Product_show.asp?id=127

It draws 1,3 A which allows to use small pololu H-bridge for conroll http://www.pololu.com/catalog/product/0713/pictures?picrow=0  

With small heatsink it allows 3A per channel and is more efficient than L298N.

I used it on my platform  http://letsmakerobots.com/node/25862 and it easily moves its 3 kg weight.

I took a look at the reference page. I was not sure which one you are actually using, but there does seem to be a lot of choices from which to pick.

As to the driver, it also looks like a good one, but I already have about 5 of the L293D chips, so I am more likely to use those, but add on a transistor output stage to carry the extra current. For instance, I have a handful of darlingtons capable of a couple amps collector current. My L293D's output could easily drive one of those. (In fact, I might just use the Darlington direct from the PICAXE chip and forget the L293Ds...

Anyway, thanks a lot for the information.

Hope your projects are going well,

Dan M


10 GHz motion detectors? Where do you get these marvolous toys?

I got one from parallax   ( www.parallax.com ).  It was something that is totally useless on a "toy" robot, so of course I had to have one...   <grins>  Operating frequency is nominally 10.525 GHz.

Parallax buys them from Satistronics in China http://www.satistronics.com , but Parallax adds their own back board which is slightly different from the ones Satistronics sells. If you have no qualms about buying from China, Satistronics seems worth checking out. They have several items at lower prices than elsewhere... -and I am all for saving money.  I just placed an order with them last night. We shall see if that goes through alright with no delivery, billing or bait-n-switch problems...  I will know more in a week or two.

The 10 GHz. units are sold more as simple motion detectors, but the number of pulses the unit sends relates to the speed. The only problem is that the beam is so wide as sold, that you can get multiple hits and the speed it reports will be the average of all movement in its beam. That is a case for modifying it for a tighter beam.

If you put a waveguide / horn on there, you could narrow down the beam a lot.  I have not done that yet, but could at some point to get more diffinitive results. Makes me wish I still had some of my microwave test gear I had when I was working, but it's too expensive for home/casual use.


this may sound stupid (something I'm not immune to), but I think those are the gadgets that claim to be able to see through walls (I mean detect motion on other side of wall).   that's the only reason I bought 1 also.  does that sound familiar, or am I thinking of something else....  8-)

Quite so. It depends on the wall material, of course, but much of the material used in wall construction is transparant (or at least translucent) to microwaves, so they were being basically truthful (although a wee bit misleading). If the wall has a foil vapor barrier, even such a thin bit of metal will cut down the signal to where these little units probably will not see any return signal beyond the wall.

Mostly, it will work (slightly) on thin, interior walls.

While microwave ovens are typically around 2.5 GHz. and respond a little differently, you can more or less picture it this way: Anything that is "microwave safe" lets microwaves pass through without stopping them. A lot of wooden dishes get warm in the microwave because they are absorbing microwave energy, so wall studs for instance would be less likely to pass enough microwave energy. A piece of dry-wall with most of the water baked out of it, would pass more. Metal stops / absorbs virtually all of it, so they are opaque to those frequencies..

good explanation, thanks!

The only problem i can see is that your stepper motors may not be powerful enough to push all that steel about. Stepper motors do not have a lot of torque.

Look forward to video.


I agree about the steppers. That is why I opted for a larger gear on the drive axles. The ones I came up with have 87 teeth on them and there are 10 teeth on the motors themselves. That will give me a bit more than 8 to 1 increase in power (but I have to live with the 8 to 1 decrease in speed).

Other than the batteries and circuit boards, there is not a lot more weight to be added, (--unless I add a gripper arm later). In my testing, it seems to be getting enough power to the wheels, but I may still have to put out more money for stronger steppers later, expecially if I add even more weight. I did put (steel ball) bearings on all four wheels to decrease friction.

As to a video, I have a problem with knowing how to upload one here. I went to the video page and it seemed to be asking for a web address, meaning I have to upload it somewhere else and then point to it from here. Do I have that right? Is there a way to upload it directly?