Inspiration
When studying how computers work, it is important to reflect on their strengths and weaknesses. One of the weaknesses of a conventional computer is the fact that they are a discrete representation of the world. This makes the mathematics on continuous domains difficult with conventional computers, things like differentiation or integration are "easier" on a continuous medium. This is the niche that analog computers serve to fill. While not good at general computation they can outperform conventional computers for certain applied problems. The goal of this project was to leverage the ability to solve problems conventional computers may struggle to do via assembling a digitally controlled analog computer.
What it does
The digitally controlled analog computer allows the user to program a signal that is inputted into a specified analog operation (differentiation, integration, etc.) and then it converts it to a digital waveform again that can be plotted on the original computer.
How we built it
We utilized op amps, capacitors, resistors, and a breadboard to create our analog computer and an Arduino to create the digital control and plotter.
Challenges we ran into
We had lots of experiences with bad oscilloscopes and function generators in the labs available. We were able to overcome this by troubleshooting (debugging) circuits on the fly and switching tools.
We also ran into protocol struggles using I2C to communicate with the DAC. We were trying to generate signals with the arduino and had trouble communicating with our DAC. We overcame this by generating PWM signals and also digital signals (square wave). We were also able to generate functions to test our circuits with the function generator.
Library issues
Accomplishments that we're proud of
Having fun!
What we learned
I2C Communication protocols. Applications of Op-Amps for analog computing. Everything to do with arduino (interfacing with arduino, writing to serial, interfacing serial outputs with python, matplot lib). Signal processing applications like sample-rate (Nyquist sampling). Generating analog signals with the digital Arduino w/ the DAC.
What's next for Digitally-Controlled Analog Computer
We will add more operators, functions to generate, and better user interfacing. One thing we wanted to do was have the user-interface be web-hosted on a Raspberry Pi, have the user input signal parameters on the Pi. We also want to generate more analog signals (sin and cos wave, ramp wave, etc). Currently we can only create a square wave.
Built With
- adc
- arduino
- breadboard
- dac
- i2c
- op-amps
- oscilloscope
- uno
Log in or sign up for Devpost to join the conversation.