Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Jest to prosty projekt generatora tonów wykorzystujący Arduino Pro Mini. Część super hitu "Jimikky Kammal" z filmu "Velipadinte Pusthakam" jest rozwijana w monotonii.
Nuty występują w naturze jako gładkie i toczące się fale sinusoidalne. W tym projekcie zamiast gładkich fal sinusoidalnych będziemy wytwarzać dźwięk z falami prostokątnymi. Fale prostokątne wytwarzają ton, ale jest on bardziej wyraźny i metaliczny niż normalna fala sinusoidalna. Nutę muzyczną można utworzyć, generując częstotliwość. Każda częstotliwość ma unikalny ton. Tutaj Arduino służy do tworzenia tej częstotliwości.
Krok 1: Konfiguracja sprzętu
Konfiguracja sprzętu jest bardzo łatwa. Do opracowania tego projektu prosimy
- Arduino Pro Mini
- Głośnik
- Adapter FTDI USB na szeregowy (do wgrywania programu do Arduino Pro Mini)
Interfejs Adapter FTDI USB na szeregowy do Arduino Pro Mini do programowania, jak pokazano na schemacie obwodu. Podłącz jeden pin głośnika do cyfrowego pinu 11 (możesz zmienić numer pinu w Programie) Arduino Pro Mini, a drugi do masy.
W tym obwodzie nie dodajemy żadnego obwodu wzmacniacza, więc głośność może być bardzo niska. Możesz dodać dowolny obwód wzmacniacza audio, dzięki czemu uzyskasz dużo dźwięku na wyjściu lub możesz użyć głośnika PC z regulacją głośności.
Krok 2: Rozwój oprogramowania
Nuty można tworzyć poprzez generowanie oscylacji w Arduino. Częstotliwość oscylacji to wysokość tempa odtwarzanych nut. Uderzenia to okres, w którym odtwarzana jest każda melodia. Tak więc musimy dokładnie określić wysokość, uderzenia, tempo dla każdej nuty.
W tym programie nie generujemy wszystkich częstotliwości dla wszystkich dźwięków. Dodawany jest tylko dźwięk wymagany do muzyki „Jimikky Kammal”. Częstotliwości dla wszystkich nut podano poniżej.
impacttechnolabz.com/fd1_jk.html
Musimy przekonwertować te częstotliwości na okres czasu, aby Arduino otrzymało czas włączania i wyłączania pinu cyfrowego. Obliczenie tonów odbywa się zgodnie z działaniem matematycznym:
timeHigh = 1/(2 * częstotliwość tonu) = okres / 2
np:
Aby wygenerować oscylacje 100 Hz, tj. okres czasu = 1/100 S = 0,01 S = 10000 uS
Więc musimy zrobić pin WYSOKI dla 5000 uS i NISKI dla 5000 uS
tj. timeHigh = 1/(2*100)
= 0,005 S
= 5000 us
Pobierz pełny kod
Krok 3: Symulacja
Stworzyliśmy symulację za pomocą oprogramowania Proteus Proffessional zainstalowanego na komputerze z systemem Windows, dzięki czemu dźwięk można zweryfikować na komputerze za pomocą karty dźwiękowej. Musisz jawnie dodać bibliotekę Arduino do Proteusa.
Krok 4: Kod
Pobierz pełny kod