Ultrasonic Array

27,105

84

144

Introduction: Ultrasonic Array

About: Build your own cutting-edge devices coming directly from UpnaLab. UpnaLab is the future interactive devices lab working with Ultrasonics, electromagnetism, lasers and more.

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 www.acousticlevitator.com

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

All the detailed steps are in the attached video.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Gather the Components

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

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

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.

Arduino Contest 2017

Participated in the
Arduino Contest 2017

1 Person Made This Project!

Recommendations

  • Magnets Challenge

    Magnets Challenge
  • Snow Challenge

    Snow Challenge
  • Wearables Contest

    Wearables Contest

144 Discussions

0
Archie_Shou
Archie_Shou

Question 6 weeks ago

Does anyone know where to get the ultrasonic transducer?

0
jonathan.gamperl
jonathan.gamperl

Answer 4 days ago

On alibaba you can get them for around 25c per transducer.

0
petercool
petercool

Answer 6 weeks ago

Hello, I know how to buy, sorry to ask if you have the PCB project file for manufacturing ? such as the PCB format file?

0
opporush
opporush

4 weeks ago

Hello, I made another board, but it is not working either. I attached a photo of our signal when input 7.5dcV. We want to debug our board. Can you give us circuit diagram you have? We of course have gerber file but don't know how driver board works only with gerber file.
Here is my email. ssjl06@naver.com

20191217_160333.jpg
0
dupaujeanedouard
dupaujeanedouard

2 months ago

Hello Mr. Asier, how can i buy exacly the same PCB board as yours ?

0
petercool
petercool

Reply 6 weeks ago

Hello, have u solved this problem?I also want to get this one if the files of PCB board design is given

0
petercool
petercool

Question 6 weeks ago

Hello Mr. Asier, how can i buy exacly the same PCB board as yours ?could u show your design file for manufacture the driver board?thanks very much

0
Archie_Shou
Archie_Shou

Question 7 weeks ago

Could you post the component list? The link is gone.

0
alexmm24
alexmm24

Question 4 months ago

Hi Asier,

I was able to make and run the 64 array its very impressive. I am trying now to import my own array arrangement. Is the csv format the same when importing the transducers as when exporting?

Using an exported file I was able to determine the first three columns are the transducer positions. Are the next three columns the transducer normal vectors or angles? Are they ordered in x,y,z order?

Also when I try to import more than about 400 transducers I get the following error:
Could not link program: Number of Default Fragment Uniforms exceeds HW limits

Is there anything I can change in the program or the source code to allow me to run more transducers? In the paper:
https://ieeexplore.ieee.org/document/8094247

It says you can chain 15 boards so I should be able to run up to 15*64 = 960 transducers in the program?

Regards,
Alex

0
UpnaLab
UpnaLab

Answer 3 months ago

Some graphics cards can simulate up to 512 transducers in real time. But in general it will cap at 200 or something around there. You can still operate, focus and do the other stuff but not the amplitude simulations.

0
alexmm24
alexmm24

Reply 3 months ago

Hi,

Thank you for the reply. I tried it and it can do everything except show the pressure amplitudes in slices. Is this what you mean by amplitude simulations?

What about importing my own transducer array? What are the first 6 columns? Is it x,y, and z positions of the center of the transducers and the next 3 are the transducer normal direction components (n_x, n_y, n_z)? I tried it in this order and didn't get the right transducer orientations.

Are the 3 orientation columns the Euler angles?

Thank you,
Alex

0
syuanlong1995
syuanlong1995

Reply 2 months ago

Hello, I want to know how to import the array size yourself, such as 10*10 standing wave, is it necessary to build a 3d model?

0
syuanlong1995
syuanlong1995

Question 2 months ago on Introduction

Hello, I want to define the size of the array myself, do the double-point suspension of the standing wave, how should I make the model myself, such as the 16*16, 10*10 opposite standing wave simulation...

0
normal code
normal code

Question 2 months ago

Is the procedure for haptic feedback the same as the program for acoustic levitation? I know that haptic feedback needs to be modulated. I want to complete the tactile feedback, where can the arduino program be found?

Thanks :)

0
UpnaLab
UpnaLab

Reply 2 months ago

what components are you missing?

0
alexmm24
alexmm24

Question 2 months ago

Hi,

For manual pin assignment of multiple boards, I am assuming that the software numbering for the pins in a board increases by 64 compared to the board it connects to.

I.e control board; single board use pin assignment 1-64, pin assignment as first board in chain: 1-64
Board connected to control board: single board use pin assignment 1-64, pin assignment as second board in chain: 65-128
Board connected to second board: single board use pin assignment 1-64, pin assignment as third board in chain: 129-192, etc.

Is this correct?

Thank you,
Alex

0
UpnaLab
UpnaLab

Answer 2 months ago

yes

0
alexmm24
alexmm24

Question 2 months ago

Hi Asier,

I have a question regarding supplying power for multiple boards. Based on the paper power is transferred between the amplifier boards, so I need one power lead to the first board. Could it be safer in terms of current through the side pins to power all amplifier boards trough their barrel ports independently?

What about the Arduino boards should all of them be powered independently?

Thank you,
Alex