Ultrasonic Array
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
STEP 6: Haptic Feedback
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
mattiaalessandro_ragolia 7 months ago
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
UpnaLab 6 months ago
dbwjdrh0303 8 months ago
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!
doobeedoodo 10 months ago
The link provided above doesn't exist anymore.
banda.bartlomiej1 2 years ago
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
huilongliu921226 2 years ago
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!
Geehem 2 years ago
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 !
UpnaLab 2 years ago
maxwang0604 2 years ago
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.
dwg2385 2 years ago
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.
UpnaLab 2 years ago
dwg2385 2 years ago
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.
UpnaLab 2 years ago
dwg2385 2 years ago
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??
UpnaLab 2 years ago
https://github.com/asiermarzo/Ultraino/releases/tag/v2.5.0
rogi11 2 years ago
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.
patrickZ81 2 years ago
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?
UpnaLab 2 years ago
patrickZ81 2 years ago
I noticed the answer part is blank. Can you confirm my concerns? Thanks a lot
UpnaLab 2 years ago