Let's Make Robots!

cr1c1

 
Learn then repeat a sequence of moves. Also it speaks.

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.

System diagram:

Here are some pictures of a spare CPU and interface board:

And the mechanical part and motors:

Update 25.12.2010

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.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Love the wheels...  Reminds me of some of the Mars explorers.

You said the Z80 would not be as good as some of the MCUs (micro-controllers), but I am not so sure about that. Because of the differences (such as all the external addressing, you could control literally thousands of ports, servos, motors, etc...  if you decided to hook them up that way.  In this way, I would say the Z80 is many many times better than an mcu. It will also run a lot more sophisticated programs.

Yes, it is a little slower, but the power of its instruction set and hardware more than makes up for that.

That's my opinion, anyway.

         Dan

WOW. that robot is as old as me!

Very nice! I did some Z80 way back when. I had a TRS-80 at home and was developing CP/M applications at work. I haven't accessed those brain cells in a while - ouch! A couple of years later, IBM released that 8088 computer and I haven't messed much with the z80 since. Anyway, very impressive!

Thank you all for your appreciation! It means a lot to me, considering your achievements in this field!

I will try to revive cr1c1, delaying my next robotic project :)

Wowawiewa ! You have to get this thing up and running again! This is next level awesome! Respect for getting it to work with such limited resources.

I always wondered about using a Z80 for a robot brain back then.  It is so cool to actually see one that did!  Love it! ;-)

Respect cr0c0 ;)

Just want to chime in with the others to say that it's great to see a classic Z80 project.  It looks like this bot was quite the accomplishment in any circumstance but even more so considering your challenges of limited resources in 1994 Romania!  It would be wonderful if you are able to get cr1c1 running again.  Please consider posting more details about the build, source code, etc.

Nice to see the Z80 in this robotic setting .......

Ah yes the amazing Z80 instruction code set  (an instruction for all occasions - at the time it was way ahead of its rivals).........

I learnt my early machine code-ing on the Z80 Nascom 1 kit and Sinclair ZX80, ZX81 kits and Spectrum ( i too remember the speech synth)

that is so cool! looks like a vintage robot!