Tractor Beams are mysterious waves that can attract particles towards the source. Here, we will show you how to build an Acoustic Tractor Beam with components that can be bought directly on the Internet for less than 75$.

With this Instructable you will be able to get in your hands a device that it was only seen on SciFi movies such as Star Wars or Star Trek.

If you want more scientific background on Acoustic Tractor Beams, you can check our Open Access research papers:

Do not forget to watch the attached video in this Instructables.

Step 1: Gather the parts and tools

We present a list of the necessary components. I have tried to place links for different countries. However, the same parts can be found all around the world, some useful websites are http://www.findchips.com/ http://www.dx.com/ http://www.miniinthebox.com/http://www.lightinthebox.com/http://www.banggood.com/

The circuit is not complicated. Basically, an Arduino will generate 4 half-square signals at 5Vpp 40kHz with different phases. These signals get amplified to 25Vpp by the Motor Driver and fed into the transducers. A button pad can be used to change the phases so that the particle moves up and down. A battery (7.3V) powers the Arduino and the logic part of the Motor Driver. A DC-DC Converter steps-up the 7.3V to 25V for the Motor Driver.


  • 30x 16mm Transducers MCUSD16P40B12RO (US UK) . Alternatively, you the MSO-A1640H10T but minimum order is 500, they are good so perhaps you can save them for future ultrasonic projects.

Necessary Tools:

  • 3D printer -> you can use an online service
  • Soldering Iron, Tin and Flux.

  • Drill

  • Hot-glue gun

  • Multimeter

  • Cable Peeler

  • Screwdriver and Pliers.

<p>My l298N is still frying when I use it for mire than an hour (in intervals) for testing with 10 volts. Does anyone know how to fix this. I tried connecting an external 5 volt logic supply but to no avail. Maybe can someone recommend a different driver. Also, what specs do I set on my oscilloscope to see if the transceivers are in phase using method 1?</p>
I did all the test with the USB port. I didn't use more than 10 v. Anyhow, I would not recomend It, I did It at my own risk with an old laptop ?
<p>Hi, I need help with my bowl. Do the transceivers have to fit perfectly in the bowl. Is it okay if I got the cheap ones from aliexpress?</p>
I used cheap ones from Aliexpress Android working fine. One of them at each end is a little out of place once but It doesn't seem to be a problem
<p>Hey, can I use an Arduino Mega instead of the Arduino Nano?</p>
With a UNO would be pretty much the same. But MEGA has different pin mappings, so it will be quite complex. Anyhow, you can get Nanos for just 2 pounds so no worth the effort.
<p>Andrea, I have the same problem as you with the transceivers. I'm assuming it is because they might be out of phase</p>
Check the jumpers at both sides in the L298N
<p>Hi, I just finnished the project. This is so far the largest object that I've been able to levitate. With smaller ones it doesn't bounce at all. I managed to hold it floating horizontally, with good stability. Still working with the &quot;upside down&quot; way</p><p>. I'd like to know the basics of the code, since it seems to be written in assembly, I used a DIY oscilloscope like this one: </p><p><a href="https://www.instructables.com/id/Use-Your-Laptop-as-Oscilloscope/" rel="nofollow">https://www.instructables.com/id/Use-Your-Laptop-a...</a></p><p>Thanks Asier, this has been fun. Looking forward to see the improvements you make.</p><p><a href="https://www.instructables.com/id/Use-Your-Laptop-as-Oscilloscope/" rel="nofollow">https://www.instructables.com/id/Use-Your-Laptop-a...</a></p>
Good work Andrea, I have some future projects upcoming such as directional speaker or a simple standing wave levitator that easily levitates liquids and heavy stuff.
<p>I don't know why, but I can't upload the video properly. Here is a link:</p><p>https://www.youtube.com/watch?v=yN8oNPYYBzs</p>
<p>... and I'll be glad to help anyone with his project ;)</p>
<p>hey, my driver board keeps on messing things up. The red one. It only lets through 0.10 volts out of its outputs. WHY is this happening. It is not working anymore because of this.</p>
<p>Hi Asier, thanks for sharing this great coment. I am testing the output<br> volt. and I get about 12 votls at OUT1 and OUT2, but OUT3 &amp; OUT4 <br>gives 0 volts. The regulator is set at 20 Volts. And the reads from A0 <br>to A3 in the Arduino are 2 volts each. Any idea about what this might <br>be? </p><p>Thanks in advance</p>
I think I can see one Jumper missing in the L298N. The jumpers that are the sides of the input signals should be connected (they are the enables), if they are not there that pair of signals will not emit. Apart from that everything seems ok.
<p>You are right! I didn't notice I removed that jumper. Thanks a lot.</p><p>Now both sides are fine. When I place the object it is pushed quite a bit outside the bowl, but each time jumps on a different direction.</p><p>Is it possible to test the polarity of the transducers the same way (with a metal wire the inside of the transducer) once they are placed in the bowl and soldered? I used a DIY oscilloscope that just reaches 8 KHz (it uses the PC sound card) and I can't use that techique</p><p>Regards, </p>
<p>Yeah, poking with a wire could do. All the transducer should have the same polarity since we invert the phase in the Arduino software. Could you double check that A0-&gt;In1, A1-&gt;In2... One way of testing is to connect the bowl point towards a tray with water (leave 2 or 3 cm gap) and check that the deformation that see in the surface looks (D) like http://www.nature.com/articles/ncomms9661/figures/3 if you get only a spot it means that you are getting a focal point instead of a twin trap and that a half of the array may be reserved.</p>
<p>* I meant project ;)</p>
<p>Hi, so I have everything ready and wired up. The transceivers are emitting some kind of sound and square wave signal. For some reason, whenever I try to levitate my foam, it goes flying into different directions. What could the problem be?</p>
If you have a scope and two spare transducers follow the steps in the https://youtu.be/6YV0lou4L4c?t=6m53s video where you check what each transducer is emitting and be sure that same halves are in phase and opposite ones are out of phase . What is the peak-to-peak of the waves that you read?
Hello, would these transducers work? The data sheets are very similar.<br><br>http://vi.raptor.ebaydesc.com/ws/eBayISAPI.dll?ViewItemDescV4&amp;item=131590233040&amp;category=36332&amp;pm=1&amp;ds=0&amp;t=1487787421761
Hard to say without a picture but the specs seem alright.
<p>A few questions...</p><p> - How effective would metal tranducers (like this <a href="http://www.ebay.com/itm/331415944083" rel="nofollow">http://www.ebay.com/itm/331415944083</a>) be compared to plastic ones?</p><p> - How would one scale this up so that it will levitate heavier objects?</p><p>Thank you for making releasing this project!</p>
You are welcome.<br><br>It is hard to say, I have tested several models for power and phase deviation; and even when they look the same, they are quite diverse.<br><br>I have a directional speaker coming and I will publish my comparisson of transducers, but the metal ones from Manroshi are the best I have tested so far.<br><br>Yeah, more transducers and more voltage equals to denser objects. Although it is a little bit strange, the size does not matter, only the density of the object. Although so far the objects cannot be bigger than half of the wavelenght, we are working on surpassing that limit. But if you want to levitate denser objects I recommend to use a standing wave. We are working in a robot that can pick and process samples in mid-air of densities up to 1.2, so it can deal with water and most of the stuff.
Thank you for answering quickly. If you do not mind here is one more question... <br><br>If (343.21 meters per second) / (40 khz) = 8.6 mm then the objects can be no bigger than 4.3 mm. If one were to use a tranducer that produced a lower frequency then how would that affect the project?<br><br>Once again thank you for contributing.<br><br>
<p>To be more specific, by how much will timer1 need to be adjusted for lower frequency, by how much do the delays between OUTPUTS be increased, and by how much do the phases need to be changed. Is there any mathematical method to calculate how the code should be changed? </p>
<p>25kHz transducers are rather pricey and in a tractor beam configuration they are not going to be that useful. But if you want to try a standing wave you may be able to levitate big particles.</p><p>I was preparing an optimized standing wave setup for levitating liquids and other heavy objects.</p><p>If you do not want to move the particle around, this code is much easier to select arbitrary frequencies:</p><p>#include &lt;avr/sleep.h&gt;</p><p>#include &lt;avr/power.h&gt;</p><p>//byte pattern = 0b00000000; //all the ports will output the same signal</p><p>byte pattern = 0b10101010; //consecutive ports will have an opposite signal</p><p>void setup()</p><p>{</p><p> DDRC = 0b11111111; //set pins A0 to A7 as outputs</p><p> PORTC = 0b00000000; //output low signal in all of them</p><p> // initialize timer1 </p><p> noInterrupts(); // disable all interrupts</p><p> TCCR1A = 0;</p><p> TCCR1B = 0;</p><p> TCNT1 = 0;</p><p> OCR1A = 319; // compare match register 16MHz / 319 = changes every 50kHz -&gt; 25kHz half-square wave</p><p> TCCR1B |= (1 &lt;&lt; WGM12); // CTC mode</p><p> TCCR1B |= (1 &lt;&lt; CS10); // 1 prescaler, no prescaling</p><p> TIMSK1 |= (1 &lt;&lt; OCIE1A); // enable timer compare interrupt</p><p> interrupts(); // enable all interrupts</p><p> // disable ADC</p><p> ADCSRA = 0; </p><p> // turn off everything we can</p><p> power_adc_disable ();</p><p> power_spi_disable();</p><p> power_twi_disable();</p><p> power_timer0_disable();</p><p> power_usart0_disable();</p><p> while(true); //avoid entering into the loop</p><p>}</p><p>ISR(TIMER1_COMPA_vect) // timer compare interrupt service routine</p><p>{</p><p> PORTC = pattern; //output portDV into ports A0 to A7</p><p> pattern = ~pattern; //invert all the bits</p><p>}</p><p>void loop(){</p><p>}</p>
<p>Today the transducers arrived! My son and I made this super-useless-thats-why-I-want-it project! Great!</p><p>I used these transducers from the German distributor Reichelt:</p><p><a href="https://www.reichelt.de/Ultraschall-Sensoren/A-16PT/3/index.html?ACTION=3&GROUPID=6682&ARTICLE=145924&OFFSET=16&" rel="nofollow">https://www.reichelt.de/Ultraschall-Sensoren/A-16P...</a></p><p>They are not combo transmitters/receivers. You get a pair of transeiver and receiver. However the transceiver just works. I have to try if the receivers could be misused as transceivers, too.</p><p>BTW. I would suggest to solder all wires in step 16 to the middle-pin of the switch instead of screwing them to the terminal of the inverter. </p>
<p>I ordered these transducers...</p><p><a href="http://www.ebay.com.au/itm/322221621215?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT" rel="nofollow">http://www.ebay.com.au/itm/322221621215?_trksid=p2...</a></p><p>...It appears the transducer shell is just marginally too big to seat properly in your hemisphere design. Could I have the .sldprt file to see if I can fix it? I will try suppressing them approx .5mm more and see if that helps. I will be happy to post the modified file here.</p>
I ordered the same transducers too. But haven't received them yet. Did they work ok for you? Besides fit?
<p>There you go. There are no holes in the base so you will have to drill them manually (it's an inventor file and I'm not very familiar with inventor). The transducers fit well from my printed file.</p>
Thank you!!
<p>Sorry it has taken me so long to reply. I have not received all the items I need to make the tractor beam yet. I have been experiencing issues with the postal service. I do strongly suggest recessing the driver points by .5mm though. I have tested the fitment of the drivers and they seat nicely. If you remind me tomorrow I will upload the edited STL (I am not on the correct computer at the moment).</p>
<p>I'd like to see the edited stl file. My transducers are too big as well. </p>
In step 33 there are some raw files.
<p>If anybody in Melbourne Australia is planning on making this device I have a spare print of the transducer shell (didn't fit the transducers I ordered). The outer finish of the print isn't great but it will work as intended. Message me if you want it and it's yours.</p>
<p>Mad respect for that! Very cool project!</p>
<p> Is there any chance of presenting the circuit in a schematic, rather than a block diagram form?</p>
Hello Mr. Marzo, I built this device for a school project. It is recieving power and I can hear the sound made by each tranducer however I am unable to levitate it. Are there any tips you could give me on how to check the device to ensure it is properly set up? I can send pictures of my device if you need it. Hopefully you are still replying to comments because I need some guidance!
Dear Pedro. Could you check these steps and tell me where it fails?<br>1- When you switch it on all the components have lights (L298N, Arduino, DCDC)<br>2- What number do you see in the DCDC converter<br>3- Can you check with a scope that the arduino is generating 40kHZ signals.<br>4- Can you check with the scope that the L298N is outputing square signals?<br>5- put another transducer in the scope probe and put the transducer face to face. Are you receiving a sinusoidal wave, what is the peak to peak voltage?<br><br>In the video you will see these procedures and the expected results.<br>
<p>I got it to work. It was simply some of the transducers were out of phase. Thank you for the response and your time.</p>
<p>Hi Asier,</p><p>With the 16mm transducers are out of stock, I'm going to try to order the 10mm ones from Alibaba. Since these don't fit nicely in the provided part and my printer doesn't handle overhangs well, I'm designing a new bowl.</p><p>Does it matter how the transducers are arranged? From what I understand from the paper, as long as there are two symmetrical sides and the transducers all point to the focus point, the bowl radius and angular spacing don't matter. Is that correct, or did I miss something?</p><p>Great work! Thanks for posting!</p>
Dear EuclideanKraken, as you said the levitation will work independently of the bowl arrangement. However, the movement (with the buttons) may not work.<br><br>I will try to upload a version of the bowl for the 10mm transducers soon. If possible a version that support both transducers.
<p>Is there anyone from Germany who wants to order the transducers from alibaba and is willing to share? :)</p>
<p>I am from Germany and I would like to, but 250pcs. each are still too many.</p>
Those Alibaba transducers work like a charm, they are more powerful and have less phase deviation. <br><br>500pcs + freight cost + bank fee should be (175+55+15)=245$ <br><br>I am planing to release an Instructable about a directional speaker that use the same transducers. So they may come in handy later.<br><br>Sorry guys, did not know that the shops would ran out of transducers.
<p>What about these ones ? Would they do the job ?</p><p><a href="https://www.aliexpress.com/item//32668187552.html" rel="nofollow">https://www.aliexpress.com/item//32668187552.html</a></p><p>They are realy cheap and you don't have to buy 500pc</p>
<p>They look legit, but it is always very hard to say. They may not be as powerful or the phase devitation could be high. </p>
Thank you for your answer. I ordered these, I'll come back here to give you the result !
<p>This is very cool! Thanks for posting!</p>

About This Instructable




Bio: Researcher at Bristol University interesting in Ultrasound and in general any effects that waves can produce.
More by Asier Marzo:Acoustic Tractor Beam 
Add instructable to: