60 lines
2.3 KiB
Plaintext
60 lines
2.3 KiB
Plaintext
# beans computing
|
|
lang=en es->{cómputo frijol}
|
|
non-electronic {digital systems} based on manipulating beans according to simple logical rules.
|
|
|
|
inspired by {the beans computer}, but going at a lower level. most of the times this is related to {paper computing}.
|
|
|
|
the {computadora de papel} is also related as a beans-based, "higher level" computer.
|
|
|
|
# projects
|
|
|
|
{norpet} is a proof-of-concept for ideas we have about beans computing in an 8x8 grid or board.
|
|
=> ./img/foto_norpet_02.png closeup photo of the norpet board completely solved in one of its states: the grid is full of either soy or black beans.
|
|
|
|
# prototypes
|
|
|
|
{bouncing ball logic} and {bouncer-2d prototype} provide some notes from the initial development of {poñg} around 12020.
|
|
=> ./img/secuencia_bounce2d-8x6-0a3.gif a sequence of four frames showing two paper boards with black and soy beans in them: the one in the left contains the processing cells, and the one in the right looks like a screen composed of soy beans except for one, which seems to be moving from the top left corner to the bottom and right.
|
|
|
|
# truth tables
|
|
|
|
we have only two classes of beans: black (1), and non-black (0).
|
|
|
|
these tables correspond to the NOT and NOR logical operations.
|
|
|
|
they show their possible inputs at their left, and their corresponding outputs to the right.
|
|
|
|
=> ./img/foto_beans-computing_truth-tables.png photo of the NOT and NOR truth tables, composed of beans in a greenish surface
|
|
|
|
## NOT
|
|
|
|
NOT: the output is the opposite of the input. (table at the top left)
|
|
|
|
+ <table>
|
|
+ <tr><th>input</th><th>output</th></tr>
|
|
+ <tr><td>0</td><td>1</td></tr>
|
|
+ <tr><td>1</td><td>0</td></tr>
|
|
+ </table>
|
|
& * input: 0, output: 1
|
|
& * input: 1, output: 0
|
|
|
|
## NOR
|
|
|
|
NOR: the output is black only when none of the inputs are black. in any other case, the output is non-black. (table at the center) {nor}
|
|
|
|
+ <table>
|
|
+ <tr><th>inputs</th><th>output</th></tr>
|
|
+ <tr><td>00</td><td>1</td></tr>
|
|
+ <tr><td>01</td><td>0</td></tr>
|
|
+ <tr><td>10</td><td>0</td></tr>
|
|
+ <tr><td>11</td><td>0</td></tr>
|
|
+ </table>
|
|
& * inputs: 00, output: 1
|
|
& * inputs: 01, output: 0
|
|
& * inputs: 10, output: 0
|
|
& * inputs: 11, output: 0
|
|
|
|
if you look closely you'll see that NOT can be defined the same way as NOR.
|
|
|
|
by combining multiple instances of this logic operation, we could build any possible digital behavior.
|