Update
This commit is contained in:
parent
d5534d92d6
commit
6f56253fcc
4 changed files with 48 additions and 11 deletions
|
@ -85,12 +85,41 @@ Besides others gears/wheels can be used to:
|
|||
|
||||
*NXOR (equality) gate implemented with gears (counterclockwise/clockwise rotation mean 1/0); the bottom gear rotates counterclockwise only if the both input gears rotate in the same direction.*
|
||||
|
||||
### Marbles/Balls
|
||||
## Buttons/Levers/Sliders/Etc.
|
||||
|
||||
Using marbles (and possibly also similar rolling shapes, e.g. cylinders, disks, ...) for computation is **one of the simplest** and most [KISS](kiss.md) methods for mechanical computers and may therefore be considered very worthy of our attention -- the above mentioned marble [rule 110](rule110.md) computer is a possible candidate for **the most KISS Turing complete computer**. But even with a more complicated marble computer it's still much easier to build a "marble maze" than to build a geared machine (even gears themselves aren't that easy to make).
|
||||
Buttons, levers, sliders and similar mechanism can be used in ways similar to gears, the difference being their motion is linear, not circular. A button can represent a bit with its up/down position, a lever can similarly represent a bit by being pointed left/right. As seen below, implementation of basic logic gates can be quite simple, which is an advantage. Disadvantages include for example, similarly to gears, vulnerability to friction -- with many logic gates in a row it will be more difficult to "press" the inputs.
|
||||
|
||||
```
|
||||
___ 0 ___ 0 ___ 0 ___ 0 ___ 0
|
||||
_ | _________ _ | _____ | _ _ | _____ | _
|
||||
| | | | | | | | | | |
|
||||
| '--o---. | | '-------' | | -----.----- |
|
||||
|________ | _| |_____ | _____| |_____ | _____|
|
||||
_|_ --- ---
|
||||
1 0
|
||||
|
||||
1 1 ___ 0 1 ___ 0
|
||||
_---_________ _---_____ | _ _---_____ | _
|
||||
| | .-| | | | | | | | | |
|
||||
| | .o' | | | | __.--'' | | _|________ |
|
||||
|__'-'____ | _| |__''_ | _____| |_____ | _____|
|
||||
--- --- _|_
|
||||
0 0 1
|
||||
NOT AND OR
|
||||
```
|
||||
|
||||
*Possible implementation of logic gates with buttons.*
|
||||
|
||||
### Marbles/Balls/Coins/Etc.
|
||||
|
||||
Using moving marbles (and possibly also similar rolling shapes, e.g. cylinders, disks, ...) for computation is **one of the simplest** and most [KISS](kiss.md) methods for mechanical computers and may therefore be considered very worthy of our attention -- the above mentioned marble [rule 110](rule110.md) computer is a possible candidate for **the most KISS Turing complete computer**. But even with a more complicated marble computer it's still much easier to build a "marble maze" than to build a geared machine (even gears themselves aren't that easy to make).
|
||||
|
||||
**Basic principle** is that of a marble performing computation by going through a maze -- while a single marble can be used to evaluate some simple [logic circuit](logic_circuit.md), usually (see e.g. [Turing Tumble](turing_tumble.md)) the design uses many marbles and performs sequential computation, i.e. there is typically a **bucket** of marbles placed on a high place from which we release one marble which (normally by relying on [gravity](gravity.md)) goes through the maze and performs one computation cycle (switches state, potentially flips a memory bit etc.) and then, at the bottom (end of its path), presses a switch to release the next marble from the top bucket. So the computation is autonomous, it consumes marbles from the top bucket and fills the bottom bucket (with few marbles available an operator may sometimes need to refill the top bucket from the bottom one). The maze is usually an angled board onto which we just place obstacles; multiple layers of boards with holes/tunnels connecting them may be employed to allow more complexity. { You can build it from lego probably. ~drummyfish }
|
||||
|
||||
If it's possible it may be actually simpler to use coins instead of marbles -- as they are flat, building a potentially multi-layered maze (e.g. with shifting elements) can be easier, it may be as simple as cutting the layers out of thick cardboard paper and stacking them one on another.
|
||||
|
||||
Also an alternative to having a top bucket full of marbles going to the bottom bucket is just having one marble and transporting it back up after each cycle -- this can be done very simply e.g. by tilting the maze the other way, so the computation is then powered by someone (or something) repeatedly tilting the board one way and back again; this is e.g. how the simple rule 110 computer works -- there the marble also does another work on its way back (it updates the barriers in the maze for itself and its neighbors for the next round of the downwards trip), so the "CPU cycle" has two phases.
|
||||
|
||||
NOTE: Balls, or potentially other "falling/moving objects", may be used to perform computation also in other ways than we'll describe further on -- some of the alternative approaches are for example:
|
||||
|
||||
- The **[billiard ball computer](billiard_ball_computer.md)** (which also has a great advantage of performing reversible computation).
|
||||
|
@ -138,6 +167,8 @@ Some things that can be done with marbles include:
|
|||
|
||||
*Above a gear is used to select which hole an incoming marble will fall into (each hole may contain e.g. a flip-flop bit shown above). This may potentially be used to e.g. implement random access memory.*
|
||||
|
||||
Here are some **additional tips** for marbles: if you want to allow a marble to be only able to go one way in the maze, you can use a mini ramp (one way it will climb it and fall over but from the other way it just behaves like a wall). You can also utilize helper marbles that can e.g. temporarily lock a moving part (obstacle) in place when computation is in progress (so that the falling marbles don't move the obstacles by bumping into them), the helper marble simply falls into some small hole where it will block horizontal movement of the part that shouldn't move, and later it can be released from this hole (this is super easy with the "changing tilt" approach mentioned above, the blocking marble simply goes up and down while in one position it's blocking, in the other it's not).
|
||||
|
||||
### Fluids
|
||||
|
||||
Whether the use of fluids/gases (water, air, steam, maybe even sand, ...) is still considered mechanical computing may be debatable, but let's take a look at it anyway.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue