Project:Ball Computer: Difference between revisions
m (→Logic Gates) |
|||
Line 21: | Line 21: | ||
== Logic Gates == | == Logic Gates == | ||
The core of the machine, AND OR and XOR gates should allow the creation of an adder. | The core of the machine, AND OR and XOR gates should allow the creation of an adder. | ||
* Could treat ball bearings like a fluid ([http://www.engin.swarthmore.edu/e90/2008/reports/David%20Bober.pdf example project by David Bober]) | |||
* Could use magnetised balls for 1 and unmagnetised balls for 0 with some sort of clock mechanism | |||
== Encoding == | == Encoding == |
Revision as of 07:57, 20 April 2011
Logic will get you from A to B. Imagination will take you everywhere. -- Einstein
Part 1: Introduction
Or how Flux's imagination got the better of him..
Long ago, when I was young, I received a copy of The Way Things Work. It's an awesome book and I spent many happy hours studying it. The two things that fascinated me most were nuclear power and electronic adders. I wanted to make my own water-based adder (I didn't have any uranium). I didn't really know where to begin and it stayed firmly in the realm of my imagination.
Fast-forward twenty years and I've just joined the Space. Somewhere buried in my subconscious the idea is dusted off and *bam* it's back (2011-04-12). Water-based logic gates, memory, coloured water displays (think of the mixing)... this is what the MakerBot was made for! How many transistors did the Intel 4004 have? Only 2,300...
Today (2011-04-13) I mentioned this to Tom (Reading hacker extraordinaire) over tea. He loved it too and we started to think it through. Stay tuned for Part 2 where we get a teeny bit practical.
Part 2: Where to begin?
Or how Hoxton Lake will have have to wait
A bit more reflection suggested water might not be the best place to start (Artag suggested caution). Ball bearings are easier to deal with a less messy. Some early areas to consider include:
- Logic gates
- Encoding
- Memory
Logic Gates
The core of the machine, AND OR and XOR gates should allow the creation of an adder.
- Could treat ball bearings like a fluid (example project by David Bober)
- Could use magnetised balls for 1 and unmagnetised balls for 0 with some sort of clock mechanism
Encoding
Do we use pure decimal or coded decimal or something else? BCD has the advantage it's easy to convert for display, but is a bit more complex to process arithmetically.
Memory
Initial simple approach is to have a plastic grid with a ball indicating 1 and a void 0. If we use 3mm ball bearings then a 256 bit memory would be a sane size (around 10cm square). Need to work out how to read and write to this.
More to come...