Palm hobby robot building update notes

Welcome again to bent machine labs.

"bent machine labs: Desire is our one true engine." (TM.)


July 2001 update

Check out my new Palm OS kaleidoscope here.

Building a hobby robot without a robot kit.

Been slowly working on a couple robotics items, and decided to finally share some of the developments.

Recently, some people in robotics have noticed that Palm handhelds make for a good robot brain. This is because:
a) They are portable & light.
b) They sport a graphical user interface (read: sliders, readouts, and buttons.)
c) A multitude of programming languages are available for use.

As a result, I have been learning to program the Palm, as well as playing around with brand new hardware. AH! You've gotta love hardware!

This page details my latest prototype, which is more of a "proof of concept" piece than anything else.

Others might use model airplane servos

Here's the general setup.

Basically, this is hardware for a linear actuator (the yellow & black thing next to the Palm, on the right.) The position of the linear actuator is controlled by the Palm there.

Something like that.

For programming the Palm I've been using Hotpaw Basic.

Hobby robot parts

Here's the linear actuator.

The table is the part there with the ribbon cable coming out of it. It slides on two bars and is driven by a primitive ball-screw arrangement built of all-thread & a common nut. At one end of the screw is a pillow block made out of a block of delrin and a tiny ball bearing. On the other end is a genuine Maxon motor. Below the table is the absolute encoder.

The table, bottom view.

This is the table. On the sides you can see the bearings for the rod. The six black things there on what I call the "reader" are Kodenshi opto-reflective sensors.

The reader reads the black & white markings on the absolute encoder, which you can see under the table in the photo above.

Here's the reader, taken out of the table, photographed with a pen for scale purposes.

The decoder.

I used two rather common ICs here for the decoder. One is a hex schmidt trigger & the other is a flip-flop. The schmidt trigger conditions the signal from from the kodenshi parts. The flip-flop decodes the information supplied by the reader & makes it into something easily digested by the Stamp.

Texas Instruments SN754410NE 1A Dual H-Bridge

Aw yeah, this is the kind of thing. After messing around with transistor-based h-bridges, I have to recommend stongly that you not waste your time and go instead for this kind of solution. This chip can drive two motors up to an amp or so each.

You'll be glad you did.

These ( and even more heavy duty drivers) as well as data sheets for them are available from Acroname Robotics.

Here's the carrier board for the Basic Stamp II

It has the usual: Debugging lights. IR communication. Reset switch. On-board programming jack. General i/o. Couple of trimmer caps.

Now that I'm using a Palm for this project, I'll most likely make a new board without the IR communication and add a Palm cable instead.

Here's the Palm with the actuator.

Palm Software for Hobby Robot

Here's a screen grab from the Palm (colorized, of course.)

This is basically a scroll bar. A person can click the arrows on the ends, or just grab the box there in the bar and drag it around. The actuator table will go where the box goes.

The dot on the upper left indicates whether or not the Palm serial port is open or closed.

The number on the far right tells the position of the scroll bar. The number on the left indicates where the actuator is positioned (it usually has to play catch up.)
Ok, ok, it's a little primitive still.

At the same time, I've been feeling good about where this is going. I've taken a hard look at what was good and bad about both Petal and Elma Beaucoups. It seems to me that of the two, Elma is a cooler robot & that's the direction I'm going with my new projects. I don't find robot navagation as intriguing as most people, I guess...

Using a Palm for the brain of this project will allow faster control and more programming opportunities, like recording a series of movements for later playback.

I was especially dissatisfied with the lack of control afforded by using hobby servos on Petal (The Petal project is currently on hold.)

Moving forward, I'd like to build another robot like Elma, but way cooler. I'm also really excited about using Stamps to create an interface between Palms and the real world & have an idea or two about what would be fun.

For the curious, here is the Stamp code for interfacing with the Palm. Here is the code (HotPaw Basic) for the Palm side of the interface. Please note that neither of these is particularly well commented (sorry!) Also, neither is programmed to handle error situations yet. They appear here only to supply examples to work from.

About HotPaw Basic.

As mentioned above, I've been using HotPaw Basic to program the Palm side. I just keep finding reasons to avoid learning C! Marvin Minsky's call for higher level programming languages is the only thing that helps keep me from feeling bad about this fact. So I'm still programming in Basic and assembly, but not C, which I find extremely ironic.

Recently I invested in HotPaw's only obvious competitor, NS Basic, which is something like what Hypercard was for the Macintosh. NS Basic is SLOW and feels clumsy, with a much less filled-out feature set, but it is fully object oriented (a.k.a. "OO.") Being object oriented makes programming the user interface a snap. On the down side, NS Basic must be written and compiled on a PC and hotsynced to the Palm, which is a real pain.

HotPaw seems well thought out, and provides an excellent implementation of the Basic programming language for the Palm with an extremely wide feature set. The resulting programs are faster and feel much more slick (except for that annoying "quit" button.) I wish it were a bit more object-oriented, but I guess that's the breaks. What it lacks in OO, it makes up for in flexibility. HotPaw programs can be written and run on the Palm itself, which is a huge plus. In fact, this is the main reason I haven't done more work with NS Basic.

Both languages can compile .prc files which may be run from the Palm launcher. Both also require that a runtime be installed on the Palm, which weigh in at about 100K. NS Basic is more buggy. Neither of these languages is particularly well-documented for some reason (although NS Basic claims to be - you still need a visual basic manual - haha,) but both have message boards on Yahoo.

I'm testing with NS Basic, but not feeling very enthusiastic about it. I will probably continue with HotPaw for now.

More to come!

Menu Pages for my other two robots:
Elma Beaucoups or Petal

Robot building pages


Everything copyright, 2001 Dave Benz

hits counter