Al Williams (WD5GNR)'s newest electronic column about electronic design, embedded systems, ham radio, and other geeky things.
Sunday, February 03, 2008
An Easy Robot
This little robot is made with two perf boards from Radio Shack (one of them cut into two for the sides). This board is easy to work with because it has a grid of holes. It is very easy to make nice straight cuts (or even just score and snap). It is also perfect for drilling exact holes. Basswood and polyurethane glue holds it all together (along with a few screws).
The drive consists of two Futuba RC servos modified for continuous rotation and a caster wheel from Home Depot in the rear. The tires are 2.25" RC aircraft tires.
A 4xAA holder under the top deck powers the motors. The 9V battery on the top is just for the electronics.
The electronics is the GP3 board which has been programmed by the GP3EZ software so programming the robot is simple point and click.
The sensor is a Panasonic IR sensor tuned for about 38kHz. The IR LED is pulsed through a 2N2222 with the GP3's PWM at 32kHz which is close enough that it works. A piece of antistatic foam pushed into a pin header blocks the sensor from seeing the LED directly. When something is in front of the bot, it sees the IR bounce off of it. It would be easy to add more LEDs (for example, two on the corners). The sensors could be paralleled or just connected to more I/O pins.
Here's the software (dumped out to HTML by GP3EZ; the real software is all constructed using GP3EZ's point and click interface):
Step #
Tag
Condition
Action
Next
Notes
1
Start
Always
LED Off PWM: 200 freq=32766
Start IR and reset LED (for when we finish turning)
2
MainLoop
Input: XXXXXXX0
LED On
object
Check IR sensor
3
Always
Pulse: pin 7 2000
Drive forward
4
Always
Pulse: pin 6 1000
Drive forward
5
After 20 ms
MainLoop
Servo delay (20ms)
6
object
Always
back (set bookmark)
We detected something, so back up a little.
7
turn
Always
Set Loop A to 20
Start turning (just under 1/2 second)
8
turn0
Always
Pulse: pin 7 2000
pulse motors the same way
9
Always
Pulse: pin 6 2000
Inserted step
10
After 20 ms
turn0 (Loop A)
Pause and loop for 2 seconds
11
Input: XXXXXXX1
Start
If sensor shows clear (high) then go back to forward motion
12
Always
turn
Sensor wasn't clear so do some more turns
13
back
Always
Set Loop A to 100
Back up for about 2 seconds
14
back0
Always
Pulse: pin 7 1000
Turn motors in reverse
15
Always
Pulse: pin 6 2000
16
After 20 ms
back0 (Loop A)
Delay and loop
17
Always
{last bookmark}
Go back to caller
The table is easy to understand. The step number should be obvious. The "Tag" is a label that names a particular step so you can refer to it later. Each step has 3 major parts:
Condition - This must be true for the step to execute. Many of the steps are marked "always" and some are marked "After xxx milliseconds". These will always execute, of course. Note the lines that work with the IR sensor, however. They only execute when a specific condition is true.
Action - When the condition occurs, this is what will happen. The GP3EZ can output digital values, PWM, pulses, and do a variety of other tasks as part of the action. If you are connected to a PC (the robot isn't) you can write data to a file or execute external commands.
Next - When a step executes, this column tells the program where to go next (which is usually the next step).
The note field is just a comment and is ignored by GP3EZ.
Note that the GP3EZ supports looping and subroutines. For example, at the "object" tag, there is a transfer (in the next field) to the tab "back". The notation says that a "bookmark" is set. If you find the back label, you'll see it does several steps and then goes to the "last bookmark." This is nothing more than a subroutine call and return. You can see examples of looping in the object and back routines which generate a specific number of motor pulses.
I finally managed to score a Joost beta test invite. Joost is a new project from the people who brought you Skype. They aim to create an on demand TV system on the Internet. The really interesting thing though is that they are only allowing invitees to beta test, and like Gmail, the best way to get an invite is to know someone who is already on it. Members get so many invites to share (and no, I don't have any yet before you ask).
My first impression is very good. The video skipped a bit at first, but only at the very beginning so I assume it figures out your line's capability over a short period. The user interface is very slick and there are "widgets" that allow you to do things like chat with people about the show you are watching.
The content, so far, is better than you'd expect, but not stellar. National Geographic channel has lots of interesting stuff. Saturday Morning TV has Rocky and Bullwinkle, Mr. Magoo, and other favorites. A lot of the programming seems slanted at folks younger than me (MTV-fare) but that isn't surprising since these people are more likely to watch TV on their PCs, I suppose. But this is a beta, so I expect more and more programming to come online. Even for someone my age there is plenty to watch! Of course, everything is on demand and you can control the video stream.
Like real TV, there are ads. I read that they are improving the technology they use to decide where to insert the ads, which is good. Sometimes the interruption for ads seems abrupt.
But don't get me wrong, the service is very cool and has a lot of potential. Now how to get a beta invite... well.... use your network of buddies, I suppose. If that fails, try http://www.joostswap.com where you can offer things of value for invites (people offer things like postcards from their location, a few dollars, CD cases, or even just gratitude). Once in awhile someone shows up with free invites but as you'd expect those go quick.
I don't know how I've missed these before. A Korean company makes a little handheld "video game" called the GP2X. It runs Linux on a 200MHz ARM processor (it actually has 2 ARM processors, but one isn't running Linux). From WikiPedia:
To paraphrase RFK, "Some people see a project like this and think why? I see a project like this and think why didn't I do that?" Neil Fraser did it. He hooked a PC up to an Etch-A-Sketch. But he didn't stop at just twisting the knobs. Oh no, this rig can turn the unit over and shake it to erase!
Pretty cool if you ask me. His site has some other neat toys like an automatic combination lock opening device (but don't worry, it won't work if the lock is attached to something).
Oh yeah, and here's the fine print: The Etch A Sketch product name and the configuration of the Etch A Sketch product are registered trademarks owned by The Ohio Art Company.
I'm always surprised at how few blogs talk about the things I'm interested in (FPGAs, ham radio, etc.). Sure, there are plenty of Internet blogs and some that are just "geeky" but I suspect the number of people with my exact set of interests is pretty small.
There are others, of course, but those are some that I've looked at at least twice. Where are you reading geek discussion? Post a comment and let me know.
I've been getting the urge to write some longer articles again, so I'm opening the HotSolder Article Pages. I'll get a link to the right shortly. Look for some new articles soon as well as some "reprints" of other articles I've had on some of my other Web sites.
Science Projects for Your... um... Your Kids... Yeah
Great site: http://www.sci-toys.com/index.html with lots of science projects you can do at home. In fact, with just stuff I had laying around the house and this site I had a neat high voltage demonstration to wow my grandkids with big blue sparks. But I did get to explain some science to them too. Now granted, I have a lot of strange things around my house, but honestly the only odd thing were jumper wires with alligator clips on the ends. And I bet you could rig it up with some ordinary wire just as well. Look at http://www.sci-toys.com/scitoys/scitoys/electro/electro4.html#franklin for more details on that project.
There are plenty of others:
A simple ion motor
Your own 3D pictures
A gauss rifle
Homemade radios from household items
World's simplest steam boat
Making a spectrometer from a CDROM
Lots more and most needing no real exotic parts. This excellent site does sell kits for some of the projects, but all the details are right there on the Web site -- no need to buy anything if you don't want to.