Inhaltsverzeichnis:

Lassen Sie uns einen SN76489 USB-MIDI-Synth mit Arduino Nano bauen - Gunook
Lassen Sie uns einen SN76489 USB-MIDI-Synth mit Arduino Nano bauen - Gunook

Video: Lassen Sie uns einen SN76489 USB-MIDI-Synth mit Arduino Nano bauen - Gunook

Video: Lassen Sie uns einen SN76489 USB-MIDI-Synth mit Arduino Nano bauen - Gunook
Video: FPGA audio – OPL-like FM operator synthesis ! 2024, Juli
Anonim
Image
Image
Lassen Sie uns einen SN76489 USB-MIDI-Synth mit Arduino Nano bauen
Lassen Sie uns einen SN76489 USB-MIDI-Synth mit Arduino Nano bauen
Lassen Sie uns einen SN76489 USB-MIDI-Synth mit Arduino Nano bauen
Lassen Sie uns einen SN76489 USB-MIDI-Synth mit Arduino Nano bauen

Wollten Sie schon immer Ihren eigenen Synthesizer bauen, der auf alten Chiptunes aus den 80ern basiert? Spielen Sie einfache polyphone Melodien, die genau so klingen, wie diese alten Sega Master System- und Megadrive-Videospiele klangen?

Ich habe also ein paar SN76489-Chips von ebay und ein Midi-Host-Interface bestellt und es ausprobiert. Nun, es war kein Spaziergang im Park für mich, aber ich habe jeden Moment genossen.

Zuerst habe ich gelernt, wie man den SN76489 direkt anschließt und damit Lärm macht. Es gab einige verwirrende Elemente, aber mit Hilfe von The Oddbloke Geek Blog und einigen anderen Beispielen konnte ich zusammen mit dem Chipspezifikationsdokument eine einfache Arduino-Bibliothek entwickeln.

Als nächstes musste ich lernen, wie man eine Midi-Tastatur mit einem USB-Mini-Host-Shield verbindet. Dies war nicht so schwer, da einige Dokumentationen verfügbar sind und es gute Bibliotheken mit klaren Beispielen gibt.

Nachdem ich verstanden hatte, wie man den Chip steuert und wie ich meine USB-Midi-Tastatur anschließe, musste ich nur noch einen Code schreiben, der all dies zusammenfasst und es mir ermöglicht, die Tastatur zur Steuerung des Chips zu verwenden.

Unterwegs habe ich gelernt, dass Klänge mit einer niedrigeren Frequenz als die, die ich für 0x2f-Midinoten zu erzeugen versuchte, nicht richtig klangen und erlauben Sie auch, Noten mit einem orientalischen arabischen Touch für alles unter Midi 0x28 zu spielen.

Rückblickend hat es sehr viel Spaß gemacht und war sehr interessant zu bauen.

Ich hoffe, Sie finden es genauso lustig und interessant wie ich und wenn Sie selbst eines bauen, wären Sie so freundlich, ein paar Bilder davon zu teilen.

Wenn Ihnen dieses Projekt gefallen hat, stimmen Sie unten dafür ab, um den Wettbewerb zu gewinnen, an dem es teilnimmt

Lieferungen

Ich habe Links zu Material hinzugefügt, das Sie für dieses Projekt kaufen können, aber Sie könnten viele verfügbare Artikel finden, die Sie von alter Elektronik abkratzen können.

Diese Links sind Affiliate-Links. Wenn Sie also nach dem Anklicken kaufen, erhalte ich einen kleinen Teil (kein Vermögen) und Sie erhalten ein Produkt, das für dieses Projekt geeignet ist. Es fallen keine Gebühren oder zusätzliche Kosten für die Verwendung an, Sie können jedoch ähnliche Artikel finden, die diese ziemlich einfach ersetzen können.

ebay.us/svA4z4 | 1 x Leistungsplatine

ebay.us/ZyEFNp | 1 x Arduino-Nano

ebay.us/t1zy0v | 1 x USB-Mini-Schild

ebay.to/2QrHl1C | 1 x SN76489 Soundchip

ebay.us/aaaj8p | 1 x Schieberegister 595

ebay.us/DSvTHO | 1 x Quarzoszillator von 4MHz

ebay.us/XQeM0Q | 1 x 5V Spannungsregler 7805

ebay.us/6R6Fpf |1 x Kühlkörper für den Spannungsregler

ebay.us/xkLbn4 | 3 x 10uF Kondensatoren

ebay.us/pnm2BH | Drähte

ebay.us/PMbUfY | 1 x rote LED für Power

ebay.us/zokHtc | 1 x 220 Ohm Widerstand zur Begrenzung des LED-Stromflusses

ebay.us/qjbesJ | 1 x Stromanschluss für 12V Netzteil

ebay.us/cS0wwv |1 x Ein-/Ausschalter

eine passende Kiste (ich habe meine aus einer alten Schublade gebaut, die jahrelang in meinem Lager lag)

Schritt 1: Vorbereiten des USB-Mini-Host-Shields zum Ansteuern eines 5-V-Midi-Geräts

Vorbereiten des USB-Mini-Host-Shields zum Ansteuern eines 5-V-Midi-Geräts
Vorbereiten des USB-Mini-Host-Shields zum Ansteuern eines 5-V-Midi-Geräts

Da die USB-Mini-Host-Abschirmung mit 3,3 V arbeitet und die von mir verwendeten USB-Midi-Tastaturen 5 V benötigen, muss die Ausgangsspannung der Abschirmung angepasst werden, indem die 3,3-V-Leitung, die zum USB-Ausgang Vcc führt, durchgeschnitten wird, damit wir sie später anschließen können auf 5V.

Es gibt viele Tutorials dazu und es stellte sich als recht einfach heraus:

Schneiden Sie einfach die Leitung zwischen dem 2k2-Widerstand und der Vcc-Leitung ab (siehe beiliegendes Bild). Ich habe einen Schraubendreher verwendet, um diese Leitung zu zerkratzen und getestet, ob sie mit einem Durchgangsmesser funktioniert.

Schritt 2: Verbinden Sie das USB Mini Shield mit Ihrem Arduino Nano

Verbinden Sie das USB Mini Shield mit Ihrem Arduino Nano
Verbinden Sie das USB Mini Shield mit Ihrem Arduino Nano
Verbinden Sie das USB Mini Shield mit Ihrem Arduino Nano
Verbinden Sie das USB Mini Shield mit Ihrem Arduino Nano

Zum Glück gibt es viele Informationen dazu, also bin ich beim Googeln nach "Arduino Nano und Mini-USB-Host-Shield" auf diesen Thread gelandet

Es beschrieb, wie das USB-Mini-v2.0-Shield angeschlossen wird, und nachdem ich es befolgt hatte, ging ich direkt los, um einige USB-Midi-Beispiele zu testen.

Verdrahtung:

Arduino Host-Schild

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

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

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

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

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

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

3.3V-------------9

Masse -----------3

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

In diesem Thread wurde auch erwähnt, dass das 3,3-V-Kabel abgeschnitten wurde, damit der USB 5 V vom VBUS erhalten kann.

Diese Beschreibung und die beigefügten Bilder stammen aus diesem Thread.

Übrigens, es gibt einen Fehler auf dem Druck auf diesem Board, daher war dies etwas verwirrend, aber Sie können mein Feedback dazu (tyrkelko) sehen und woher ich es gelernt habe.

Schritt 3: Chips jeder? Hinzufügen von SN76489 mit 4MHz Osc. und 595 Schieberegister

Chips jemand? Hinzufügen von SN76489 mit 4MHz Osc. und 595 Schieberegister
Chips jemand? Hinzufügen von SN76489 mit 4MHz Osc. und 595 Schieberegister

Jetzt war es an der Zeit, den Chip hinzuzufügen, der diesen erstaunlichen Klang erzeugt.

Ich habe bereits eine Bibliothek entwickelt, um Arduino mit diesem Chip zu verbinden und musste nur meinen Anweisungen folgen.

Die Bibliothek wird in github unter GPLv3 veröffentlicht (meine erste Open-Source-Version).

github.com/tyrkelko/sn76489

Die Verbindung von 76489 und 595 war wie im beiliegenden Bild, das aus der Datei readme.txt der Bibliothek stammt

Das Write Enable on Low (NotWE) von 76489 wurde mit Pin 3 des Nanos verbunden und kann im Code geändert werden.

#define PIN_NotWE 3

Der 595 wurde wie folgt mit dem Nano verbunden und kann auch durch Editieren der Pin-Nummern angepasst werden:

#define PIN_SER 7

#define PIN_LATCH 6

#define PIN_CLK 5

Der von mir verwendete Oszillator war ein 4-MHz-Quarzoszillator mit 4 Beinen.

Es wurde im Code wie folgt konfiguriert und Sie können seinen Wert an eine beliebige Oszillatorfrequenz zwischen 500 kHz und 4 MHz anpassen:

#define FREQUENZ 4000000.0

Das Anschließen des von mir verwendeten Oszillators war wie folgt:

Pin 1 - nicht verbunden

Pin 7 - Masse

Pin 8 - verbunden mit 76489 Pin 14 - Taktosc

Schritt 4: Einfach Code hinzufügen - Bibliotheken hinzufügen, Code kompilieren und hochladen

Bibliotheken, die in diesem Projekt verwendet werden, müssen der Arduino-IDE wie folgt hinzugefügt werden:

Öffnen Sie die Arduino-IDE

Laden Sie die folgenden Bibliotheken in den Bibliotheksordner Ihrer IDE herunter (hoffentlich finden Sie diese bald im Menü "Bibliotheken verwalten…" im Menü "Tools" der IDE):

github.com/felis/USB_Host_Shield_2.0

github.com/tyrkelko/sn76489

Verwenden Sie den Code aus dem folgenden Github-Projekt:

github.com/tyrkelko/usb_midi_tone

Laden Sie usb_midi_tone.ino herunter, kompilieren Sie und laden Sie es auf Ihren Arduino nano hoch.

Schritt 5: Schließen Sie einen Verstärker und Lautsprecher an, schließen Sie Ihre USB-Midi-Tastatur an und testen Sie

Jetzt ist es Zeit zu testen, ob alles funktioniert.

Dazu brauchen wir:

1. Ein Verstärker und Lautsprecher

2. Eine USB-Midi-Tastatur

Verbinden Sie SN76489 Pin 7, Audioausgang, mit dem Audioeingang des Verstärkers.

Schalten Sie den Verstärker ein und schalten Sie dann das Arduino Nano ein. Sie sollten nun für den Bruchteil einer Sekunde den Einschalttestton hören.

Schließen Sie die USB-Midi-Tastatur an und testen Sie.

Wenn alles richtig funktioniert, sollten Sie 3 Töne gleichzeitig spielen können, und auch 8 Arten von Geräuschen und sogar einen Viertelton von 24 EDO-Scale.

Wenn es nicht funktioniert, gehen Sie die Schritte durch, um zu sehen, was möglicherweise schief gelaufen ist.

Wenn Sie der Meinung sind, dass dies auf unklare Anweisungen zurückzuführen ist, senden Sie mir bitte eine Nachricht, damit ich die Anweisungen aktualisiere, um das Problem zu beheben.

Schritt 6: Schließen Sie den Stromkreis mit einem 5V-Spannungsregler, einem 12V-Anschluss, einem Ein-/Aus-Schalter und einer Power-LED

In diesem Schritt sollten Sie in der Lage sein, die Schaltung zu schließen, nachdem Sie getestet haben, dass sie richtig funktioniert.

1. Fügen Sie einen Leistungsregler mit LM7805 und zwei 10uF-Kondensatoren und 0,1uF hinzu. Es gibt viele Tutorials dazu, Sie können die folgende Anleitung verwenden, um dies zu erreichen -

2. Fügen Sie einen 12-V-Stromanschluss hinzu, wobei der Vcc über einen Ein-/Aus-Schalter geht

3. Fügen Sie eine LED mit einem Begrenzungsstromwiderstand hinzu, um anzuzeigen, wenn die Stromversorgung eingeschaltet ist.

Schritt 7: In eine Schachtel legen, lackieren und Ihren neuen Synthesizer genießen

Sobald die Schaltung getestet ist und nach Ihren Wünschen funktioniert, bleibt nicht mehr viel zu tun, außer ein schönes Gehäuse zu bauen, es mit tollen Farben zu bemalen und etwas Musik zu spielen.

Ich hoffe, es hat Ihnen Spaß gemacht, dieses anweisbare zu lesen, und dass es Sie dazu inspiriert hat, Ihren eigenen Synthesizer zu bauen oder mit einem anderen Projekt, an dem Sie arbeiten, zu beginnen.

Bitte kommentieren Sie unten mit allen Fragen und wenn Sie etwas Ähnliches basierend auf diesem Tutorial gebaut haben, wäre es großartig, wenn Sie teilen würden, was Sie in der "Ich habe das gemacht!" Bereich oder im Feedback-Bereich.

Empfohlen: