Motherboard/CPU As Microcontroller?

Hello.

I was wondering if it's possible to use an old motherboard/cpu as a microcontroller in a robot? It would be acting as an electronic speed controller. I realize it would be far more power hungry than the Arduino or other prototyping platform. I plan on using the Arduino because I've used it before and I really like it, but I was just curious if it was at all possible to use an old mobo/cpu to perform the same function? Is there some sort of PCI card or something that one could install?

Thank You.

Sure, could me made to work.

CPU is not a uC tho - CPUs generally need external RAM and PROM for program storage.

If have a Mobo, can install an ISA or PCI experimenters board, add in the needed address/data recognition hardware, and then build your electronics up there.

Or maybe control things using signals from the parallel port.

Thank you, CrossRoads. I know it was somewhat of a ridiculous question, but I'm somewhat new to all of this right now. I used the Arduino only once to control some LEDs and that was, well, fun to say the least. I had no clue what I was doing but I got it done - eventually.

Thanks again.

without getting into cards and using the system bus (which may be a bit trickier with pci) you can get 8 basic 5 volt I/O's out of the printer port, and maybe another 4 out of each serial port

Yeah... The big problem is I/0. You generally need an operating system, and Windows (and I think Linux too) prevents user mode applications from directly accessing the hardware. You need to use a kernel mode driver, and driver development is a specialty area that's normally done by experts.

The drivers for printer and serial ports are included with Windows, as well as USB drivers for some standard hardware like USB keyboards & USB soundcards. But, this probably doesn't give you enough "direct" I/O for a robot.

There are also data acquisition & control PCI cards, stepper motor control cards, and GBIP controllers/devices that you can use. These come with drivers and possibly with a software development kit, or they may be controlled with LabVIEW. But, this stuff is not cheap!

If you make your application standalone you can boot to it directly (from the BIOS flash or a bootable floppy). It would mean programming the peripherals yourself for anything you wanted to use, and that isn't a nice environment to develop in, but it's all doable.

But if a microcontroller is what you need, something like an Arduino will be dramatically easier to get working.

DOS with qbasic can be used to output bytes on the parallel port.

You generally need an operating system, and Windows (and I think Linux too) prevents user mode applications from directly accessing the hardware. You need to use a kernel mode driver

Not really… Accessing the Parallel Port

It's a lot easier with DOS. Windoze up to W98 allows direct PP access too. I have seen WXP PP drivers as well.

Last time I did that for a job I am pretty sure that you can control 12 TTL inputs on a standard port using control lines as well as data.

A number of sound cards also have joystick/midi ports that have 4 8-bit (some have 10-bit) ADC and 4 button control.

Just remember to use opto-isolators for PC safety and in one case I was able to run 12V to sensors that way.

IMO it's better to use Arduino's on USB to do the interfacing and the PC to do the processing. I wonder how many Arduino's you can run using powered port hubs?

Parallel port control is the dominant method in PC based CNC systems. LinuxCNC (formerly EMC2) can be used to control up to 8 axis industrial type robots. Mesa Electronics has a line of I0 boards that can expand the capabilities of the parallel port by multiplexing signals. So, the lowly “printer port” has a lot of capability. It’s too bad it’s disappearing from PC’s as it’s a relatively simple way to connect a computer to the outside world for real-time control.

On USB equipped computers, would a USB to parallel port work the same for control?
Or do you lose the timely control, with USB getting around to the port eventually?

Too much latency on USB for real-time control. Plus, it's nowhere near as easy to understand and code. There is a USB interface for the Mach 3 software however that gets around this by taking trajectory commands from the software and generating the stepper pulses in hardware.

mromani: DOS with qbasic can be used to output bytes on the parallel port.

+1

you can run MSDOS 6.22 or less on anything (with a pc bios and a x86 compatible cpu) MSDOS7 gets bitchy on 64 bit systems with a pile of ram (though linux has no issues letting you access ports, its just windows that makes it a real pain)

Wow, Blast from the Past. Built a robot with a PC motherboard, about 1989. Some thoughts:

Look for FREEDOS it's pretty good.

Look at my OLD stuff on parallel port: http://terryking.us/parport

Also there are some VERY physically small (look at "MicroATX) "mother" boards out there. Older ones on Ebay are cheap...

Personally I think there's a real place for a MicroATX system doing high-level stuff like video and image recognition and an Arduino for I/O, in a complex robot.

AND then there's this: http://strategic-embedded.com/i-mx-kitmodules/tx28s a Credit-Card sized Linux machine with Ethernet, USB etc for $50??

About qbasic, parport and robots... I remember I once built a 3-motors "hand" with LEGOs that was able to pick an object and move it from here to there. Sort of industrial robot (it was small and looked pretty ridiculous in fact, but still...). For each motor, I had two lines: 1 for start/stop (via a bc337 that triggered a bd-something), 1 for direction (via a relais that inverted + and - lines going to the motor). Each line was connected to an ouput bit of the parport of a 286. The qbasic program was dead simple: it read a text file where each line contained 8 '0' or '1' characters and a time value. The string represented the desired status of each bit. The loop was: read the text line, build a byte from the 8 zeros and ones, put it on the parport, delay(time value). Not precise, but funny :-)

CrossRoads:
On USB equipped computers, would a USB to parallel port work the same for control?
Or do you lose the timely control, with USB getting around to the port eventually?

I’ve read of much fustration of some trying to use a USB parallel convertor to try and perform bit level control that one can perform on the original ‘enchanced’ hardware parallel ports. The blame is usually laid on the USB driver software not really allowing the low level control that one has with the older port.