Building a PC-based robot

Hi all.
I'm a beginner at robotics and want to build a robot using either an ATX
motherboard or laptop as the base. From my reading, I understand that I
will have to micro controllers to control the various functions of my little
monster. My questions are as follows:
1) Is there any way to use just the MB to control the motors and sensors,
etc?
2) I have Gordon McComb's "Robot Builders Bonanza". Can you suggest any
other books that would be helpful in this project. As I said, I have no
background in electronics or engineering, but I'm fairly adept with PC's.
3) What OS should I use? My first thought is to use Linux, since it has
much more flexibility than any Windows OS.
Thanks in advance for any input you can offer.
Mike
Reply to
Caelwin
Loading thread data ...
You will find yourself having to either buy or build devices that interface to either an ISA slot, if you can get a PC with one, the parallel port, or the serial port.
PCs are too general purpose to handle the specifics of sensor or motor interface directly.
Reply to
Blueeyedpop
If you're really a newbie, you might want to consider a simple kit -- start small in other words. I think you'll find that approach handy for getting a feel for what's actually involved in building a mobile robot, a lot of which tends not to be obvious to beginners. Gordon McComb (the guy who wrote "Bonanza") has a company:
formatting link
that offers a number of relatively inexpensive kits. He also posts to this NG quite a bit
You could use the parallel port in one of the standard bidirectional modes to do this, but I think over the long run you're going to find this largely inadequate. A much better approach would be to use the PC to talk to an OOPIC or bx24 via the serial port. These microcontrollers are very simple to setup and program. They also include plenty of I/O and things like A/D conversion and built in PWM generation, all stuff which you will almost certainly find you want. Cost is generally minimal -- these generally cost under $50 last I checked.
You can even build your robot initially to just run off the microcontroller, and add the PC in later (once you figure out how to power it -- see below). This approach gives you lots of flexibility.
Note that powering a regular ATX board is not trivial -- you will need a relatyively high capacity 3.3v and 5v supplies. You will also need 12v if you plan on running standard hard drives. You may be able to ignore the -5v and -12v requirements (although I'm not sure what ignoring the -12v requirement will do to the rs-232 hardware on the PC). A lot of people who choose to use standard ATX hardware often just punt on this by using an inverter connected to the robot batteries and powering the PC through a standard ATX supply.
Either way, plan on large batteries, and a robot large enough to support them. This will add cost to your project (you'll need larger motors, larger motor controllers, a larger and sturdier chassis, etc). If you want good obstacle sensor coverage, bear in mind that this cost tends to rise (a lot) as a robot gets larger.
You could also use a notebook -- but you'll be a slave to the notebook's power supply, which may not be easy to derive from the robot battery (this mat not be a problem for your application, however.) You could also consider a palm-pilot or similiar handheld (in this case, you'll definitely want to use the handhelds serial port to interface to a microcontroller I/O handler.
You could also consider the use of a PC/104 or nano-itx type board, but these will cost more money.
Anita Flynn, et al -- "Mobile Robots". I'll refrain from pushing my own book here.
Either will do, depending on your application. There are other (free) choices as well, such as uCOS-II. Some of the less gung-ho PC104 boards come with DOS clones, which can work quite nicely.
Consider which environment you are most familiar programming with. Personally, I have a preference for Linux, assuming I have the hardware and an OS is absolutely required to begin with, but it really depends on what you're doing -- for instance, you may be using some kind of hardware that lacks drivers under Linux, or you may be more comfortable using VB.
Hope that helped -- tAfkaks
Reply to
The Artist Formerly Known as K
Hi Caelwin Currently I'm building a bot something like that. I have a laptop talking to a pic micro controller to control my bot. I went for a laptop for my main controller because I have read that desktop motherboards need +5v and +12v supplies at least and are quite power hungry. A laptop has onboard battery and is all ready mobile.
I am currently updating my web site with info on what I have done so far. Check out
formatting link
and have a look at the projects - Relaybot for info on what I'm doing. (Both the robot and the website are a work in progress. I'm updating it most nights at the moment) Rob
Reply to
Rob Last
I am using a VIA M 10000 because of its low power requirements.
However, even still I'm using a 12V 9 amp-hour battery just for the computer/electronics.
I'm using an I/O coprocessor (right now I will probably be using a eZ-80, but I will also use something else).
You might want to look at Phidgets
formatting link
are USB devices that can handle robotic I/O. -- D. Jay Newman
Reply to
D. Jay Newman
Not really. You can buy a USB-based or serial-port based I/O board. I can't name or reccomend one, but I think they're kind of expensive. You can also use the parallel port to drive relays or latches, but this isn't a great idea for controlling complicated sensors.
My recommendation is to use a MCU as an interface. A good one will have lots of I/O lines, and will also be good for timing and PWM operations.
I think most robot builders are software people who don't have lots of hardware skills, nor do they have lots of tools. (I'm in this category.) If this describes you, I reccommend you buy "Building Robot Drive Trains". It explains a lot of the basics for assembling motors, wheels, etc. A few nuggets that I've picked up from it have been invaluable.
I'm sure I/O is much easier on Linux (at least for serial ports), but you need to keep in mind what kind of specialized software you'll want to run. I can't be too specific, but maybe, for instance, you'll want to use stereoscopic vision. This will require drivers for the camera (likely Windows only), image capture software, etc.
Reply to
Mark Haase
If you had a laptop of questionable value but still was running windows 2000 or XP you could use PhidgetServo controllers directly from a USB port to control the steering and speed of a standard hobby RC car. Essentially the laptop replaces the Radio Control. The expensive way to do it is use a tablet pc ;-)
Check this link :
formatting link
There other options for programming. Probably the easiest is Visual Basic.
Regards
Dan Henne
formatting link
Reply to
Dan H.
You can have easy I/O from the computer via the serial and parallel ports. I would think that win98 would be a good cheap OS to use, and it adds a lot of cheap possibilitys not available in linux (cheap webcams for vision, USB wi-fi for control from any computer/brouser on the internet, etc). The below platform should be sufficiently built to carry a computer and a fair sized lead acid battery for power.
formatting link

Reply to
Si Ballenger
: parallel ports. I would think that win98 would be a good cheap : OS to use, and it adds a lot of cheap possibilitys not available : in linux (cheap webcams for vision, USB wi-fi for control from : any computer/brouser on the internet, etc). The below platform
I don't know why you think they aren't, but both of these are available in linux.
Reply to
Christopher X. Candreva
first timer, M$ windows offers familiar surroundings and so its one less thing to learn. Windows may not be perfect but its easier to start with. Once you have found some of the short commings and you know what you want from your OS then you can look around and find what you need. I currently use a serial connection between my bot and a laptop running windows. I use visual basic with mscomm.ocx to control the serial port talking to a pic. I'll have a circuit diagram and a few code examples for the pic and the laptop on my site in a few days.
formatting link

Reply to
Rob Last
Most things are probably available in linux in some way. Unless the builder is a linux guru, he may spend most of his time chasing appropriate drivers and such and figuring out linux instead of working on the robot.
Reply to
Si Ballenger
: Most things are probably available in linux in some way. Unless : the builder is a linux guru, he may spend most of his time : chasing appropriate drivers and such and figuring out linux : instead of working on the robot.
I'm not going to get into an arguement, but this is just not true.
Reply to
Christopher X. Candreva
Linux has all of this.
I like the platform, though. -- D. Jay Newman
formatting link
Reply to
D. Jay Newman
Among the many other advantages of Linux, it also means being able to boot off of a cheap small CF (or USB) "disk". That's not a possibility with Win98, is it?
--kyler
Reply to
Kyler Laird
I'm not sure that is really important when you can get a 60GB hard drive at Staples thru July1 for only $50 (no rebate). Maybe you could post up a site with the easy and simple linux setup for use with robotics. Which version of linux is setup and ready to use with easy access to the computer hardware, USB support, drivers for cheap USB cams, etc.? Which one of the versions at the below site is the *best* for use with robotics? ;-)
formatting link
Reply to
Si Ballenger
Conventional hard drives use a lot of power and are fairly fragile when in use (although when the heads are parked they can take some significant knocks and be unharmed). 2.5inch laptop harddrives use less power, but are still vulnerable to shocks like their larger counterparts.
Compact flash and other solidstate memory is pretty robust and requires less power to run.
Matt
Reply to
Matt Dibb
[trimmed]
I think the point of using CF drives is to reduce drive size and power usage. CF drives will also be a great deal more resistant to being knocked about than mechanical drives.
Linux has substantial advantages over win98 -- chief among these is robustness (which may not be an issue in many hobbyist applications). Linux also can be configured to use a MUCH smaller memory footprint than win98 or its stabler cousins win2000 and XP (despite the fact that the kernel has experienced a bit of bloat in recent years). You can run Linux comfortably on slower hardware using less memory, which translates into reduced size, cost and power requirements.
The major drawback of linux remains device support -- but this is much less of a problem than in years past. Most problems occur with newer devices, where Linux support may be non-existent or immature. On the other hand, almost all manufacturers will generally issue working Win32 drivers by default with the hardware.
Usually, this shouldn't pose much of a problem -- it's trivial to check the web (use your old friend Google) and verify Linux support for a particular device prior to purchase. If you'd like to do a test drive on a device that supports a cdrom, just get the latest version of KNOPPIX.
As far as robotics goes, I generally use gentoo (but do so on a remote machine), which is not really the best choice for newbies. If I actually need an OS on the robot, I'll use a small-embedded DOS clone or uCOS-II.
There are literally zillions of linux distributions suitable for robotics -- what you pick depends on your needs. You can get distributions ranging in size from a single floppy up to multiple CD volumes. The larger distributions are generally easier to use, and probably better suited if you're new.
The only real advantage of Win32 over Linux is probably VB support -- and there are LOT's of VB programmers out there -- other than that, personally I'd go with Linux (again, only if I HAD to have a full-blown OS on the robot).
If you have the hardware, you can always try BOTH -- then just go with what you find to be the most comfortable.
Reply to
The Artist Formerly Known as K
I seem to recall that there is a VB language compatible BASIC thing available for linux that uses GTK etc for forms.
The good thing about VB is, it offers *very* simple access to things like webcams, sockets which means you can knock together some simple image processing etc (e.g. the sort of things that the CMUCam does) very quickly and easily. Not sure how easy it is to use webcams under linux these days with C or some scripting language perhaps. I know sockets and writing to and from the serial/parallel ports is pretty simple as I did a load of that recently, but no "multimedia".
I intend to go with Linux eventually - I need to perfect the software techniques in windows initially though :-(
Matt
Reply to
Matt Dibb
And somewhere around the time of 06/17/2004 08:25, the world stopped and listened as Blueeyedpop contributed the following to humanity:
If you can find them, there are PCI cards that have multiple bit-wise I/O ports, analog inputs, and analog outputs.
formatting link
Reply to
Daniel Rudy
First, CF "disks" use *much* less power than a real HD. This means that you need less battery power.
Second, I went with Gentto
formatting link
because it was easy to configure. -- D. Jay Newman
Reply to
D. Jay Newman

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.