Logo von Make

Suche
Abonnieren

Tägliche Top-News bei WhatsApp, Facebook Messenger, Telegram & Insta

preisvergleich_weiss

Recherche in 1.780.765 Produkten

Ulrich Schmerold 90

Einfacher Ultraschall-Levitationsapparat

Wer mit Ultraschall-Levitation experimentieren und Objekte rein durch die Energie von Schallwellen schweben lassen möchte, benötigt dafür keine wissenschaftliche Gerätschaften, komplizierte Steuerungen oder teuren Bausätze. Ein Arduino, ein Stepper-Motor-Treiber und ein umgebauter Abstandssensor reichen aus.

Das fertige Micro Ultrasonic Levitation Device und einige der nötigen Zutaten (Bild: Ulrich Schmerold)

Zugegeben: Unser Mini Ultrasonic Levitation Device kann keine schweren Gegenstände in der Luft halten. Doch auch kleine Styroporkügelchen sind faszinierend, wenn sie wie von Geisterhand schweben. Anders als bei magnetischer Levitation benötigt man für die Ultraschallvariante keine Regelung, die das schwebende Objekt überwacht. Bei der akustischen Levitation "nistet" sich ein Objekt in einem Knoten einer stehenden akustischen Welle ein. Dadurch können auch mehrere Dinge gleichzeitig übereinander schweben – und nehmen sogar gleichmäßig verteilte Positionen ein.

Aus dem günstigen Abstandssensor gewinnt man durch Zerlegen zwei Ultraschallschwinger ... (Bild: Ulrich Schmerold)
... das Gitter eines Empfängers sollte man keinesfalls wegwerfen, denn es kann später noch unschätzbare Dienste leisten. (Bild: Ulrich Schmerold)

Grundlage dieses Projekts sind die Ultraschallschwinger, die in Abstandssensoren wie dem HC-SR04-Modul verbaut werden, die man bei eBay schon für weniger als 2 Euro bekommt.

Diese Module enthalten einen Ultraschallschwinger (Transducer), der als Sender (T), und einen zweite, der als Empfänger (R) dient. Prinzipiell arbeitet logischerweise der mit T (Transmitter) markierte Transducer besser als Sender als der mit R markierte. Für die ersten Experimente taugt dieser allerdings auch. Wer von Anfang an ganz auf der sicheren Seite sein möchte, erwirbt zwei HC-SR04 Module und lötet nur die Sender aus. Das Gitter eines Empfängers bitte nicht wegwerfen, das kann später noch unschätzbare Dienste erweisen.

Die Ultraschallschwinger sind für 40 kHz ausgelegt und arbeiten somit auch bei dieser Frequenz am effektivsten. Dieses Signal generiert ein Arduino Nano.

Im Arduino-Sketch wird die meiste Arbeit im setup()-Bereich geleistet. Zuerst werden die Analogports als Ausgang definiert. Anschließend wird der Timer 1 so konfiguriert, dass er im 80-kHz-Rhythmus das Compare Interrupt auslöst. Innerhalb dieses Interrupts werden die Zustände aller Analogports umgekehrt. Die 80 kHz Rechteckspannung ergeben so eine 40-kHz-Vollwelle. Für die loop()-Schleife bleibt dann nichts zu tun übrig.

byte TP = 0b10101010; // jeder 2. Port bekommt das umgekehrte Signal
void setup()
{
DDRC = 0b11111111; // alle Analogports als Ausgang definieren
// Timer 1 initialisieren
noInterrupts(); // Interrupts deaktivieren
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;
OCR1A = 200; // Compare Match Register setzen(16MHz / 200 = 80kHz Rechteck -> 40kHz Vollwelle )
TCCR1B |= (1 << WGM12); // CTC mode
TCCR1B |= (1 << CS10); // Prescaler auf 1 ==> kein prescaling
TIMSK1 |= (1 << OCIE1A); // Compare Timer Interrupt einschalten
interrupts(); // Interrupts aktivieren
}
ISR(TIMER1_COMPA_vect)
{
PORTC = TP; // den Wert TP an die Ausgänge senden
TP = ~TP; // TP invertieren für den nächsten Durchlauf
}
void loop(){
// hier bleibt nichts zu tun übrig :-(
}

Den vollständigen Code sowie das Schaltbild gibt es als ZIP-Archiv zum Download.

Wer den Umgang mit dem reinen L298N-IC scheut, kann auch einen fertigen Stepper-Treiber mit diesem IC verwenden. Dazu müssen dann nur zwei der vier Eingänge mit den Arduino-Ports A0 und A1 sowie GND und 5V verbunden werden. (Bild: Ulrich Schmerold)

Theoretisch ist es möglich, unsere beiden Sendermodule direkt an zwei Analogports des Arduino Nano anzuschließen, da sie nur sehr wenig Strom benötigen. Dabei wäre man jedoch auf 5 Volt Spannung begrenzt, was ein Schweben nur sehr eingeschränkt ermöglicht. Zur Verstärkung des Signals verwenden wir eine L293D-H-Bridge, die auch in Stepper-Motor-Treibern Einsatz findet.

Wer die Schaltung mit einem L293D-IC auf einer Lochrasterplatine aufbaut, sollte auf keinen Fall die beiden Kondensatoren vergessen. Andernfalls kann es passieren, dass die Störspannungen, die die Sender verursachen, den Arduino "ausblasen" und immer wieder neu starten lassen.

(Bild: Ulrich Schmerold)

Für die ersten Versuche genügt es, die beiden Sender in einem Abstand von etwa 20 mm unter Zuhilfenahme von beispielsweise einer Dritten Hand zu positionieren. Den genauen Abstand muss man dann durch Probieren ermitteln.

Der komplette Aufbau als Prototyp mit Stepper-Modul, Steckbrett und Dritter Hand (Bild: Ulrich Schmerold)

Nur wenn der Abstand genau stimmt, ergibt sich eine stehende Welle, die genügend starke Bereiche mit hohem und niedrigem Luftdruck aufweist. Theoretisch könnte man den benötigten Abstand auch rechnerisch ermitteln:

33000 cm/s Schallgeschwindigkeit / 40000 Hz = 8,25 mm

oder ein Vielfaches davon. Jedoch ist der Rand des Senders nicht gleichbedeutend mit der Fläche, die die Schallwelle erzeugt. Somit bleibt am Ende dann doch trial and error als Methode übrig.

Quelle: Ulrich Schmerold

Wer ein Oszilloskop mit zwei Kanälen zur Hand hat, kann den Abstand auch damit bestimmen. Dazu wird ein Kanal an den Arduino angeschlossen und der zweite mit einem der beiden Sender (dieser muss dabei von der Steuerung getrennt sein). Bei korrektem Abstand sollte dann die Sinuswelle des Ultraschallempfängers genau phasengleich mit dem Rechtecksignal des Arduino sein.

Oszillogramm bei Phasengleichheit zwischen Arduino-Rechtecksignal und Sinuswelle des Ultraschallempfängers (Bild: Ulrich Schmerold)
Oszillogramm bei verschobener Phase – hier muss der Abstand korrigiert werden. (Bild: Ulrich Schmerold)

Als Hilfsmittel zum Einfügen der Styroporkügelchen leistet das Gitter eines Empfängers, das an einen Zahnstocher geklebt wird, gute Dienste. Versuche, die Kügelchen mit der Hand oder einer Pinzette einzubringen, scheitern hingegen in der Regel, da dabei die Schallwellen von den Fingern reflektiert werden und die stehende Welle beeinträchtigt beziehungsweise gar zerstört wird.

Das Hilfslöffelchen aus dem Empfängergitter (Bild: Ulrich Schmerold)
Das Levitation Device hält mehr als ein Kügelchen zur Zeit in der Luft. (Bild: Ulrich Schmerold)

Bis die ersten Teile schweben, benötigen Sie etwas Geduld:

Unsere Endversion haben wir mit 18-mm-Kupferbögen aus dem Baumarkt aufgebaut. Den Abstand zwischen den beiden Sendern (von Gitter zu Gitter) haben wir dabei auf exakt 37 mm eingestellt, was zuvor experimentell ermittelt wurde. (Bild: Ulrich Schmerold)
Die Steuerplatine findet problemlos im Sockel Platz, sofern die Schaltung mit dem IC L293D aufgebaut wurde. An der rechten Seite ist die Hohlbuchse für das 12V-Netzteil zu erkennen. (Bild: Ulrich Schmerold)

Ultraino – Schweben im Array

Einen ganz ähnlichen Ansatz zur Ultraschall-Levitation verfolgt das Open-Source-Projekt Ultraino – bestehend aus einem Arduino-Shield, Software und Arrays aus Ultraschallwandlern. Auf Instructables gibt es eine ausführliche Anleitung dazu. Das dort beschriebene System arbeitet mit vielen Ultraschallwandlern aus Abstandssensoren und findet in einem Gehäuse aus dem 3D-Drucker Platz. Ganz am Ende der Anleitung (Schritt 25) wird noch eine Variante beschrieben, die nur mit zwei Ultraschallgebern auskommt, ähnlich wie das hier beschriebene Projekt. Zu Ultraino gibt es auch das wissenschaftliche Paper Ultraino: An Open Phased-Array System for Narrowband Airborne Ultrasound Transmission zu den Hintergründen des Systems – komplett online nachzulesen. Interessant ist auch das Paper TinyLev: A multi-emitter single-axis acoustic levitator.

90 Kommentare

Themen:

Anzeige
Anzeige