←back to thread

108 points cgeier | 8 comments | | HN request time: 1.236s | source | bottom
1. Ductapemaster ◴[] No.42186703[source]
In my upper-division analog electronics class (the hard one), our lab project throughout the quarter was to build an analog computer that simulated the physics of a bouncing ball. Physical variables of the system were adjustable (gravity constant, coefficient of restitution, etc), and the ball was "released" by pressing a button. The output was viewed on an oscilloscope.

One of the hardest 10 weeks of my life, but also one of the most rewarding. Our team was one of the few that actually got it working in the end. I had to custom-make a gigantic breadboard to hold the entire circuit.

Today I still work in hardware, but mostly with digital circuits. While my analog knowledge has decayed over the last decade, that project and it's success gives me great confidence any time I have to deal with the domain.

If you want to take a look, here's a pretty similar project: https://www.analogmuseum.org/english/examples/bouncing_ball_...

replies(4): >>42186864 #>>42188122 #>>42188230 #>>42189794 #
2. klysm ◴[] No.42186864[source]
Did the mathematical model being used have a differentiable heigh function? I’m imagining it would be the simplest if it didn’t but that could cause problems in the electronics.

Also what components did you have access to, just op amps?

replies(1): >>42187017 #
3. Ductapemaster ◴[] No.42187017[source]
Just op-amps and FETs for the active components. The design from my memory was:

- To get position, 2 integrators were applied to an adjustable voltage representing gravity.

- The FETs were used to set initial states of the integrators.

- A comparator used to detect the table (y=0), flip the velocity and apply a scaling factor for restitution

The math was actually quite simple given its just the standard velocity equations — the challenge was in handling state changes in the electronics.

I looked around a little more and this video is a very close replica of what we built: https://www.youtube.com/watch?v=qt6RVrmvh-o

4. leeter ◴[] No.42188122[source]
> Today I still work in hardware, but mostly with digital circuits. While my analog knowledge has decayed over the last decade, that project and it's success gives me great confidence any time I have to deal with the domain.

Do you think about the analog qualities of your traces when laying things out? If so then the course was well taken.

In my observations I've found that too many digital engineers assume a differential pair will save them without actually fixing the impedance and parasitic issues. Particularly as the timings of things become so much more precise analog is so important. People forget that a digital circuit is just an analog one under the covers.

replies(1): >>42191397 #
5. djcooley ◴[] No.42188230[source]
My version of this was a 10-week discrete RF circuits course in graduate school. We had to build a fully functional GHz transceiver out of small FR4 PCBs (< quarter wavelength) and throw-away leaded BJT transistors. Neither were suitable for GHz circuits, so the course was hard by design. I learned so much and developed an intuition for electromagnetics that I still carry 20 years later.
6. qiqitori ◴[] No.42189794[source]
Hey, I made something like this a couple months ago! (Except it's more like "Tennis for Two", so you also hit the ball in the X direction, and there's another button to hit it back in the other. I didn't have any space or potentiometers left to set the gravity, but it wouldn't be difficult.)

I also learned heaps! (Including after a few weeks when the circuit stopped working properly because one of the relays started to work just a little slower than another one, heh.) If anyone's interested, https://blog.qiqitori.com/2024/08/implementing-tennis-for-tw...

replies(1): >>42191455 #
7. throwup238 ◴[] No.42191397[source]
The way my teacher put it: “High speed digital electronics is just analog with a rise time.”
8. em3rgent0rdr ◴[] No.42191455[source]
Great writeup and thanks for including the CircuitJS simulations.