Ultrasonic Array

14,215

64

72

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.

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.

Share

    Recommendations

    • Optics Contest

      Optics Contest
    • Plastics Contest

      Plastics Contest
    • Make it Glow Contest 2018

      Make it Glow Contest 2018

    72 Discussions

    0
    None
    ayon1748

    5 months ago

    Hi Asier!

    Does this simulation software have the function of adding a reflective surface?

    Thank you very much!

    1 reply
    0
    None
    Direct From The Labayon1748

    Reply 7 weeks ago

    A previous version had. Adding a flat reflective surface is just like mirroring the transducers on top.

    0
    None
    EuleT

    Question 3 months ago

    Dear Asier,
    Hi,
    Firstly,thank you for sharing this great project.
    I encountered a problem in the last step,when I pressed F2 to send simulation to driver board,nothing happened .But there existed a sound in a very short time.The previous steps had been done as the instructions, by the way.
    Could you please tell me where is probably wrong?
    Thanks a lot^ ^

    6 more answers
    0
    None
    Direct From The LabEuleT

    Reply 3 months ago

    What happens if you select all the transducers and switch them off (press s) and on (press w) you should hear a noise when they are switched on. Also if you can check the current consumption you should see it changing. Best.

    0
    None
    EuleTDirect From The Lab

    Reply 3 months ago

    thanks for your kind reply^ ^
    I find what goes wrong, when I change the input voltage, the signal(only several mV) is not changing with it. I have checked the DC barrel, and it’s not broken .Is the PCB board’s wire broken? But I can do the transducer assignment.
    Could you please tell me where is possible lay wrong?
    Thanks again.

    0
    None
    Direct From The LabEuleT

    Reply 3 months ago

    Does this happen for all the channels? Sometimes when the mosfets are not soldered correctly they are not taking DC from the barrel and their output is just from the arduino (5V).

    0
    None
    EuleTDirect From The Lab

    Reply 3 months ago

    Just several channels have about 5V ,and the rest ones only have about several mV , super wired...I guess I have used the wrong tc4427 (AEOA),and I am preparing to resemble a new one.

    0
    None
    Direct From The LabEuleT

    Reply 3 months ago

    TC4427a or MIC4127, be sure that you have orientated them correctly (paying attention to the dot). Otherwise check the legs with the multimeter if the vcc of the mosfet is connected to the vcc of the barrel. GND to GND, that you receive a 5V input signal and that the output is the same but with the voltage of the barrel.

    0
    None
    EuleTDirect From The Lab

    Reply 3 months ago

    Thanks a lot for the tips, I am going to resemble a new one right away ^ ^

    0
    None
    ChaiM4

    Question 3 months ago

    Hi Asier,

    May i know how do you upload an OBJ file? When i pressed import, i am unable to choose the file i want as there is no file selection.

    Thanks!

    1 more answer
    0
    None
    Direct From The LabChaiM4

    Reply 3 months ago

    Copy and paste the content in the textbox. The obj has to have only the faces of the transducers as single polygons.

    0
    None
    sscolli1

    Question 4 months ago

    Hi Asier! Thank you for sharing your work! I have some questions concerning the 3D Acoustic SIM part. What does each element produced by the MatlabField option under Utils correspond to? Additionally, how would I use that? (I am interested in creating a plot of the sound field using data provided by the software.)

    1 more answer
    0
    None
    Direct From The Labsscolli1

    Answer 4 months ago

    I usually change that part quite a lot. You can check gui/AddTransducerForm.java the function void exportTransducersMatlab() to see what is going on.If you uncomment the part in the beginning it will generate a nice function with one line per Transducer. Then you need the PistonModel.m which is commented at the end of that function.

    0
    None
    Taschenbuch

    Question 5 months ago on Introduction

    Hey Asier

    Thank a lot for publishing your great work, its a really cool project!
    We are a small group of students in Switzerland and built both variants of standing-wave Levitaters.

    Now we are struggeling a bit with a software issue.
    When we try to do the semi-automatic pin assigment, it will fill out all of the parameters correctly except the pin one. How can we fix this? ...In the meantime we did the assigment manualy, so all the other parameters are missing, does this weaken the strength of the field?

    We also don't know how to upload the animation to our Arduino. We have adjused all settings, but we dont know were the upload button is.

    Some parts of your programm isn't that easy to understand, do you have a manual or something else which could generally help us?

    Thanks a lot!!

    1 more answer
    0
    None
    Direct From The LabTaschenbuch

    Answer 5 months ago

    Hi,

    Can you check that when everything is one (just by connecting the driver board) pin one is emitting?

    Doing it manually is fine, in fact phase correction is not implemented yet. Just check that the polarities and the assignment are right (as in the video).

    If you click play, the animation will be played because the frames are sent one by one, this is usually enough for most applications. You can also double-click the animation and all the frames will be uploaded (up to 32), then in the Devs tab you can send the exact amount of periods that you want to play each frame.

    For the moment I just released the attached video. If one day I get some time, I will improve it a little bit.

    Best,

    Asier.

    0
    None
    IceTEA19

    Question 5 months ago

    Hi Asier,

    do you have the STL file for the 8x8-flat-array? There is only one for the spherical cap.
    Thank you!

    2 more answers
    1
    None
    ShubhamJ12IceTEA19

    Answer 5 months ago

    Here is my solution...Use readily available "Generic PCB board" and mount transducers on that. Also you can use 3D printer to make stand(Optional). You don't have to do laser cutting.

    Ultraino.jpgIMG_20180618_104301.jpg
    1
    None
    Direct From The LabIceTEA19

    Answer 5 months ago

    The flat 8x8 is for laser-cutting there is a ai file around. If you want you can pierce the transducers in some fine&rigid cardboard. Best.

    0
    None
    MarceloM162

    Question 5 months ago on Step 7

    Hi Asier.

    A question regarding the implementation with the Arduino: if I have the Arduino Nano, how could I manage to manipulate the 64 transducers? In theory I need 64 pins. Do you have an instructable that can help me?

    1 more answer
    0
    None
    Direct From The LabMarceloM162

    Answer 5 months ago

    Nano will give 16 channels at most, in the github there is code for the nano.

    You need the MEGA to control 64 channels.