Ultrasonic Array

22,345

80

101

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

Share

Recommendations

  • Indoor Lighting Contest

    Indoor Lighting Contest
  • Metal Contest

    Metal Contest
  • Make It Fly Challenge

    Make It Fly Challenge

101 Discussions

0
None
Juanes1002019

Question 10 days ago

Best regard
Please I need help to load the code from the Ultraino to the arduino mega, I would like you to help me with this problem through the Teamviewer software to control my PC and explain step by step.
I appreciate your help.

1 answer
0
None
UpnaLabJuanes1002019

Answer 8 hours ago

Juanes there are several tutorials online on how to upload code to the MEGA, do not forget to make the changes in the software that are specified in the readme file.

0
None
Juanes1002019

Question 17 days ago

Cordial saludo
Por favor Necesito ayuda para cargar el código del Ultraino al arduino mega, me gustaría que me ayudaran con este problema por medio del software Teamviewer para que controlen mi PC y me expliquen paso a paso.

Agradezco su ayuda.

0
None
deplasticoverde

Question 3 months ago

Hi! the link for the haptic feedback array is broken :( could you upload a new link? Thanks a lot.

1 answer
0
None
JamesUniStA

Question 4 months ago on Step 4

EDIT: Have got the whole array working! Did the manual pin assignment. Will keep the question below for anyone who might have a similar question.

Hi, I have everything set up now, but when I click "check" for the pin assignment, nothing happens. The software hangs, and I cannot select anything else. There are no error messages or anything, it just gets stuck. Any ideas?

Alternatively, how do I do manual assignments? I have done it by on the "Trans" tab, assigning a "pin" number to each, and they all seem to correctly correspond to the desired transducers. Is that all I need to do?

2 answers
0
None
UpnaLabJamesUniStA

Answer 4 months ago

Glad that it works now. Were you using Mac? I need to polish and improve the automatic pin assignment since it seems tricky for most users.

0
None
JamesUniStA

Question 4 months ago on Step 3

In part 3 of the Create an array section, am I correct in saying that the transducers (and the 16 way molex connectors) go in any particular order for the flat array? Or is there a set way of doing it? The video jumps at that step.

Also when checking the pins in part 2, when checking with an oscilloscope, I have some pins which have 0v or similar to on your video, and those I have fixed by re soldering the mosfets.

Two or three however have a constant non zero voltage, so that on the oscilloscope they are constant at the "peak" of the square waves that the correctly soldered pins have. They stay at this higher level, rather than going back down to zero.

I hope that made sense! Any idea what could be causing that? I have tried resoldering these mosfets, but no luck so far

Finally, stupid question, but how do you run the xml file for the simulation of the flat array?

1 answer
0
None
UpnaLabJamesUniStA

Answer 4 months ago

- A constant high-level could be because some pins are shortcut or not properly soldered, check if the mosfets get too hot.

- asign the transducers from left to right and top to bottom. Or any reasonable order, that will facilitate the pin assignment later. You may not even need the automatic tool.

- Check the video on how to load a simulation file.

Best.

0
None
cliffchen16.

Question 4 months ago

Hi Asier,
In the step I am going to assign the transducers. The software have totally no response when every time I clicked "check" button. Sometimes the software just shut down, sometimes the software has no response like crash but I still can close it through IDE. Like three weeks ago I was able to start assign the transducers but same problem came out during my process. Normally I could assign about 20 transducers then the software shut down or keep showing the amplitude was "???" on rest of transducers. These two weeks, they were totally crashed. May I know do you have any idea about any adjustment I can do? Thanks a lot.

1 answer
0
None
UpnaLabcliffchen16.

Answer 4 months ago

What SO are you using? how is the crash: exceptions, logs,...?

0
None
BobXu

Question 5 months ago

Hi Mr. Asier, do you have .brd files or Gerber files for the PCB board, thanks a lot

3 answers
0
None
BobXuUpnaLab

Reply 4 months ago

Thank you so much, I've downloaded it but there's still some problems. I have EAGLE but I couldn't open the files in the zip file, so how could I open them to see the PCB board visually.
Sincerely,
Bob

0
None
UpnaLabBobXu

Reply 4 months ago

They are the gerber files, you can use a gerber file or send them for manufacturing. Best.

0
None
BobXu

Question 4 months ago

Hello, Mr. Asier, how could I open the zip files for the PCB board, I have EAGLE but it's not working, and when I uploaded those files to the PCB board shop they told me the files are not available, so what I need to do now. Thanks a lot.
Sincerely,
Bob

0
None
cliffchen16.

Question 5 months ago

Hi Asier, Thanks for the amazing work. We are trying to repeat the 8*8 array. While we were going to assign the pins. We cannot detect any signal in transducers assignment step with the phase detector. I made two phase detectors both not worked. However both oscilloscope and our hear can detect signal. Would you have any idea what the problem might be?

2 answers
0
None
UpnaLabcliffchen16.

Answer 5 months ago

You can try to assign the pins manually (in the flat array is simple, just select them in the order of the channels) and test if you can switch on/off individual transducers. Perhaps some connections between the phase detector and the board are missing? Is the phase detector sending something (you can check the RX,TX leds).

0
None
cchen31UpnaLab

Reply 5 months ago

Yes I finally found out I missed one connection. Now I can assign the pins, but just part of them. It actually cause the software dead frequently and also there a lot of faliure transducer while I was trying to assign pins. Moreover, I got different results in different trial. Does it mean I should check my driver board soldering work and cable connection?