It's Alive! Linux PC Robot + Arduino is Alive!
Last year I started a redesign of the Linux PC robot to eliminate the PS/2 mouse encoder system. Between work and family, it has been difficult to get the time to get it done.
Here's the problem: The PS/2 mouse system had become a legacy strategy. You would be hard pressed to find one of these mice today. Because of this, it no longer makes sense to use it... easier said than done, what do you replace it with? There are, of course, lots of possibilities, but none quite what the LPCR is all about. "Real" shaft encoders are expensive and offer more resolution that is actually needed. The mouse also offered the interface electronics as well.
The objective of the LPRC (Linux PC Robot) is that it should be easy to program, it should use common interfaces, and it should require minimum hardware development and investment. The current crop of PIC systems available seem too complicated and the development tools for them are a bit arcane for even experienced engineers. The rise of the Arduino system presented the perfect opportunity. The Arduino is very easy to program and it is designed for beginners. It is unlikely that it creates too much of a barrier to entry. In fact, its a pretty damn easy controller. It also has a large support network and distribution chain. The Arduino is becoming a common and supported interface of its own.
When the LPCR was first developed, the "control" was all done in the PC itself using an I/O card, a PS/2 mouse, and Linux on an 800 Mhz 32 bit processor. Today it sports a dual core 1.6Ghz 64 bit dual core Intel Atom processor. This allows the robot to do some extra processing. With the Arduino, the responsibilities have been split in two. The Arduino now manages all the hardware leaving even more main CPU time to what the robot is intended to do. The Arduino turns on and off motor power, it produces the PWM for the motors, and with the help of some circuitry, drives the HEXFET motor drivers. In fact, besides power, the only thing Linux uses for robot control is a USB port to talk to the Arduino.
Moving forward, the LPCR is now essentially two developments: the Arduino based mobility platform and the higher level LPCR. This makes the system a bit more flexible. If you want to make a very simple robot, an Arduino and the "Dual Motor Interface Circuit" will probably suffice. If you want more, use a Linux box to add capability. The Arduino has what Linux lacks: easy access to I/O and a single deterministic task. The Linux system has what the Arduino lacks: powerful CPU, networking, video, audio, storage, user interface and all the open source code you can think of. It is a great merging of two open source platforms.