Electronic – arduino – Making a Functional Computer out of an Arduino Uno

arduino

Any Arduino enthusiasts out there?

Hey, I've been thinking about this and the more I think about it, the more I think I can actually do this. My idea is basically this: Make a functional computer out of an Arduino Uno microcontroller.

My only goal for this computer is the ability to edit and execute BASIC programs. That's all. I only want it for the programming, as that's just about the only thing I'm interested in right now 🙂

So the way I see it, I'll need three main hardware components:

  1. some form of a display (VGA screen or something)
  2. some way to register keyboard input, and
  3. some way to store data to external memory.

Does anyone know of any way to do this? I know of ways to display to a screen, but I don't know a good API/hardware component to register keyboard input or to store external memory.

I'm going to need a lot of help on this. Can anyone help me out and offer ideas and useful tips and suggestions for good hardware / a good open source library, or two, or three, or ten?

Added:

Blog Making an Arduino Uno Computer for anyone who's interested.

Best Answer

The keyboard can be done simply using a PS/2 keyboard - it's just serial, and there's plenty of tutorials out there for it.

Storing data can be done simply on an SD card - there is a shield out there already to do that.

As for the video - that's considerably harder. If you want the Arduino to generate a PAL video signal for instance then you have your work cut out for you. Yes, it is possible, and someone has created an Arduino "pong" game, but it's very chunky graphics and only black and white.

For VGA you will require some form of interface to do the work for you. Sparkfun used to sell the Picaso video card that could be made to work with the Arduino, but alas that has been discontinued and there are no plans as yet for a replacement.

TBH your best bet would be to use something like a Wyse terminal and communicate with the Arduino completely using serial. Much simpler than messing with video signals and such.