Spisu treści:
- Krok 1: Wideo
- Krok 2: Części i materiały
- Krok 3: Okablowanie - SAA1099
- Krok 4: Okablowanie - Oscylator TTL
- Krok 5: Okablowanie - interfejs Iref i chip
- Krok 6: Okablowanie - komponenty dźwiękowe
- Krok 7: Okablowanie - gniazdo audio
- Krok 8: Okablowanie - zasilanie do deski do krojenia chleba
- Krok 9: Okablowanie - linie danych
- Krok 10: Opcjonalne diody LED
- Krok 11: Kod
- Krok 12: Przetestuj to
- Krok 13: Używanie własnych plików MIDI - program do konwersji
- Krok 14: Konwersja plików MIDI
- Krok 15: Używanie przekonwertowanego pliku MIDI
- Krok 16: Fin
Wideo: Retro Sound Chip z Arduino - SAA1099: 16 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
W tej instrukcji pokażę, jak używać Arduino Uno z klasycznym układem syntezy dźwięku, aby odtwarzać pliki midi w kwadratowej, falistej dobroci!
Jeśli chcesz tylko szybkiego przeglądu tego, co robi ten projekt, obejrzyj powyższy film. W przeciwnym razie kontynuuj!
Krok 1: Wideo
Jeśli wolisz wszystkie instrukcje w przejrzystych, zwięzłych filmach, mamy dla Ciebie ochronę!
Dla reszty z nas możesz kontynuować, aby uzyskać odrobinę więcej szczegółów i pisemne instrukcje.
Krok 2: Części i materiały
Do tego będziesz potrzebować tych rzeczy:
(Łącza dotyczą przedmiotów z serwisu eBay)
- Arduino (Uno, Nano, Leonardo, wszystkie powinny działać)
- Przynajmniej średniej wielkości płytka do krojenia chleba
- Układ generatora dźwięku stereo SAA1099
- Przewody połączeniowe płytki stykowej (Alternatywnie lubię używać zworek żeńskich do żeńskich z dupont, z kołkami nagłówka 20 mm włożonymi na każdym końcu - o wiele bardziej wytrzymały)
- Oscylator 8Mhz TTL (łącze AliExpress dostarczone przez zweigelt)
- Gniazdo audio stereo (lub mono)
- 2 x rezystory 1K (partia 100)
- 1 x rezystor 10K (partia 50)
- Kondensatory 2 x 100pF
- (Opcjonalnie) Niektóre diody LED, co najmniej 1 (dowolny kolor, tutaj jest 100 różnych kolorów za dolara!)
Korzystając z podanych linków, całkowity koszt wynosi 23,25 USD, łącznie z wysyłką. Oczywiście większość z nich pochodzi z drugiego końca świata, więc wysyłka trwa zwykle około miesiąca. Jeśli chcesz przyspieszyć wysyłkę, prawdopodobnie będziesz musiał zapłacić nieco więcej.
Krok 3: Okablowanie - SAA1099
Jeśli schematy to twoja sprawa, proszę bardzo! Reszta z nas może przejść krok po kroku lub obejrzeć film.
- Umieść SAA1099 na końcu płytki stykowej, z wycięciem na chipie skierowanym do końca.
- Teraz moc. VDD (pin 18) w SAA1099 przechodzi do zasilania, a następnie pin VSS (pin 9) do masy.
- Następnie umieść przewód między CS (pin 2) a masą, aby był naciągnięty nisko
Polecam również zajrzeć do arkusza danych, który załączyłem.
Krok 4: Okablowanie - Oscylator TTL
- Oscylator TTL umieścimy na płytce stykowej obok płytki stykowej, tak aby pin wyjściowy zegara znajdował się najbliżej wejścia zegara w SAA1099 (styk 8)
- Możesz iść dalej i podłączyć zasilanie i uziemienie do oscylatora TTL. (Czekałem na później w moim wideo, więc nie mam zdjęcia). Powyższe zdjęcie pokazuje, które piny są które.
Krok 5: Okablowanie - interfejs Iref i chip
- Podłącz rezystor 10K między Iref (pin 6) a 5V.
- Podłącz cyfrowy pin 8 do WR (pin 1) w SAA1099.
- Podłącz cyfrowy styk 9 do A0 (styk 3) w SAA1099.
Krok 6: Okablowanie - komponenty dźwiękowe
- Podłącz kondensator 100pF między OUTR (pin 4) a GND
- Podłącz rezystor 1K między OUTR (pin 4) a 5V
- Zrobimy to samo dla OUTL (pin 5)
- Podłącz kondensator 100pF między OUTL (pin 5) a GND
- Podłącz rezystor 1K między OUTL (pin 5) a 5V
Notatka! Upewnij się, że żaden z przewodów rezystorów/kondensatorów nie styka się, w przeciwnym razie rzeczy nie będą działać i mogą (ostrożnie) potencjalnie wybuchnąć w twoją twarz.
Krok 7: Okablowanie - gniazdo audio
- Podłącz mały przewód połączeniowy między 5 V a pustym rzędem na płytce stykowej.
- Umieść gniazdo audio tak, aby zworka z 5V połączyła się z pinem "Sleeve" na gnieździe audio
- Podłącz styki L i R (lub styki audio, jeśli masz gniazdo Mono) odpowiednio do styków OUTL (styk 5) i OUTR (styk 4) w SAA1099.
Notatka! W przypadku gniazd audio Mono naprawdę nie ma znaczenia, co się dzieje, o ile jeden pin łączy się z 5 V, a drugi z OUTL lub OUTR. Zabrzmi dobrze. Chyba że tak się nie stanie, w takim przypadku możesz chcieć ponownie sprawdzić okablowanie.
Krok 8: Okablowanie - zasilanie do deski do krojenia chleba
- Połącz ze sobą obie strony szyny zasilającej Breadboard za pomocą przewodów połączeniowych.
- Podłącz jedną stronę do pinów 5V i GND na Arduino, upewniając się, że nigdzie nie pomieszałeś przewodów. Jeśli tak, magiczny dym może uciec.
Krok 9: Okablowanie - linie danych
Połącz kolejno D0 przez D7 na Arduino do D0 (styk 10) przez D7 (styk 17) w SAA1099
Uważam, że żeńskie i żeńskie przewody połączeniowe DuPont, z pinami nagłówka 15-20 mm na obu końcach, działają znacznie lepiej niż męsko-męskie przewody dupontowe. Dodatkowo możesz ich używać jako żeńsko-żeńskie lub męsko-żeńskie. Oba można łatwo znaleźć w serwisie eBay w dużych ilościach, za niewielkie kwoty. Dobry prezent świąteczny dla początkującego ćpuna Arduino!
Krok 10: Opcjonalne diody LED
Nie będę omawiał krok po kroku, jak zbudować wszystko tutaj, ale jest kilka dobrych miejsc na dodanie diod LED. Przede wszystkim podłączyłem 3mm czerwoną diodę LED między WR (pin 1) a GND, aby pokazać za każdym razem, gdy Arduino wysyła polecenie do SAA1099.
Podłączyłem również diody LED do linii danych wcześniej, co pozwala zobaczyć rzeczywiste dane binarne w każdej linii. Użyłem tej konfiguracji w moim filmie "Arduino i SAA1099 - Fireflies", a także 6 dodatkowych diod LED i trochę dodatkowego kodu, aby zapalić każdą diodę LED dla każdego aktywnego kanału.
Im więcej diod LED, tym fajniej wygląda!
Krok 11: Kod
Teraz, gdy już zbudowałeś obwód, sprawdź ponownie połączenia! Nie chcesz wysadzić w powietrze swojego drogiego arduino i Soundchip! (Jeśli tak, cóż. To nie moja sprawa)
Zakładając, że jesteś zdrowy na umyśle i sprawdziłeś wszystko, możemy zacząć programować.
- Biblioteka znajduje się pod adresem
- Będziesz potrzebować pliku SAATunes.zip, więc pobierz go.
- Teraz otwórz Arduino IDE.
- W sekcji „Szkic”, „Dołącz bibliotekę” kliknij „Dodaj bibliotekę.zip”
- Przejdź do miejsca, w którym pobrałeś bibliotekę SAATunes. (Nie obchodzi mnie, czy to był twój pulpit, pliki do pobrania, czy (wstaw coś zawstydzającego) folder - po prostu go znajdź)
- Wybierz i kliknij "Otwórz"
- Powinien powiedzieć, że został dodany do twoich bibliotek.
Krok 12: Przetestuj to
- Otwórz przykładowy program SAATunes w "Plik", "Przykłady", "SAATunes", "SAATunes-Uno".
- Podłącz Arduino do komputera i do jakiegoś głośnika.
- Wgraj program do Arduino.
Powinieneś usłyszeć akord, a potem wściekłość Beethovena nad zgubionym groszem. Jeśli Classical to nie twoja bajka, nie bój się, bo niedługo nauczymy się używać z nim wybranych przez nas plików MIDI.
Jeśli nic nie słyszysz, sprawdź kilka rzeczy: Po pierwsze, czy Twój głośnik jest włączony? Obróć to do góry. Czy arduino jest naprawdę włączone? Czy program załadował się poprawnie? Sprawdź całe okablowanie za pomocą scematic i arkusza danych, a następnie spróbuj ponownie.
Krok 13: Używanie własnych plików MIDI - program do konwersji
Chcesz spróbować czegoś innego niż Beethoven? Bardzo dobrze, proszę bardzo.
Aby przekonwertować pliki MIDI na strumienie bajtów C++, potrzebujemy programu autorstwa Len Shustek. Jest twórcą biblioteki, na której oparłem mój kod, a moja biblioteka używa tego samego formatu strumienia bajtów, co on.
- Program można znaleźć na
- Poszukiwany program to „miditones.exe”. Śmiało i pobierz to.
Krok 14: Konwersja plików MIDI
Ostrzeżenie! Oto smoki ascii! Łatwiej będzie Ci obejrzeć film, w którym dokładnie zobaczysz, o czym mówię. Jeśli odważysz się wejść, kontynuuj!
Aby użyć programu do konwersji MIDI na Bytestream, musisz otworzyć okno wiersza poleceń. Przepraszamy użytkowników komputerów Mac i Linux, może być konieczne znalezienie obejścia.
- Otwórz menu Start i wpisz „CMD”, a następnie naciśnij enter.
- Teraz nauczymy się trochę magii MS-DOS. Za pomocą polecenia „CD” przejdź do miejsca, w którym pobrałeś plik „miditones.exe”. W większości przypadków poleceniem będzie „pobieranie płyt CD”.
- Uruchom program „miditones.exe”, wpisując „miditones”. Powinien pokazać listę pomocy zawierającą najczęściej używane polecenia.
Teraz potrzebujemy pliku MIDI do konwersji. Znajdź taki gdzieś w sieci, najlepiej bez perkusji lub jakichkolwiek efektów specjalnych poza instrumentami/prędkością. (Jeśli nie wiesz, co to jest, nie martw się, wszystko będzie dobrze)
- Pobierz plik MIDI w to samo miejsce, w którym masz program „miditones”.
- Teraz, korzystając z okna wiersza poleceń, wpisz „miditones -d -v [nazwa pliku]” (Zastąp [nazwa pliku] dowolną nazwą pliku MIDI).
- miditones wygeneruje plik. C ze strumieniem bajtów C++ w tym samym folderze o tej samej nazwie co plik MIDI.
Krok 15: Używanie przekonwertowanego pliku MIDI
Teraz, gdy już przekonwertowałeś swój plik MIDI, przekażmy go w małych bajtach do arduino!
- Zakładając, że masz już otwarty przykład SAATunes-Uno, przejdźmy dalej i „zapisz jako” coś innego, abyśmy mogli go edytować.
- Po zapisaniu kliknij małą ikonę „strzałki w dół” w prawym górnym rogu.
- Kliknij „nowa karta” i nazwij ją „[nazwa].h” (zastąp [nazwa] nazwą utworu MIDI lub jakakolwiek chcesz)
- Teraz otwórz plik. C utworzony wcześniej przez miditony. Możesz użyć notatnika, aby go otworzyć.
- Użyj CNTRL/A, aby zaznaczyć wszystko, a następnie skopiuj.
- Wklej go do nowej zakładki „[name].h” w edytorze arduino.
Tutaj wszystko jest dobrze, więc wróćmy do programu.
- Znajdź miejsce, w którym jest napisane „#include „RagePenny.h”” i skopiuj/wklej go do nowej linii poniżej.
- Zmień "RagePenny.h" na to, co nazwałeś swoim nowym plikiem.
- Teraz skomentuj "#include "RagePenny.h"", dodając przed nim dwa ukośniki (//).
- Wgraj program!
Jeśli wszystko poszło dobrze, powinien odtwarzać twój własny plik MIDI. Jeśli nie, sprawdź ponownie, czy nazwy nowej karty i nazwa, którą zmieniłeś w "#include "RagePenny.h"" są takie same. Sprawdź pozostałe kroki i upewnij się, że zrobiłeś wszystko dobrze. Niektóre pliki MIDI po prostu nie działają, ale są one rzadkie.
Krok 16: Fin
Mam nadzieję, że wszystko poszło z tobą dobrze i grasz z plikami MIDI na starożytnej technologii, która otrzymała nowe życie!
Jeśli jednak nie, nie poddawaj się! Wyślij mi komentarz, a chętnie pomogę. Oczywiście zachęcam do zgłaszania sugestii w komentarzach.
Wesołych chiptunów!
Zalecana:
Sound Sleuthers: 6 kroków (ze zdjęciami)
Sound Sleuthers: Sound Sleuther to najwyższej klasy mikrofon oparty na kapsułce mikrofonowej PUI 5024. Są naprawdę ciche i czułe, dzięki czemu stanowią doskonały mikrofon natury. Są niedrogie w cenie poniżej 3 USD w ilości 10 sztuk. Mają wewnętrzny FET, który
LED Sound Reactive Infinity Cube End Table: 6 kroków (ze zdjęciami)
LED Sound Reactive Infinity Cube End Table: Wow! Łał! Co za fajny efekt! -- Oto niektóre z rzeczy, które usłyszysz po ukończeniu przewodnika. Całkowicie oszałamiająca, piękna, hipnotyczna, reagująca na dźwięk kostka nieskończoności. To skromnie zaawansowany projekt lutowania, zajęło mi to około 12 osób
Sound Bending Synth: 14 kroków (ze zdjęciami)
Sound Bending Synth: Zbudowałem już kilka maszyn do gięcia dźwięku (sprawdź poniższe linki do „Ibli”). Tym razem dodałem moduł pogłosu i wzmacniacza, który naprawdę daje zupełnie nową gamę dźwięków do zabawy. Dodatkowo moduł dyktafonu używany w
Zestaw słuchawkowy Bluetooth DIY (chip BK8000L) Druk 3D: 6 kroków (ze zdjęciami)
Zestaw słuchawkowy Bluetooth DIY (chip BK8000L) Druk 3D: Cześć! Tutaj chciałbym pokazać, jak zrobić własny bezprzewodowy zestaw słuchawkowy Bluetooth. Moją motywacją do zrobienia tego projektu jest fakt, że ostatnio kupiłem wiele złych zestawów słuchawkowych bluetooth, więc robiąc własne, mogę ulepszać i rozwijać
Arduino Infinity Mirror (Bluetooth & Sound Reactive): 9 kroków (ze zdjęciami)
Arduino Infinity Mirror (Bluetooth & Sound Reactive): Stworzyłem Infinity Mirror do szkolnego projektu z Arduino, którym możesz sterować za pomocą telefonu lub tabletu za pomocą Bluetooth. Lustro posiada również wbudowany mikrofon, który wykrywa dźwięk/muzykę i odpowiednio reaguje generując przyciągające wzrok