Spisu treści:

Zbudujmy syntezator MIDI USB SN76489 z Arduino Nano: 7 kroków
Zbudujmy syntezator MIDI USB SN76489 z Arduino Nano: 7 kroków

Wideo: Zbudujmy syntezator MIDI USB SN76489 z Arduino Nano: 7 kroków

Wideo: Zbudujmy syntezator MIDI USB SN76489 z Arduino Nano: 7 kroków
Wideo: DIY Synthé Arduino, Fx & Sounds Box, Homemade #electronic 2024, Lipiec
Anonim
Image
Image
Zbudujmy syntezator MIDI USB SN76489 z Arduino Nano
Zbudujmy syntezator MIDI USB SN76489 z Arduino Nano
Zbudujmy syntezator MIDI USB SN76489 z Arduino Nano
Zbudujmy syntezator MIDI USB SN76489 z Arduino Nano

Czy kiedykolwiek chciałeś zbudować własny syntezator oparty na starych melodii chipowych z lat 80-tych? Grać w proste polifoniczne melodie, które brzmią tak, jak brzmiały te stare gry wideo Sega Master System i Megadrive?

Mam, więc zamówiłem kilka chipów SN76489 z ebay i interfejs hosta midi i dałem mu szansę. Cóż, dla mnie to nie był spacer po parku, ale cieszyłem się każdą chwilą.

Najpierw nauczyłem się, jak bezpośrednio łączyć SN76489 i robić z nim trochę hałasu. Było w tym trochę mylących elementów, ale z pomocą The Oddbloke Geek Blog i kilku innych przykładów, wraz z dokumentem specyfikacji chipów, udało mi się stworzyć prostą bibliotekę arduino.

Następnie musiałem nauczyć się, jak połączyć klawiaturę midi z osłoną hosta mini USB. Nie było to takie trudne, ponieważ jest dostępna dokumentacja i istnieją dobre biblioteki z jasnymi przykładami.

Kiedy zrozumiałem, jak sterować chipem i jak łączyć moją klawiaturę USB midi, jedyne, co pozostało do zrobienia, to napisać kod, który zawija to wszystko razem i pozwala mi używać klawiatury do sterowania chipem.

Po drodze dowiedziałem się, że dźwięki o częstotliwości niższej niż te, które próbowałem wygenerować dla dźwięków midi 0x2f, nie brzmią dobrze, więc postanowiłem to wykorzystać, aby umożliwić wysyłanie szumu do generatora szumu dla dowolnych dźwięków midi pomiędzy 0x28 a 0x2f a także pozwala na odtwarzanie nut z orientalnym arabskim akcentem dla wszystkiego, co jest niższe niż midi 0x28.

Patrząc wstecz, budowanie było bardzo zabawne i bardzo interesujące.

Mam nadzieję, że uznasz go za równie zabawny i interesujący jak ja, i że jeśli sam go zbudujesz, będziesz na tyle uprzejmy, aby podzielić się z nim kilkoma zdjęciami.

Jeśli podobał Ci się ten projekt, zagłosuj na niego poniżej, aby pomóc wygrać konkurs, w którym bierze udział

Kieszonkowe dzieci

Dodałem linki do materiałów, które możesz kupić do tego projektu, jednak możesz znaleźć wiele dostępnych przedmiotów, które możesz zeskrobać ze starej elektroniki.

Te linki są linkami partnerskimi, więc jeśli dokonasz zakupu po ich kliknięciu, dostanę niewielką część (nie fortunę) i otrzymasz produkt odpowiedni dla tego projektu. Korzystanie z nich nie wiąże się z żadnymi opłatami ani dodatkowymi kosztami, jednak można znaleźć podobne przedmioty, które mogą je dość łatwo zastąpić.

ebay.us/svA4z4 | 1 x tablica wydajności

ebay.us/ZyEFNp | 1 x arduino nano

ebay.us/t1zy0v | 1 x mini osłona USB

ebay.to/2QrHl1C | 1 x układ dźwiękowy SN76489;

ebay.us/aaaj8p | 1 x rejestr przesuwny 595

ebay.us/DSvTHO | 1 x oscylator kwarcowy 4 MHz

ebay.us/XQeM0Q | 1 x regulator napięcia 5V 7805

ebay.us/6R6Fpf |1 x radiator do regulatora napięcia

ebay.us/xkLbn4 | 3 kondensatory 10uF

ebay.us/pnm2BH | przewody

ebay.us/PMbUfY | 1 x czerwona dioda LED zasilania

ebay.us/zokHtc | Rezystor 1 x 220 omów, aby ograniczyć przepływ prądu LED;

ebay.us/qjbesJ | 1 x złącze zasilania do zasilacza 12v

ebay.us/cS0wwv |1 x włącznik/wyłącznik

odpowiednie pudełko (zbudowałem je ze starej szuflady, która przez lata leżała w moim magazynie)

Krok 1: Przygotowanie osłony hosta USB Mini do zasilania urządzenia 5 V Midi

Przygotowanie osłony hosta USB Mini do zasilania urządzenia 5 V Midi
Przygotowanie osłony hosta USB Mini do zasilania urządzenia 5 V Midi

Ponieważ osłona USB mini hosta działa na 3,3 V, a używane przeze mnie klawiatury USB midi wymagają 5 V, należy dostosować napięcie wyjściowe osłony, przecinając linię 3,3 V, która biegnie do wyjścia USB Vcc, więc możemy ją później podłączyć do 5V.

Istnieje wiele samouczków, jak to zrobić i okazało się, że jest to dość proste:

Wystarczy przeciąć linię między rezystorem 2k2 a linią Vcc (patrz załączony obrazek). Użyłem śrubokręta do zarysowania tej linii i sprawdziłem, czy działa z miernikiem ciągłości.

Krok 2: Podłącz mini osłonę USB do Arduino Nano

Podłącz Mini Shield USB do Arduino Nano
Podłącz Mini Shield USB do Arduino Nano
Podłącz Mini Shield USB do Arduino Nano
Podłącz Mini Shield USB do Arduino Nano

Na szczęście jest wiele informacji, jak to zrobić, więc googlując "Arduino Nano i mini USB host shield" wylądowałem w tym wątku

Opisałem, jak podłączyć nakładkę USB mini v2.0, a po jej wykonaniu poszedłem od razu, aby przetestować kilka przykładów midi USB.

Okablowanie:

Osłona hosta Arduino

10--------------5

11--------------6

12--------------7

13--------------8

2----------------2

5V ---------------1

3,3 V --------------9

GND-----------3

RST --------------4

W tym wątku było też wspomniane, że odcięli przewód 3,3V, żeby USB mogło dostać 5V z VBUS.

Ten opis i załączone zdjęcia pochodzą z tego wątku.

BTW, jest błąd na wydruku na tej płycie, więc było to trochę mylące, jednak możesz zobaczyć moje opinie na ten temat (tyrkelko) i skąd się tego nauczyłem.

Krok 3: Ktoś żetony? Dodanie SN76489 z 4MHz Osc. i 595 Rejestr zmian

Żetony Ktoś? Dodanie SN76489 z 4MHz Osc. i 595 Rejestr zmian
Żetony Ktoś? Dodanie SN76489 z 4MHz Osc. i 595 Rejestr zmian

Teraz nadszedł czas, aby dodać chip, który tworzy ten niesamowity dźwięk.

Opracowałem już bibliotekę do interfejsu arduino z tym układem i musiałem tylko postępować zgodnie z moimi instrukcjami.

Biblioteka jest wydana na githubie na licencji GPLv3 (moje pierwsze wydanie open source).

github.com/tyrkelko/sn76489

Połączenie 76489 i 595 było takie, jak na załączonym obrazie, który jest przechwycony z pliku biblioteki readme.txt

Write Enable on Low (NotWE) 76489 został połączony z pinem 3 nano i można go zmienić w kodzie.

#define PIN_NotWE 3

595 został podłączony do nano w następujący sposób i można go również dostosować, edytując numery pinów:

#define PIN_SER 7

#define PIN_LATCH 6

#define PIN_CLK 5

Oscylator, którego użyłem, był oscylatorem kwarcowym 4 MHz z 4 nogami.

Został on skonfigurowany w kodzie w następujący sposób i można dostosować jego wartość do dowolnej częstotliwości oscylatora w zakresie od 500kHz do 4MHz:

#define CZĘSTOTLIWOŚĆ 4000000.0

Podłączenie oscylatora, którego użyłem, wyglądało następująco:

pin 1 - niepodłączony

pin 7 - masa

pin 8 - podłączony do 76489 pin 14 - osc zegara

Krok 4: Po prostu dodaj kod - dodawanie bibliotek, kompilowanie i przesyłanie kodu

Biblioteki używane w tym projekcie należy dodać do Arduino IDE w następujący sposób:

Otwórz Arduino IDE

Pobierz następujące biblioteki do folderu biblioteki swojego IDE (mam nadzieję, że wkrótce zobaczysz je w menu „Zarządzaj bibliotekami…” w menu „Narzędzia”) IDE:

github.com/felis/USB_Host_Shield_2.0

github.com/tyrkelko/sn76489

Użyj kodu z następującego projektu github:

github.com/tyrkelko/usb_midi_tone

Pobierz usb_midi_tone.ino, skompiluj i prześlij do Arduino nano.

Krok 5: Podłącz wzmacniacz i głośnik, podłącz klawiaturę USB Midi i przetestuj

Teraz czas przetestować, czy wszystko działa.

W tym celu potrzebujemy:

1. Wzmacniacz i głośnik

2. Klawiatura midi USB

Podłącz pin 7 SN76489, wyjście audio, do wejścia audio wzmacniacza.

Włącz wzmacniacz, a następnie włącz arduino nano. Powinieneś teraz słyszeć dźwięk testowy uruchamiania przez ułamek sekundy.

Podłącz klawiaturę USB midi i przetestuj.

Jeśli wszystko działa poprawnie, powinieneś być w stanie grać jednocześnie 3 tony, a także zagrać 8 rodzajów szumu, a nawet ćwierć tonu w skali 24 EDO.

Jeśli to nie zadziała, przejrzyj kolejne kroki, aby zobaczyć, co mogło pójść nie tak.

Jeśli uważasz, że wynika to z niejasnych instrukcji, wyślij mi notatkę, aby zaktualizować instrukcje, aby to naprawić.

Krok 6: Uzupełnij obwód za pomocą regulatora napięcia 5 V, złącza 12 V, włącznika/wyłącznika zasilania i diody LED zasilania

Na tym etapie powinieneś być w stanie zamknąć obwód po przetestowaniu, aby działał poprawnie.

1. Dodaj regulator mocy z LM7805 i dwoma kondensatorami 10uF i 0.1uF. Istnieje wiele samouczków na ten temat, możesz użyć następującej instrukcji, aby to osiągnąć -

2. Dodaj złącze zasilania 12 V z Vcc przechodzącym przez włącznik/wyłącznik

3. Dodaj diodę LED z rezystorem ograniczającym prąd, aby wskazać, kiedy zasilanie jest włączone.

Krok 7: Zamknij pudełko, pomaluj i ciesz się nowym syntezatorem

Gdy obwody zostaną przetestowane i będą działać zgodnie z twoimi upodobaniami, nie pozostało już wiele do zrobienia poza zbudowaniem ładnej obudowy, pomaluj ją niesamowitymi kolorami i zagraj trochę muzyki.

Mam nadzieję, że podobało Ci się czytanie tej instrukcji i że zainspirowało Cię to do zbudowania własnego syntezatora lub rozpoczęcia innego projektu, nad którym pracujesz.

Prosimy o komentarz poniżej w przypadku jakichkolwiek pytań, a jeśli zbudowałeś coś podobnego na podstawie tego samouczka, byłoby wspaniale, gdybyś podzielił się tym, co zrobiłeś w "Zrobiłem to!" obszarze lub w dziale opinii.

Zalecana: