Ultrasonic Array

54K135357

Intro: Ultrasonic Array

In this project we will show you how to build a phased-array controller and a flat array of 8x8 elements. These systems can be used for acoustic levitation, haptic feedback or directional speakers.

This is quite a complex project so I would recommend a little bit of knowledge on ultrasonics, computer science and electronics.

Do not forget to check the other Instructables for more information

More detailed information in our open paper: http://ieeexplore.ieee.org/document/8094247/

All the detailed steps are in the attached video.

STEP 1: Gather the Components

The source code is available here: https://github.com/asiermarzo/Ultraino

You can get precompiled versions of the simulator V1.1 for java 8 and v2 for java 11.

You will also find the STL files for the 3D printed arrays and the AI files for the laser-cut arrays.

The PCB files for manufacturing are also there here I recommend to use PCB Shopper to look for a cheap manufacturer. The dimensions of the board are 62mm by 115mm and it has 4 layers. It would be a good idea to order an stencil if you do not want to solder the components by hand.

The BOM can be found here.

STEP 2: Assemble the Driver Board

You can solder by hand, or use solder paste and a reflow oven. I am not the most proficient SMD solderer, there are lots of goods tutorials on the Internet.

The code for the Arduino Mega is here

If the output signal on the ports is not 40kHz you can try to use IDE 1.6.0 or the Optimization -O3 flag.

STEP 3: Assembling a 8x8 Flat Array

You can find how to mark the polarity of the transducer in the previous Instructable In that Instructables there is also a guide to buy transducers for a reasonable price.

The components can be found here

  • You can also use the great integrated PCB from Thomas Grooten.

The last image shows the pin numbers of each pin, luckily you will not need to do the pin assignment manually but using the semi-automatic method shown in the video.

STEP 4: Single-sided Levitation

I used a 2mm styrofoam particle and a metallic grid to place it in the trap.

The base of the array is laser-cut: link to github

The simulation file is here:

STEP 5: Standing-wave Levitation

With this array the trapping strength is greater so it is possible to levitate liquids.

The base of the array is laser cut link

and the simulation file is here

STEP 6: Haptic Feedback

When the focal point is modulated at 200Hz it is noticeable at our skin.

The base of the array is 3d-printed: link
and the simulation file is here

STEP 7: Directional Speaker

I used this audio amplifier TDA7492P but anything that you can find will probably do the job.

* This is just a quick way of getting a directional speaker, the sound quality is not great and it is not very powerful. I am working on a dedicated directional speaker that will be released soon.

273 Comments

Dear Team,

I'm a postDoc from Italy and I'm working on this interesting project as a starting point for my research.
I have some problem in creating a 200 Hz modulated signal for haptics. I'm using the ArduinoMEGA.java protocol with a planar 10x10 array, and I wonder whether there is a problem with sendDuration or sendAnimation (and related ArduinoMEGA firmware). For example, if I choose durations = [100, 100, 0], I expect to obtain 200 Hz modulation, but I obtain like a distortion of the signal that is not identifiable. Did you find (and solved) similar problems as well?

Thank you. Mattia
I imagine that for the 10x10 you use 2 Ultraino boards chainned together, right?
Dear Team,

I have some problem with connecting driverboard and AcousticField3D simulation.
During Pin Assignment, the message Amplitude: "not reached!!"and Phase: "timeout!!" appeared and failed on assignment. Do you know why this problem happened?
I think PCB works properly (checked all the pins with oscilloscope: square-wave,18Vpp,40kHz)

Thank you for sharing this fantastic work. Best wishes!
Is anyone can share "The base of the array is laser-cut" for 8-by-8 regarding on step 4?
The link provided above doesn't exist anymore.
Hello,

I am trying to build this device without PCB, I am trying to use only wires, solderless breadboard and THT type components.
My question is about the schematic showing the connection between the arduino mega board and the electronic components.
This diagram:: https://ieeexplore.ieee.org/mediastore_new/IEEE/co...
will be enough to build it?
I am concerned about my components, they are currently very expensive for me and I would like to avoid damaging them.
Thank you in advance for your answer.

Regards
Bartłomiej
Hello

This is really a fantasy project !
I'm trying to make ultrasonic tool, but I have meet some trouble.
We failed to assign the transducers (pins) automatically and correctly with the help of phase detector. We followed the guild of the video to scan and check the transducers, but the transducers were assigned in wrong coordinate (order) !. For example, after the assignments, we turned on the first one transducer in the simulation software but only another one showed signal.
We have not solved this problem yet. Have you ever meet this kind problem? And could you please help us for that?

Thanks for your help. Best wishes!
Dear team,

In step 2, board assembly, I can not figure out which capacitors go where. Where should I place the 4.7, and where should I place the 0.1 ?

Thank you for sharing all this !
Intertwine them. It is not that important, they can go anywere, indeed using all 0.1 seems to work the same. In the video it is shown an example of where to put the 0.1 and then the others.
Dear team.
Hi, I'm trying to make ultrasonic tool.
Is there any reference paper for the simulation software written in Java in the production process.
thank you.
Dear team.
Hi, I'm trying to make ultrasonic tool. but i have some trouble
we finished soldering and connected the power, but the thansducer is not working. I think the power is not going to the PCB board.
The rated voltage of the capacitor we used is 50V, and we know that the actual voltage applied is 15volts. I would like to know the high rated voltage of the capacitor make problem.

thank you.
50V caps is not the problem. At which step of the video the things fail?
we failed at step 3-4(check array). the transducer doesn't make signal.
It worked when using the transducer through the Function generator, but not when the Arduino board gave a signal.
additionally, in step 2-13( check pins) we got sine wave not square form.
could you post pics?
Thank you
we found the problem at the wiring. now it fixed.
but we stuck in cording. the transducer assignment.
it's press down to start. but netbeans turn off at the 'check' stage
error is as follows. we attaching a pic.
and error cord is
C:\Ultraino-2.0\Ultraino-2.0\AcousticFieldSim\nbproject\build-impl.xml:1330: The following error occurred while executing this line:
C:\Ultraino-2.0\Ultraino-2.0\AcousticFieldSim\nbproject\build-impl.xml:936: Java returned: 1

is it path problem or we missed something??
Dear team,
For my senior design project in college my group has been tasked with building an acoustic levitation device. We are building off of a different groups senior design project from last year. The group from last year used your previous instructables as the base for their design. Since this instructables is an improvement off of that design, we are interested in using this as a guide for our project. We are curious what type of transducers you used for this design. Also, was it easy to wire up all of the transducers separately?

Thank you.
Hello

This is a fantasy project at all! But the PCB board manufacture confused the mark of PCB board design. Can you explain that what g1 and g2 meaning for? I guess that g1 is layer 2, and g2 is layer 3. is that correct?
Hi

I noticed the answer part is blank. Can you confirm my concerns? Thanks a lot
I usually send the whole zip to the manufacturer.
More Comments