Spisu treści:

Retro Sound Chip z Arduino - SAA1099: 16 kroków (ze zdjęciami)
Retro Sound Chip z Arduino - SAA1099: 16 kroków (ze zdjęciami)

Wideo: Retro Sound Chip z Arduino - SAA1099: 16 kroków (ze zdjęciami)

Wideo: Retro Sound Chip z Arduino - SAA1099: 16 kroków (ze zdjęciami)
Wideo: Arduino SAA1099 music synthesis IC demo 2024, Listopad
Anonim
Image
Image
Okablowanie - SAA1099
Okablowanie - SAA1099

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

Image
Image

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

Okablowanie - SAA1099
Okablowanie - SAA1099
Okablowanie - SAA1099
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

Okablowanie - Oscylator TTL
Okablowanie - Oscylator TTL
Okablowanie - Oscylator TTL
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

Okablowanie - interfejs Iref i chip
Okablowanie - interfejs Iref i chip
Okablowanie - interfejs Iref i chip
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

Okablowanie - komponenty dźwiękowe
Okablowanie - komponenty dźwiękowe
Okablowanie - komponenty dźwiękowe
Okablowanie - komponenty dźwiękowe
Okablowanie - komponenty dźwiękowe
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

Okablowanie - gniazdo audio
Okablowanie - gniazdo audio
Okablowanie - gniazdo audio
Okablowanie - gniazdo audio
Okablowanie - gniazdo audio
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

Okablowanie - zasilanie do deski do krojenia chleba
Okablowanie - zasilanie do deski do krojenia chleba
Okablowanie - zasilanie do deski do krojenia chleba
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

Okablowanie - linie danych
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

Opcjonalne diody LED
Opcjonalne diody LED
Opcjonalne diody LED
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

Kod!
Kod!
Kod!
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

Sprawdź to!
Sprawdź to!
Sprawdź to!
Sprawdź 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

Korzystanie z własnych plików MIDI - program do konwersji
Korzystanie z 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

Konwersja plików MIDI
Konwersja plików MIDI
Konwersja plików MIDI
Konwersja plików MIDI
Konwersja plików MIDI
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

Korzystanie z przekonwertowanego pliku MIDI
Korzystanie z przekonwertowanego pliku MIDI
Korzystanie z przekonwertowanego pliku MIDI
Korzystanie z przekonwertowanego pliku MIDI
Korzystanie z przekonwertowanego pliku MIDI
Korzystanie z 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

Płetwa!
Płetwa!

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: