Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Ultradźwiękowy Theremin to projekt Arduino, który wykorzystuje tani theremin do uczenia fal dźwiękowych. Zmieniając odległość ręki od urządzenia, zmieniam częstotliwość fal dźwiękowych. Również przesunięcie potencjometru zmienia amplitudę fali. Można to wykorzystać jako lekcję nauki o falach dźwiękowych.
Krok 1: Narzędzia i materiały
Kieszonkowe dzieci
- Arduino Uno z przewodem USB
- Czujnik ultradźwiękowy do zmiany częstotliwości (wysokość)
- Piezo Buzzer do odtwarzania dźwięku
- Potencjometr do zmiany amplitudy (głośności)
- LED z rezystorem 220ohm (wizualny dla częstotliwości)
- Płyta piankowa do obudowy
- Przewody połączeniowe
UWAGA: Większość tych części pochodzi z zestawu Arduino.
Narzędzia
- Komputer z zainstalowanym Arduino
- Pistolet na gorący klej
- Wycinarka laserowa do obudowy
- Power Bank, jeśli chcesz, aby był przenośny
Krok 2: Montaż
Elektronika
Pierwsze dwa obrazy po prawej stronie pokazują testowaną elektronikę, ale na trzecim poruszałem się po komponentach, aby pomieścić obudowę. Czujnik LED i ultradźwiękowy wykorzystują 40cm przewody połączeniowe męskie i żeńskie, które mogą być zdecydowanie mniejsze, ale takie miałem pod ręką. Właśnie owinąłem nadmiar wokół Arduino, zanim go okryłem.
Walizka
Obudowa została wykonana przez MakerCase, a jej wymiary były trochę małe, więc mój prototyp wymagał dodatkowego kleju, aby złożyć go w całość. Po zmierzeniu części na Arduino, dodaj kilka milimetrów do swoich wartości i włóż je do MakerCase, aby uzyskać plik, który można następnie wyciąć laserowo na rdzeniu z pianki.
Krok 3: Kodeks
Kod jest kontrolowany głównie przez zmienną zwaną skokiem. Skok wykorzystuje mapę, aby ukryć wartości z czujnika ultradźwiękowego na coś czytelnego dla głośnika piezoelektrycznego, a w szczególności na częstotliwości między A3 i C5. Ograniczenie sprawia, że mapa nie przewiduje wysokiej częstotliwości, gdy widzi dużą odległość (były denerwujące). Reszta kodu to odczytanie czujnika, dodanie diody LED i dodanie wiadomości szeregowych.
pitch = constrain(mapa (distanceCm, 1, 40, 256, 523), 220, 523);