I have build this robot in 1994 but I think it is worth to mention it because it is not as dumb as his age may suggest.
The robot have two working modes: learning and executing.
In learn mode you teach the robot a sequence of moves (Forward, Backward, Left, Right, Stop) like you use a remote control for playing with a RC car. The robot acknowledge each command by speaking the command name, memorize the type of the command and the time to execute each command.
In execute mode the robot will replay the learned sequence.
These days many of the techniques used are long time deprecated but this short paragraph may explain something: altough I had some experience with parallel and unconventional processor architectures and parallel processing (multiprocessor systems and networks), A.I. related things like neural networks and genetic programming, in 1994 in Romania I only had VERY limited Internet acces at a University using a text only terminal - it was the years when search has been done using gopher. Basically, I had almost no direct informations/documents/experience about robotics.
The speech was created using a 1-bit digitized table of phonemes (really I do not remember where I have taken those, some ZX Spectrum game/application maybe) and plays them, bit by bit, to form the needed words.
Motor control was made with a bipolar transistor based H-bridge (did not known the term then, I have designed and made one) but due to low voltage of the power supply and low efficiency motors I had to find another solution. I have switched to differential power supply for motors and relay control (3V for each motor, no loss).
The keyboard was made from a piece of circuit board (no buttons available).
The vehicle base, wheel and motors are from a cheap toy made in Russia or China - a month ago I have seen a documentary on Discovery Science and found that the toy had the form of the first roving remote-controlled robot to land on the Moon, Lunokhod 1.
I really like to power it some day but I have doubts that it still works - maybe a cold winter will give me time to revive it for a video session :).
The CPU and interface board is made of:
- Z80 CPU, 4MHz frequency;
- Z80 PIO, dual 8 bit I/O port;
- 1K of RAM;
- 2K of ROM (I bet it have some free space).
It have a very small computing power compared to the actual microcontrollers.
Here are some pictures of a spare CPU and interface board:
And the mechanical part and motors:
To clarify some questions about the PCB: I have drawn the schematic in Orcad and developed the PCB with it. The actual drawing was made with a red ink that was etching resistant (I do not know the ink's name, type or original purpose) using something like a caligraphic pen head. The etching was done with FeCl3 (I am still using FeCl3 but I draw with permanent markers - still planning to use the press'n'peel foil that I've got a year ago...).
Regarding the software, I have not found any copy of the source code in my old data backups - maybe I will write an Arduino sketch to read that ROM.