Skip to content

TUDA-MUST/AcoustiFly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AcoustiFly, a single transducer Acoustic Levitator

Badge Badge

Unlock the Power of Sound: Explore Acoustic Levitation with Ease and Precision. This project focuses on the development of an acoustic levitator, a fascinating technology capable of suspending small objects in mid-air using ultrasonic waves. It is:

  • Low Cost: Affordable and accessible to everyone -> approximately between 15-25 USD per unit
  • Easy to Build: Simple setup with readily available components
  • Open Source: Free to use, modify, and distribute
  • Mobile: Battery powered operation possible
  • Adjustable: Distance between transducer and reflector can be adjusted, thus stability can be tuned

This repository provides all the necessary resources, including code, schematics, and documentation, to build and experiment with your very own acoustic levitation system.

Move


Table of Contents

Introduction

Our repository is dedicated to showcasing a method of acoustic levitation using a single transducer and a reflector. Acoustic levitation, also known as acoustic trapping, is a fascinating technique that allows objects to float in mid-air using sound waves.

In our approach, we utilize a single transducer, which emits high-frequency sound waves, and a carefully designed reflector. The transducer generates an acoustic field that interacts with the reflector to create standing waves within a confined region. These standing waves produce regions of high and low pressure, forming what is known as an "acoustic pressure node".

When an object is placed at a specific position within the acoustic pressure node, the forces exerted by the surrounding sound waves counteract the gravitational force, resulting in levitation. By precisely adjusting the distance of the transducer and the reflector, we can control the levitation height and stability of objects.

This unique approach offers several advantages. Firstly, it simplifies the setup by using only a single transducer and a reflector, reducing complexity and cost. Secondly, it enables precise control over the levitation process, allowing for manipulation and positioning of objects with great accuracy. Lastly, it opens up possibilities for various applications, including material handling, microfluidics, and scientific experiments.

In our repository, we provide detailed documentation, source code, and demonstrations to help you understand and implement this acoustic levitation technique. Whether you are a researcher, teacher, hobbyist, or enthusiast, we invite you to explore our repository, contribute to its development, and unlock the potential of acoustic levitation with a single transducer and a reflector.

Join us on this exciting journey of harnessing the power of sound waves to defy gravity. Visit our homepage to delve into our research and learn more about our team.

Assembly

To assemble the Acoustifly you will need the following components:

Acoustifly Components

  • 3D-printed:

    Base, Battery-Cover, Transducer-Holder, Vertical profile

  • Electrical Components:

    UT-1640K-TT-2-R Transducer, Transducer PCB, Acoustifly PCB, EXP-T11-020 3.7V 720mAh Lithium Polymer Battery with JST-PH connector,

  • Others:

    Ruthex M3s threaded inserts, M3 screws

Instructions:

  1. To install the threaded inserts you need to heat them up to 230°C. Best is to use a soldering tip to melt them into the 3D-printed parts.

Solderint Tip with threaded insert Base with threaded insert Transducer holder with threaded inserts Vertical Profile with threaded insert Battery Cover with threaded insert

  1. Mount the Transducer PCB with the Tranducer on the Transducer holder:

Transducer holder with Transducer

  1. Attach it to the vertical profile:

complete transducer holder complete transducer holder with screw

  1. Screw the complete Tranducer Holder to the Base:

Transducer holder to base Transducer holder to base

  1. Put the Transducer cord through the two holes on the Base and solder them to the PCB:

Transducer cords Soldered transducer

  1. Install the Acoustifly PCB into the Base and connect the JST-Connector. After that you can also connect the Battery-cover:

Base with Acoustifly PCB Acoustifly open

  1. Close the cover and enjoy your Acoustifly!:

Transducer holder with Transducer Transducer holder with Transducer

Installation

PlatformIO

Here's a Quickstart Guide on how to use Platform IO with Visual Studio Code.

Arduino IDE

To enable working with the underlying microcontroller (ESP32-S3-MINI-1-N4R2) you are required to install the relevant board package. To do this, open Tools > Board > Boards Manager and install the 'esp32' package by Espressif Systems.
The Board should be set to Adafruit Feather ESP32-S3 2MB PSRAM as this comes closest to the used microcontroller. The relevant options under Tools should be set according to the following image. Make sure to enable USB CDC on Boot, which permits USB communication.

Arduino IDE options

Uploading Code

Since this board does not use a separate usb-to-serial chip, the microcontroller needs to be put into the bootloading state manually. To accomplish this, simply hold down down the BOOT button on the PCB and then quickly press the Reset button once. After releasing the BOOT button, you are now able to upload your code.
! The COM Port is likely to change after entering Boot-mode and may need to be set again in your Software !

Usage

Pinout

Pin Name Description
1 LED_YELLOWGREEN emits yellow-green light (current sink!)
2 LED_RED emits red light (current sink!)
4 HBRIDGE_ENABLE HIGH enables the h_bridge/output for both transducers
5 HBRIDGE_A_NORMAL PWM Input for Transducers A
6 HBRIDGE_A_INVERTED inverted PWM Input for Transducers A
7 HBRIDGE_B_NORMAL PWM Input for Transducers B
8 HBRIDGE_B_INVERTED inverted PWM Input for Transducers B
9 HBRIDGE_CURRENTSENSE read analog voltage to measure transducer current consumption
10 BAT_STATE used to read battery voltage
40 MISO SCPI
41 SCK SCPI
41 MOSI SCPI

The LEDs are setup in a current sink configuration, meaning a LOW signal will emit light while a HIGH signal will shut them off. Consider the command GPIO.func_out_sel_cfg[PIN].inv_sel = 1 to reverse this.
The HBRIDGE_* inputs require either the typical PWM signal or the inverted one. The easiest way to achieve this is to set both to the same LEDC Channel and invert one output with the already mentioned command.
CURRENTSENSE can be used to measure the current consumption of the h-bridge, so both transducers simultaneously. Current is measured via a 500mΩ high side shunt. The voltage across which is amplified by a factor of 100 and then averaged with a low pass filter. As a result, the average current consumption can be calculated by measuring the voltage on Pin "HBRIDGE_CURRENTSENSE" and dividing it by 50.
BAT_STATE can be used to read the battery voltage. However, it is reduced by a voltage divider. Multiply the measured voltage by 11 to read the correct voltage level.
! As a small sidenote, the used microcontroller ESP32 does not have a very accurate, integrated ADC. However, finding the peak voltage is sufficient to determine the resonant frequency. !

License

This project is licensed under the GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007. Please see the LICENSE file for more details.

Reference

If you would like to reference our project, feel free to support us by citing our research paper: TODO ADD PAPER