Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Obejrzyj ten projekt na mojej stronie, aby zobaczyć symulację obwodu i wideo!
Lewitacja akustyczna jest możliwa dzięki temu, że dźwięk zachowuje się jak fala. Kiedy dwie fale dźwiękowe przecinają się, mogą one konstruktywnie lub destrukcyjnie zakłócać się nawzajem. (Tak działają słuchawki z redukcją szumów)
Ten projekt wykorzystuje ultradźwiękowy czujnik odległości do stworzenia efektu lewitacji. Działa to poprzez tworzenie „kieszeni”, w których dwie przeciwstawne fale dźwiękowe zakłócają się nawzajem. Gdy przedmiot zostanie umieszczony w kieszeni, pozostanie tam, pozornie unosząc się w miejscu.
Potrzebne materiały:
- Płytka Arduino:
- Mostek H:
- Czujnik odległości:
- Płytka chlebowa:
- Przewody połączeniowe:
- Dioda:
- Kondensatory (może):
Oryginalny projekt z magazynu Make autorstwa Ulricha Schmerolda.
Krok 1: Uzyskaj nadajniki ultradźwiękowe
Na ten krok musisz poświęcić czujnik odległości (nie martw się, są stosunkowo tanie):
- Wylutuj i wyjmij oba nadajniki z płytki
- Usuń i zapisz siatkowy ekran z jednego
- Przylutuj przewody do obu nadajników
Krok 2: Utwórz obwód
Utwórz powyższy obwód i zwróć uwagę na następujące kwestie:
- Być może nie musisz koniecznie dołączać dwóch kondensatorów 100nF. (tylko jeśli twoja płyta z jakiegoś powodu nie jest w stanie poradzić sobie z obwodem i ciągle się wyłącza)
- Bateria 9V to podstawka do każdego zasilacza DC - moja działała dobrze z baterią LiPo 7,5V
Krok 3: Kod
Prześlij ten kod do swojego Arduino:
//oryginalny kod z:
bajt TP = 0b10101010; // Każdy inny port odbiera odwrócony sygnał void setup() { DDRC = 0b11111111; // Ustawia wszystkie porty analogowe na wyjścia // Inicjuj Timer1 noInterrupts(); // Wyłącz przerwania TCCR1A = 0; TCCR1B = 0; TCNT1 = 0; OCR1A = 200; // Ustaw rejestr porównawczy (16MHz / 200 = fala prostokątna 80kHz -> pełna fala 40kHz) TCCR1B |= (1 << WGM12); // Tryb CTC TCCR1B |= (1 < bez wstępnego skalowania TIMSK1 |= (1 << OCIE1A); // Włącz przerwania przerwań porównawczych(); // Włącz przerwania } ISR(TIMER1_COMPA_vect) { PORTC = TP; // Wyślij wartość TP na wyjścia TP = ~TP; // Odwróć TP dla następnego uruchomienia } void loop() { // Nic nie zostało do zrobienia:) }
Krok 4: Zamontuj nadajniki i skalibruj
Możesz naprawdę użyć do tego wszystkiego, ale skończyło się na zestawie pomocnych dłoni (kup tutaj:
- Zacznij od ustawienia nadajników w odległości około 3/4 cala
- Zdobądź mały kawałek styropianu o wielkości połowy grochu (nie musi być okrągły)
- Umieść styropian na siatce z kroku 1
- Za pomocą pęsety lub szczypiec umieść go pomiędzy dwoma nadajnikami (powinien zacząć się poruszać, gdy się zbliżysz)
- Przesuwaj nadajniki (bliżej i dalej od siebie), aż styropian pozostanie nieruchomy
Krok 5: Rozwiązywanie problemów
Pierwsze uruchomienie zajęło mi około piętnastu minut, ale potem było już całkiem łatwo przywrócić go do działania. Oto kilka rzeczy, które możesz wypróbować, jeśli na początku nie zadziała:
- Upewnij się, że wszystko jest prawidłowo podłączone
- Zwiększ napięcie na mostku H (inna bateria)
- Zdobądź mniejszy kawałek styropianu
- Wypróbuj inną pozycję nadajników
- Spróbuj dodać kondensatory (jeśli jeszcze tego nie zrobiłeś)
- Jeśli nadal nie działa, może coś jest zepsute: wypróbuj inny zestaw nadajników lub nową baterię.