Introduction: Acoustic Tractor Beam
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.
If you want to build other devices coming directly from the research lab keep in touch:
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 40kHz Transducers The MSO-A1640H10T are the best but minimum order is 500, they are good so perhaps you can save them for future ultrasonic projects. Alternatively, others 16mm 40kHz transducers will serve (emitters and receivers are pretty much the same) for instance the MCUSD16P40B12RO.
1x 300x45x15mm wood piece
1x 3D Printed Bowl
Some Expanded Polystyrene beads to levitate (between 1mm and 4mm diameter)
An acoustically transparent material: A metallic grid, very thin fabric or teabag paper.
- 3D printer -> you can use an online service
Soldering Iron, Tin and Flux.
Screwdriver and Pliers.
Oscilloscope with two probes (Optional) -> you can get one for less than 50£ http://amzn.eu/5ey6ty2
Step 2: 3D Print the Bowl
The transducers will be mounted in this bowl. This shape allows to naturally focus the beam.
We used an Ultimaker Extended 2+ with a 0.4mm nozzle and the Normal settings. No support, only brim. It does not need to have a perfect finish so any regular printer should work.
Step 3: Solder Arduino Headers (upwards If Possible)
Step 4: Program Arduino
Upload the attached program in the Arduino Nano. If you are using a cheap Nano (totally recommendable) you will need to install new drivers, there are usually links in the webpage where you bought it.
Step 5: Charge the Battery
This way when you finish the project it will be at full charge.
Step 6: Cut the Handler
300x45x15mm rectangular piece of wood.
Step 7: Redrill the Bowl
Sometimes the holes are not perfect and are a little bit clogged, re-drill them if it were necessary.
Step 8: Attach the Bowl to the Handler
Drill an initial hole in the handler, attach the central screw and then you will be able to drill the two holes at the sides.
Deattach the bowl, it is more comfortable to attach and test all the components without the bowl. At the end of the Instructables we will reattach it.
Step 9: Screw the DCConverter and the Driver
Close the the drilled holes for the bowl we will place the DC-DC converter at one side and the Driver at the other. Put them and mark with a pen to drill later. Then pass a screw and a nut through the holes of the devices for being able to attach them properly to the wood.
It is very important to leave the OUT side of the Converter closer to the bowl.
Remove the indicated jumper of the Driver and keep it for later.
Step 10: Stick the Arduino
With Velcro tape, double sided tape or just hotglue stick the Arduino below the Driver with the USB port pointing to the right.
Put the jumper between the D10 and D11 pins.
Step 11: Drill Through Holes
Drill two through holes above the Driver.
Drill tree through holes below the Arduino.
We will pass wires through these holes.
Step 12: Solder Wires to the Power Switch
The central pins provides the current to the circuit, the right pins go to the DC barrel and the left ones to the battery connector pins.
Try to use red wires for (+) and black for ground (-) to keep things ordered. Pay attention to where the + and - of the DC barrel go and solder it appropriately.
For the battery connector pins we can use pin headers and a tiny piece of strip-board. Be sure that the wires are not touching each other (use a multimeter), and even put hotglue between them to make them safer.
The power switch provides current to the circuit either from a DC barrel or from the battery.
We can use any DC adaptor between 9V and 12V that can provide at least 2A if you do not want to use a battery.
Step 13: Stick the Battery
With double-sided or Velcro tape. Do not use hot-glue since it could damage the battery. Put it in the same orientation as the image.
Step 14: Connect the DCConverter With the Driver
These wires will pass the step-up voltage (25V usually) from the DCConverter to the Driver.
Step 15: Glue the Power Switch
Step 16: Connect Logic Supply
We will provide 7.4V to the DCConverter IN.
First connect the black ground wire (-) from the central pins of the Switch into the DCConverter IN(-). In the same hole connect the ground for the Arduino.
Then, connect the red (+) wire from the central pin of Switch into the DCConverter IN(+). In the same hole put the VIn of the Arduino, and the logic supply for the converter (pins from where we removed the jumper, very important to connect it into the highlighted pin).
Tining the tips of the wires will facilitate putting several wires in the same hole.
It is also possible to get voltage for the Arduino from the DCConverter. Instead of connecting Converter.IN(+) to Arduino.VIn, we can use DCConverter(5V) to Arduino(V5).
If it is too difficult to put various wires into the sockets of the DCConverter, you can also solder to the pads that are at its sides.
Step 17: Connect Signal Wires
These four wires will transfer the signals from the Arduino into the Driver.
Connect Arduino.(A0,A1,A2,A3) to Driver.(IN1,IN2,IN3,IN4).
Step 18: Button Pad
The button pad is optional, but if you make one you will be able to levitate the particles up and down.
The idea is to have three button pads that when pressed they make contact with ground (the buttons are active low).
Get ground from the Arduino to the common terminal of the buttons. Then, connect each of the buttons to D2(up), D3(down) and D4 (reset position).
Step 19: Set the Voltage to 10V
First Connect the battery (be sure to use the right polarity).
Switch on the device.
Rotate the potentiometer counterclockwise until you see 10V in the display.
In the final device we will use 25V but it is safer for the test equipment to work at 10V. If you use X10 probes then it is alright to use 25V throughout the process.
Step 20: Test the Signals
This step is optional but it is about time to check that everything is working fine.
Get two probes and connect the grounds to a ground of the circuit, temporarily using the button pad ground is one of the easiest options. Remember to put it back when finished.
Before the driver the signals should be 5Vpp and after the driver 10Vpp.
Signals from the same side are in phase while signals from opposite sides should be out of phase.
Step 21: Mark Polarity (Recommended Method)
The easiest way to mark the polarity is to use the Arduino itself. This method does not require an oscilloscope or to poke the transducers inside.
Install the code from this section into the Arduino. Connect one wire to A0 and another wire to GND. While the Arduino is connected to the PC, run the Serial Plotter (Tools->Serial Plotter) and be sure that the speed is set to 115200. When a transducer is connected between A0 and GND the signal will do one of the following things:
Signal goes down or remains at 0. Then, mark the leg connected to GND.
Signal goes up or remains at 1023. Then, Mark the leg connected to A0.
It is important to not touch the transducers leg or the wires while doing that or the values will reset.
If it is still not possible to detect the polarity, poke the inside of the transducer with a thin wire and check if the spike goes up or down (like in the obsolete method). Spike up -> mark A0 leg, spike down -> mark GND.
Step 22: Mark Transducers (Obsolete Method)
This method for marking transducers is much easier than the previous one.
Just connect one probe to the transducer.
With a metal wire poke gently and repeatedly the inside of the transducer. Check the signal in the scope, if the first spike goes up, mark the ground leg. If the spike goes down, mark the other leg.
Step 23: Mark the Transducers (Obsolete Method)
The transducers have polarity and they need to be marked. Do not trust manufacturer marks since they can be wrong.
This method is the one contained in the video, but we have an alternative one that is much easier one in the next step.
First take ground and voltage from any of the Driver outputs. Connect them to a transducer and also connect one probe to the same transducer. This probe will capture the emitted signal.
Take another probe and connect it to the transducer that needs to be marked, this will be the received signal.
Put the transducers face to face and check the signals in the scope.
If the signals are in phase, mark the leg connected to ground. If they are out of phase, mark the other leg.
Mark all the transducers.
Step 24: Mount the Transducers
Put the transducers in the sockets with the marked legs pointing upwards (towards the top).
You do not need to populate the bottom row.
Step 25: Wire the Transducers (hard Method)
We need to wire the transducers to deliver power into them.
Measure the needed length for the wire and give three extra hands for connecting it later.
With the cable peeler, partially peel at the correct distance, later these exposed parts will be twisted around the transducers legs.
Once that you have made the cuts with the peeler, redistribute the plastic to keep a uniform length of cooper exposed. Twist the cooper wires to make them more solid. Twist the exposed parts around the transducers legs, apply flux and solder.
Follow the pattern presented in the images. That is, all the grounds are connected together. The red wires of the same half go towards the same side.
Pay attention to the numbers, these numbers correspond to the driver numbers.
Step 26: Wire the Transducers (Simple Method)
It is the similar to the other method but using exposed wire.
Step 27: Test the Transducers
This step is optional but it is convenient to check that all the transducers are connected correctly.
Connect the ground from the bowl into the driver ground (there will be another wire there).
Connect the 4 red wires from the bowl into the outputs of the Driver, respect the numbering.
Connect two extra marked transducers to the scope probes. Be sure to connect the ground into the marked leg (or at least connect the two transducers in the same way). With these transducers we can check the emitted signal of other transducers.
Transducers from the same half of the bowl should emit in phase. Transducers from opposite halves emit out of phase.
Transducers with the wrong polarity should be desoldered, rotated and resoldered.
Step 28: Set Voltage to 25v
Be sure to set the DC-DC converter to 25V using its potentiometer.
Step 29: Attach the Bowl
Now that all the components are in place, it is time to reattach the bowl into the handler.
Step 30: Connect the Wires
Connect the ground from the bowl into the driver ground (there is already another wire there).
Step 31: Switch on and Levitate
Switch on the device, you should be able to feel a little bit the sound, or hear it if you point it into a big chunk of expanded polystyrene or foam.
Using an acoustically transparent sheet or tweezers you can place particles in the centre of the bowl (above 1.8cm approx) and they will be levitated.
Push the buttons to move the particle up or down.
Depending on the size of the particle and how close it is to the bowl, you will be able to levitate it laterally or upside down. It is also possible to levitate particles that are resting on a surface.
Step 32: Building Other Sonic Devices (Optional)
We have presented how to build the most efficient device but there are others that require even less electronics although they are not as efficient in terms of levitation power to watts.
For the following devices you will need smaller transducers, wires and connectors, as well as a different version for the Arduino (that generates always a 40kHZ signal).
- 1cm transducers MA40S4S
- Ribbon Wires 10 Way Unscreened Flat Ribbon Cable, 12.7 mm Width
- Connector (for the small transducers) Right Angle Cable Mount IDC Connector Socket, 3 Way, 1 Row, 2.54mm Pitch
- 8x2 female Connector Wire-To-Board Connector, Vertical,16 Contacts, Header, 2.54 mm, Through Hole, 2 Rows
- 8x2 male Connector Right Angle Cable Mount IDC Connector Socket, 16 Way, 2 Row, 2.54mm Pitch
Step 33: Coils Device (Optional)
Print the attached STL file. The transducers are fit in the bottom holes and they are all driven with the same signal.
Step 34: Tubes Devices
Print the attached STL file. The transducers are fit in the bottom holes and they are all driven with the same signal.
Step 35: Miscellaneous Files
Raw design files (Inventor)
First Prize in the
Sci-Fi Contest 2016
Second Prize in the
First Time Authors Contest 2016
First Prize in the
Arduino Contest 2016
15 People Made This Project!
evil_scientist made it!
FredS52 made it!
TaeZ1 made it!
AdamA176 made it!
DanielN253 made it!
jmyers03 made it!
mosivers made it!
cerrituss made it!
AndreaD20 made it!
carbon_adam made it!
matthias_heinrichs made it!
depireux made it!
depireux made it!
cerrituss made it!
RocketPenguin made it!
See 6 more that made it
We have a be nice policy.
Please be positive and constructive.
My driver came with the jumpers in a bag. Realize that you need to place jumpers on either side of IN1 and IN4
Yeah, those to enable pair of channels. Most of the times they come already placed but in some cases you need to place them. Good catch.
What would be the most effective way of populating the bottom row. Putting 3 in sync with the 7 on the edge (see crude diagram) on each side? I was thinking about adding a toggle switch to enable them when I needed more power.
I would put them in sync with the 5. Best.
Hello, Asier Marzo.I attempt to import obj file still failed. Click the "import from obj" button and nothing happens.Do you know where the problem is? Thanks.
Paste the obj text in the box and click import from OBJ. There should be only one polygon per transducer.
You say that we do not need to populate the bottom row with transducers. Would it be a better "tractor beam" if we did? Assuming we did the additional wiring, of course.
You can populate them for more power but you will lose a little bit the ability to move the particles up/down.
This is probably a stupid question, but why are you applying input power to one of the jumper pins that enables the regulator? I understand that the jumper needs to be removed so as to not burn out the regulator. Other sites that discuss using the L298N to drive motors warn to remove the jumper if using voltage > 12, but I didn't find any that instructed one to apply power to one of the regulator pins.
I am powering the logic part of the L298N which works at 5V. It is not the most optimum way of doing it but it was the safest for the regulator. In any case, I have put more than 19V in the regulator of the L298N without any problem, if you check the wiring for the single-axis levitator it is much simpler: https://www.instructables.com/id/Acoustic-Levitator/
excuse me, Asier Marzo,I want to import my own design 3D file into the software, which developed in Java 1.8.I use Solidworks to design the model,and already tried to Convert files to obj format,but not successful.do you know how to solve this problem? Can you tell me what 3D software do you use ?
You need to export only the faces of the transducers as an obj, copy this obj and then use the import from obj feature.
Hello Asier,Can you give me a software can apply the formulas which can calculate the phase for each transducers? I think it will use a software can simulate all parameters (pressure, distance and density of particles).thanks
Sure, if you check this instructables https://www.instructables.com/id/Ultrasonic-Array/, there is a video and links to the software.
Hello to all, I would like to ask, how it is possible to mix ultrasound waves with audio waves in this acoustic tractor beam, if it is possible ? I would like to add neigh in front of horse sculpture for few seconds. Are the waves enough strong to go through 2-4 mm of wood material ? Thank you for any tip.
Normal sound is ok with it but if it is very loud it will make the bead wobble. Ultrasound will not go through wood, it only goes through metallic grids and most fabrics.
Ive recently lost the charger for the batteries is there any other way to charge them?
Mmm not safely I think, you can get some cheap usb chargers. In the components sections there are some links to it.
Any advice on scaling the dish aray for 10mm transducers?
In this instructable we use 10mm transducers: https://www.instructables.com/id/Acoustic-Levitator/