Modular Analog Computing
CONTINUUM is a fully modular analog computer. Each computational element is on an own board, so that the system is fully scalable. You can begin with a simple configuration and build the system up as the complexity of the calculation increases, virtually without limit.
The modularity makes it also possible to release new computational elements at any time: the range of possibilities can be expanded, and the value of the initial investment is preserved.
This project has been generously sponsored by PCBWay PCBWay.com. A fast, highly qualitative and cost-effective supplier of PCBs of any kind, from the simplest to the most sophisticated. PCBWay offer also a large number of services: layout design, assembly of prototypes and series, and a wide range of mechanical prototyping capabilities.
About analog computing
For an overview of the theory and to download the supporting software, look here .
General features
The modules are bare PCBA boards provided with magnetic pads: this makes it possible to assemble the system on a magnetic whiteboard (or just a metal plate), on which annotations can be written if wished (e.g. the name given to the variables).
The size of the boards is the same - about 60 x 40 mm - with exception of the control module, which is made slightly bigger to ensure the buttons and switches can be accessed easily.
The circuit is realized by interconnecting the boards by means of simple jumper wires. The modules are configurable to provide different functions, jumpers are used for that purpose.
Text is placed besides all connectors to describe each pin. All inputs and outputs are protected against wrong connection.
The modules operate with a power supply of ±12V provided by two adapters and filtered by the control module, or by batteries if preferred (the maximum allowed supply voltage is ±18V).
The range of the variables is ±10V.
A software application written in Python is made available to facilitate setting up the computer.
About of the software application and the underlying theory.
Summer / Inverter / Open loop amp
The summer is able to adds up to four signals. It yields the sum or the sign-inverted sum. It can be therefore used as sign inversion module too.
The inputs which are not used can be left unconnected.
Moreover, the module can be configured as open loop amplifier. This makes it possible to realize inverted functions, e.g. in combination with a multiplier it yields the division of a variable by another.
Integrator
The integrator can be initialized to a specific value set on the dedicated input (0 if the input is left unconnected). The initialization occurs over a time set by the controller, and repeated at the beginning of each cyle when cyclical mode is used.
The operation can be paused and restarted: this makes it possible to freeze the status and observe the value of the variables at any time by means of a voltmeter.
The time constant of the integration is selectable between two values, 10 and 100 msec. Short integration time is particularly useful when the variables are visualized cyclically by means of an oscilloscope.
Constant / Divide by constant (potentiometer)
This module can perform two functions: divide a variable by a constant value, and generate a constant value. The output is available also sign inverted.
Multiplier with subtractor
Multipies two variables by each other. Inputs - X and Y - can be used as single-ended (normal mode) or differential (each input becoming the subtraction of two signals). It includes an additional subtraction function (input Z, 0 by default). In combination with an open loop amplifier, division of a variable by another is achieved.
Controller
It controls the operation of the integrators and of any other module whose operation requires synchronization. The controller features a number of user input means to determine the timing of the operation.
Start and stop buttons.
Pause switch. Pauses the operation freezing the values, and resumes from the same point.
Mode switch. Single run and cyclical mode.
Cycle time knob. Determines the time before the cycle is re-started.
Initialization time knob. Determines the time to initialize the integrators (therefore the pause between cycles).
In cyclical mode, the operation is carried out for the length of time set by the dedicated knob. After the initialization time, the operation continues for the predetermined time, and can be paused at any time - or stopped.
This module can also generate an auxiliary signal, useful to realize interesting functions.
The operation can be modified by reprogramming the device (source code for Arduino IDE is made available).