If you want to experiment with NCO, take a look at the end of the page. There’s some special promotion code form Microchip.
Few weeks ago, thanks to Microchip, I get materials for making some cool experiment called Chladni Plates. This experiment consist in generating patterns from the sand on a plate by stimulating it with resonant frequency. Here’s the result:
How’s that work? To give you some explanation, let’s simplify the experiment a bit. First, let’s limit the dimensions to just one (just simple metal bar instead of plate). If we start to vibrate one end of the bar (left end of the bar in the picture), vibrating point will create the wave that will propagate to the second end. Now there’s second simplification: let’s say that the wave won’t change the amplitude along the way.
When the wave reach the end of the bar, it will be reflected back. That’s not obvious, but it will happen. Each change of wave propagating environment (in our case, from metal bar to air) will result in reflecting the wave.
Now, we’re having two waves that propagates in opposite directions, so each point of the bar will vibrate with two waves. Few moments later, when reflected wave reach another end of the bar, it will reflect once again, and so on.
After few wave reflections, each point of the bar will vibrate with a lot of waves, with the same frequency, but different phase and direction.
If we choose the frequency randomly, each point of the bar will vibrate with a lot of waves, which will have random phase shift between each other. So the bar will vibrate with some random, not interesting way and the vibration will be attenuated.
But if we select the specific frequency, which cause that the 2nd reflected wave will have the same phase as the 1st wave:
This is called “standing wave”. The vibration of the bar will be amplified, and on the bar there will be some points that will not vibrate at all (that points are called “nodes”).
So if we put sand on that bar (is it possible?) the sand will be bounced off from bouncing parts, but it will stay on the steady parts.
Of course in two dimensional case (on a plate) the situation is more complicated. Instead of single steady point (standing wave node), we’ll get the lines. On two dimensional case, the wave will propagate in all directions, so the calculation of correct frequency is more complicated, but general result is the same. The sand will be bounced off the bouncing parts of the plate, and will accumulate on the steady regions.
Python scripts
If you are familiar with python, you can download the python scripts for standing wave animations:
https://github.com/kryzysoft/Chladni_PythonScripts
I run it on python 3.6 and 2.7. You will need “matplotlib” python library (you can install it with ‘pip’). You will also need this: https://ffmpeg.zeranoe.com/builds/ for saving the animation as mp4 file. After unpacking you will also need to add path to ‘bin’ folder to your PATH environment variable (in my case, it was ‘c:\ffmpeg\bin’).
Chladni plates experiment hardware
Here’s the equipment used for the experiment (from the first video):
DM164144 – PIC16F18446 Curiosity Nano Evaluation Board is a board with embedded debugger, programmer and virtual serial port. PIC16F18446 microcontroller have NCO that was used for generation of signal with specified frequency. Firmware for this project is available here: https://github.com/kryzysoft/Chladni_PIC
If you upload that firmware into microcontroller, you can change the frequency using serial port terminal (like Putty):
- press ‘u’ or ‘d’ to increase or decrease the frequency (actual frequency will be shown on serial window)
- press ‘z’, ‘x’, ‘c’, ‘v’, ‘b’, ‘n’ to set the frequency to one of ‘standing wave’ frequencies
- write a number (like 1321) and press Enter, to set the frequency to 1321 Hz (actual NCO frequency will be shown on the serial window)
- press space, to start and stop generation
The NCO configuration is explained in previous article: http://evalspace.com/microchip-nco-numerically-controlled-oscillator/
Microchip promotion code:
If you want to experiment with Numerically Controller Oscillator, Microchip prepared a promotion for evaluation boards with microcontrollers equipped with NCO:
Microchip Direct Coupon Code: NCOpromo
Valid: until Feb 2020
30% off the following:
DM164144 – PIC18F18446 Curiosity Nano
DM182028 – PIC18F47K42 Curiosity Nano