Logic gates! The building blocks of computing as we know it. What if we ditch the electrons?
I want some mechanical logic for an upcoming project, so I did some research…
There are several examples of mechanical logic out there on the internet:
|Keshav Saharia’s Lego Logic||Push-pull, needs a spring return.|
|Randomwraith’s Lego Logic||Push-pull with internal rotating elements, reversible.|
|Mechalogic’s Logic Elements||Push-pull, AND & NOT reversible, OR needs a spring return.|
|Xiaoji Chen’s Linkage Computer||Rotating logic, reversible, some mechanical issues with parallelogram weakness.|
|Spillerrec’s Lego Logic Gates||Push-pull, very compact, needs a spring return.|
He identifies the problem with needing springs, but doesn’t have a fix. Mentions how AND/OR gates can be reversed to become OR/AND gates.
|Zeroumus’s AND Gate||Push-pull, needs a spring return.|
|KNEX XOR Gate||Push-pull, needs a spring return.|
|Carolin Liebl and Lisa Hopf’s NAND Gate||Push-pull, reversible, complex.|
There are many more ideas out there, even water pipe logic, and of course the early mechanical computers Digi-Comp I and Digi-Comp II.
For my project, I have the following requirements;
- Push-pull logic
- Output movement range must equal input movement range
- No springs/elastic bands, and no forces for inputs to overcome
- No gears!
- Easily chain-able, and simple enough to implement a score of them.
This disqualifies most of the designs I found, particularly the ‘no springs’ requirement.
Mechalogic’s AND gate design uses an elastic band, but doesn’t appear to need it, so it serves as a good starting point:
It’s time consuming to tweak parameters in the physical world, so I wrote a small simulation: (click to see in action)
Success! Meets all the requirements, and only needs three parts.
The geometry is important – the ratio will determine the output’s position when only one of the inputs is asserted, according to;
- distance between the inputs (red),
- length of the input links (green),
- length of the output link (teal)
- input displacement
Now, can an OR gate be designed with the same success?
Most OR gates look like this; the output (on the left of this picture) has a flat plate, and either input will push the flat forward. Unfortunately the design needs that elastic band to return the output to zero.
Inspired by some earlier attempts to couple an AND and a backwards OR gate together, I tried flipping the AND gate around; (click to see in action)
Success! Oddly enough, an OR gate is just an AND gate connected up backwards.
Even the linkage lengths are the same!
Best of all, the OR gate is reversible like the AND gate – no springs and no force required.
As the graphs show, output displacement equals input displacement, so these designs should be chainable. Let’s have a look; (click to see in action)
Now I just have to build something complex with them…
All the simulations are viewable here.
The code they’re written with is available on GitHub;