You can do some wild things with sound waves, such as annoy your neighbours or convince other road users to move out of your way. Or, if you get into sonolithography like [Oliver Child] has, you can make some wild patterns with ultrasound.
Sonolithography is a method of patterning materials on to a surface using finely-controlled sound waves. To achieve this, [Oliver] created a circular array of sixteen ultrasonic transducers controlled via shift registers and gate driver ICs, under the command of a Raspberry Pi Pico. He then created an app for controlling the transducer array via an attached computer with a GUI interface. It allows the phase and amplitude of each element of the array to be controlled to create different patterns.
Creating a pattern is then a simple matter of placing the array on a surface, firing it up in a given drive mode, and then atomising some kind of dye or other material to visualize the pattern of the acoustic waves.
It could be a useful tool for studying the interactions of ultrasonic waves, or it could just be a way to make neat patterns in ink and dye if that’s what you’re into. [Oliver] notes the techniques of sonolithography could also have implications in biology or fabrication in future, as well. If you found this interesting, you might like to study up on ultrasonic levitation, too!
Is there a video link to see examples? Did I miss it?
Cool project, but unless I’m missing something I can’t see why the shift registers are necessary. With 2 cpu cores, the PIO modules and more than enough IO pins it feels like you’d have better contol without them. Is there a trick I’m missing?
Puzzled myself. You can write to all of the GPIO at once and update them each clock cycle with the PIO. The shift registers requires you to serialize the data with 16 clock cycles at minimum for full update. It looks like the gate drivers only need 10 uA for control per the data sheet. Would be interested in knowing why myself.
As a wild guess, the rpi PIOs have very limited IO. For a repeating pattern with fixed timing he might prefer having them generated by PIO through the small number of pins that the PIO can control, rather than having them generated with code on the general purpose processor, even though it has single-cycle access to all 29 gpio. Even if technically possible, the software might have seemed clearer the way he did it, and it’s not like the shift registers are the expensive part of the project.
I saw a live demo in Cork last week. Great fun. https://dl.acm.org/doi/10.1145/3623509.3633387