Inhaltsverzeichnis:

Retro-Soundchip mit einem Arduino - der SAA1099 - Gunook
Retro-Soundchip mit einem Arduino - der SAA1099 - Gunook

Video: Retro-Soundchip mit einem Arduino - der SAA1099 - Gunook

Video: Retro-Soundchip mit einem Arduino - der SAA1099 - Gunook
Video: Retro music box with Arduino and SAA1099 2024, November
Anonim
Image
Image
Verkabelung - SAA1099
Verkabelung - SAA1099

In diesem anweisbaren zeige ich Ihnen, wie Sie ein Arduino Uno mit einem Vintage-Sound-Synthese-Chip verwenden, um Midi-Dateien in quadratischer wellenförmiger Güte abzuspielen!

Wenn Sie nur einen schnellen Überblick über die Aufgaben dieses Projekts erhalten möchten, sehen Sie sich das obige Video an. Ansonsten weiter so!

Schritt 1: Video

Image
Image

Wenn Sie alle Ihre Anweisungen in klaren, prägnanten Videos bevorzugen, sind Sie bei uns genau richtig!

Für den Rest von uns können Sie mit etwas mehr Details und schriftlichen Anweisungen fortfahren.

Schritt 2: Teile und Materialien

Dafür benötigst du diese Dinge:

(Die Links sind für eBay-Artikel)

  • Ein Arduino (Uno, Nano, Leonardo, sie sollten alle funktionieren)
  • Mindestens ein mittelgroßes Steckbrett
  • Der SAA1099-Stereo-Sound-Generator-Chip
  • Steckbrett-Überbrückungsdrähte (Alternativ verwende ich gerne Dupont-Buchsen-zu-Buchse-Jumper, mit 20-mm-Stiftstiften an beiden Enden - viel stabiler)
  • 8Mhz TTL Oszillator (AliExpress Link wie von Zweigelt bereitgestellt)
  • Stereo- (oder Mono-) Audiobuchse
  • 2 x 1K Widerstände (Lot von 100)
  • 1 x 10K Widerstand (Lot von 50)
  • 2 x 100pF Kondensatoren
  • (Optional) Einige LEDs, mindestens 1 (jede Farbe, hier sind 100 verschiedene Farben für einen Dollar!)

Bei Verwendung der angegebenen Links betragen die Gesamtkosten 23,25 USD, einschließlich Versand. Das meiste kommt natürlich aus der halben Welt, daher dauert der Versand in der Regel etwa einen Monat. Wenn Sie einen schnelleren Versand wünschen, müssen Sie wahrscheinlich etwas mehr bezahlen.

Schritt 3: Verkabelung - SAA1099

Verkabelung - SAA1099
Verkabelung - SAA1099
Verkabelung - SAA1099
Verkabelung - SAA1099

Wenn Schaltpläne dein Ding sind, dann bist du hier! Der Rest von uns kann entweder Schritt für Schritt durchgehen oder sich das Video ansehen.

  • Platzieren Sie den SAA1099 am Ende des Steckbretts, wobei die Kerbe auf dem Chip zum Ende zeigt.
  • Nun, Macht. VDD (Pin 18) am SAA1099 geht an Spannung, dann Pin VSS (Pin 9) an Masse.
  • Als nächstes legen Sie einen Draht zwischen CS (Pin 2) und Masse, um ihn niedrig zu halten

Ich würde auch empfehlen, einen Blick auf das Datenblatt zu werfen, das ich angehängt habe.

Schritt 4: Verdrahtung - TTL-Oszillator

Verkabelung - TTL-Oszillator
Verkabelung - TTL-Oszillator
Verkabelung - TTL-Oszillator
Verkabelung - TTL-Oszillator
  • Wir platzieren den TTL-Oszillator auf dem Steckbrett neben dem Steckbrett, so dass der Taktausgangspin am nächsten zum Takteingang des SAA1099 (Pin 8) liegt.
  • Sie können fortfahren und Strom und Masse an den TTL-Oszillator anschließen. (Ich habe bis später in meinem Video gewartet, daher habe ich kein Bild). Das obige Bild zeigt, welche Pins welche sind.

Schritt 5: Verdrahtung - Iref und Chip-Schnittstelle

Verkabelung - Iref- und Chip-Schnittstelle
Verkabelung - Iref- und Chip-Schnittstelle
Verkabelung - Iref- und Chip-Schnittstelle
Verkabelung - Iref- und Chip-Schnittstelle
  • Schließen Sie den 10K-Widerstand zwischen Iref (Pin 6) und 5V an.
  • Verbinden Sie den digitalen Pin 8 mit WR (Pin 1) am SAA1099.
  • Verbinden Sie den digitalen Pin 9 mit A0 (Pin 3) des SAA1099.

Schritt 6: Verkabelung - Soundkomponenten

Verkabelung - Soundkomponenten
Verkabelung - Soundkomponenten
Verkabelung - Soundkomponenten
Verkabelung - Soundkomponenten
Verkabelung - Soundkomponenten
Verkabelung - Soundkomponenten
  • Schließen Sie einen 100pF-Kondensator zwischen OUTR (Pin 4) und GND. an
  • Schließen Sie einen 1K-Widerstand zwischen OUTR (Pin 4) und 5V. an
  • Wir machen dasselbe für OUTL (Pin 5)
  • Schließen Sie einen 100pF-Kondensator zwischen OUTL (Pin 5) und GND. an
  • Schließen Sie einen 1K-Widerstand zwischen OUTL (Pin 5) und 5V. an

Notiz! Stellen Sie sicher, dass sich keine der Drähte von den Widerständen / Kondensatoren berühren, sonst funktioniert das Zeug nicht und könnte (vorläufig) möglicherweise in Ihr Gesicht explodieren.

Schritt 7: Verkabelung - Audiobuchse

Verkabelung - Audiobuchse
Verkabelung - Audiobuchse
Verkabelung - Audiobuchse
Verkabelung - Audiobuchse
Verkabelung - Audiobuchse
Verkabelung - Audiobuchse
  • Verbinden Sie ein kleines Überbrückungskabel zwischen 5V und einer leeren Reihe auf dem Steckbrett.
  • Platzieren Sie Ihre Audiobuchse so, dass der Jumper von 5V mit dem "Sleeve"-Pin der Audiobuchse verbunden ist
  • Verbinden Sie L und R (oder Audio-Pin, wenn Sie eine Mono-Buchse haben) mit den Pins OUTL (Pin 5) bzw. OUTR (Pin 4) des SAA1099.

Notiz! Bei Mono-Audiobuchsen ist es wirklich egal, was geht, solange ein Pin mit 5V und einer mit OUTL oder OUTR verbunden ist. Es wird gut klingen. Wenn dies nicht der Fall ist, sollten Sie in diesem Fall Ihre Verkabelung erneut überprüfen.

Schritt 8: Verkabelung - Strom zum Steckbrett

Verkabelung - Strom zum Steckbrett
Verkabelung - Strom zum Steckbrett
Verkabelung - Strom zum Steckbrett
Verkabelung - Strom zum Steckbrett
  • Verbinden Sie beide Seiten des Breadboard-Strombusses miteinander, indem Sie Überbrückungsdrähte verwenden.
  • Verbinden Sie eine Seite mit den 5V- und GND-Pins des Arduino und stellen Sie sicher, dass Sie die Drähte nirgendwo verwechselt haben. Wenn Sie dies getan haben, kann der magische Rauch entweichen.

Schritt 9: Verkabelung - Datenleitungen

Verkabelung - Datenleitungen
Verkabelung - Datenleitungen

Verbinden Sie D0 bis D7 am Arduino mit D0 (Pin 10) bis D7 (Pin 17) am SAA1099 der Reihe nach

Ich finde, dass DuPont weiblich-weiblich Überbrückungsdrähte mit 15-20MM Header-Pins an beiden Enden viel besser funktionieren als die männlich-männlichen Dupont-Drähte. Außerdem können Sie sie auch als weiblich-weiblich oder männlich-weiblich verwenden. Beide sind bei eBay in großen Mengen leicht zu finden, für kleine Mengen an Wechselgeld. Ein gutes Weihnachtsgeschenk für den aufstrebenden Arduino-Junkie!

Schritt 10: Optionale LED(s)

Optionale LED(s)
Optionale LED(s)
Optionale LED(s)
Optionale LED(s)

Ich werde nicht Schritt für Schritt durchgehen, wie man hier alles baut, aber es gibt mehrere gute Orte, um LEDs hinzuzufügen. Zuerst habe ich eine 3mm rote LED zwischen WR (Pin 1) und GND angeschlossen, um jedes Mal anzuzeigen, wenn das Arduino einen Befehl an den SAA1099 sendet.

Ich habe auch bereits LEDs an die Datenleitungen angeschlossen, sodass Sie die tatsächlichen Binärdaten auf jeder Leitung sehen können. Ich habe dieses Setup in meinem Video "Arduino and SAA1099 - Fireflies" verwendet, sowie 6 weitere LEDs und etwas zusätzlichen Code, um jede LED für jeden aktiven Kanal aufleuchten zu lassen.

Je mehr LEDs, desto cooler sieht es aus!

Schritt 11: Code

Code!
Code!
Code!
Code!

Nachdem Sie die Schaltung erstellt haben, überprüfen Sie die Verbindungen noch einmal! Sie wollen Ihr teures Arduino und Soundchip nicht in die Luft jagen! (Wenn du das tust, gut. Das geht mich nichts an)

Vorausgesetzt, Sie sind gesund und haben alles überprüft, können wir mit der Programmierung beginnen.

  • Die Bibliothek ist unter
  • Sie benötigen die Datei SAATunes.zip, also fahren Sie fort und laden Sie sie herunter.
  • Öffnen Sie nun die Arduino-IDE.
  • Klicken Sie unter "Skizze", "Bibliothek einschließen" auf "ZIP-Bibliothek hinzufügen".
  • Navigieren Sie dorthin, wo Sie die SAATunes-Bibliothek heruntergeladen haben. (Es ist mir egal, ob es Ihr Desktop, Downloads oder (fügen Sie etwas peinliches) Ordner - einfach finden)
  • Wählen Sie es aus und klicken Sie auf "Öffnen"
  • Es sollte Ihnen mitteilen, dass es zu Ihren Bibliotheken hinzugefügt wurde.

Schritt 12: Testen Sie es

Probier es aus!
Probier es aus!
Probier es aus!
Probier es aus!
  • Öffnen Sie das SAATunes-Beispielprogramm unter "Datei", "Beispiele", "SAATunes", "SAATunes-Uno".
  • Stecken Sie Ihr Arduino in den Computer und in eine Art Lautsprecher.
  • Laden Sie das Programm auf den Arduino hoch.

Sie sollten einen Akkord hören, dann Beethovens Wut über einen verlorenen Penny. Wenn Klassik nicht Ihr Ding ist, haben Sie keine Angst, denn wir werden in Kürze lernen, wie Sie MIDI-Dateien unserer Wahl damit verwenden.

Wenn Sie nichts hören, überprüfen Sie einige Dinge: Erstens, ist Ihr Lautsprecher eingeschaltet? Drehen Sie es ganz auf. Ist das Arduino dann wirklich eingeschaltet? Wurde das Programm richtig hochgeladen? Überprüfen Sie die gesamte Verkabelung mit dem Schaltplan und dem Datenblatt und versuchen Sie es dann erneut.

Schritt 13: Verwenden Ihrer eigenen MIDI-Dateien - Konvertierungsprogramm

Verwenden eigener MIDI-Dateien - Konvertierungsprogramm
Verwenden eigener MIDI-Dateien - Konvertierungsprogramm

Bereit, etwas anderes als Beethoven auszuprobieren? Sehr gut, los gehts.

Um MIDI-Dateien in C++ Bytestreams zu konvertieren, benötigen wir ein Programm von Len Shustek. Er ist der Schöpfer der Bibliothek, auf der ich meinen Code basiert, und meine Bibliothek verwendet dasselbe Bytestream-Format wie er.

  • Sie finden das Programm unter
  • Das gewünschte Programm ist "miditones.exe". Fahren Sie fort und laden Sie das herunter.

Schritt 14: Konvertieren von MIDI-Dateien

Konvertieren von MIDI-Dateien
Konvertieren von MIDI-Dateien
Konvertieren von MIDI-Dateien
Konvertieren von MIDI-Dateien
Konvertieren von MIDI-Dateien
Konvertieren von MIDI-Dateien

Warnung! Hier gibt es ASCII-Drachen! Vielleicht finden Sie es einfacher, sich das Video anzusehen, in dem Sie genau sehen können, wovon ich spreche. Wenn Sie es wagen, einzutreten, dann fahren Sie fort!

Um das Konvertierungsprogramm von MIDI in Bytestream zu verwenden, müssen Sie ein Eingabeaufforderungsfenster öffnen. Entschuldigung für Mac- und Linux-Benutzer, möglicherweise müssen Sie eine Problemumgehung finden.

  • Öffnen Sie das Startmenü, geben Sie "CMD" ein und drücken Sie die Eingabetaste.
  • Wir werden jetzt ein wenig MS-DOS-Magie lernen. Navigieren Sie mit dem Befehl "CD" dorthin, wo Sie die Datei "miditones.exe" heruntergeladen haben. In den meisten Fällen lauten die Befehle "cd downloads".
  • Führen Sie das Programm "miditones.exe" aus, indem Sie "miditones" eingeben. Es sollte Ihnen eine Hilfeliste mit den gebräuchlichsten Befehlen anzeigen.

Jetzt brauchen wir eine MIDI-Datei zum Konvertieren. Finde einen irgendwo im Internet, am besten ohne Percussion oder irgendwelche Spezialeffekte außer Instrumenten/Geschwindigkeit. (Wenn Sie nicht wissen, was das ist, machen Sie sich keine Sorgen, es wird Ihnen gut gehen)

  • Laden Sie Ihre MIDI-Datei an den gleichen Ort herunter, an dem Sie das Programm "miditones" haben.
  • Geben Sie nun im Eingabeaufforderungsfenster "miditones -d -v [Dateiname]" ein (Ersetzen Sie [Dateiname] durch den Namen Ihrer MIDI-Datei).
  • miditones generiert eine. C-Datei mit dem C++-Bytestream im selben Ordner mit demselben Namen wie die MIDI-Datei.

Schritt 15: Verwenden Ihrer konvertierten MIDI-Datei

Verwenden Ihrer konvertierten MIDI-Datei
Verwenden Ihrer konvertierten MIDI-Datei
Verwenden Ihrer konvertierten MIDI-Datei
Verwenden Ihrer konvertierten MIDI-Datei
Verwenden Ihrer konvertierten MIDI-Datei
Verwenden Ihrer konvertierten MIDI-Datei

Nachdem Sie Ihre MIDI-Datei nun konvertiert haben, füttern wir sie in kleinen Bytes an das Arduino!

  • Angenommen, Sie haben das SAATunes-Uno-Beispiel bereits geöffnet, gehen wir weiter und "speichern unter" etwas anderes, damit wir es bearbeiten können.
  • Wenn Sie es gespeichert haben, klicken Sie auf das kleine "Pfeil nach unten"-Symbol in der oberen rechten Ecke.
  • Klicken Sie auf "Neuer Tab" und nennen Sie es "[name].h" (Ersetzen Sie [name] durch den Namen Ihres MIDI-Songs oder was auch immer Sie wollen)
  • Öffnen Sie nun die. C-Datei, die Miditones zuvor erstellt hat. Sie können es mit Notepad öffnen.
  • Verwenden Sie STRG/A, um alles auszuwählen, und kopieren Sie es dann.
  • Fügen Sie es in Ihren neuen "[name].h"-Tab im Arduino-Editor ein.

Hier ist alles gut, also kommen wir zurück zum Programm.

  • Suchen Sie nach der Stelle, an der "#include "RagePenny.h"" steht, und kopieren Sie sie und fügen Sie sie in eine neue Zeile darunter ein.
  • Ändern Sie "RagePenny.h" in einen beliebigen Namen für Ihre neue Datei.
  • Kommentieren Sie nun "#include "RagePenny.h"" aus, indem Sie davor zwei Schrägstriche (//) hinzufügen.
  • Laden Sie das Programm hoch!

Wenn alles gut gelaufen ist, sollte es Ihre eigene MIDI-Datei abspielen. Wenn nicht, überprüfen Sie erneut, ob die Namen des neuen Tabs und der Name, den Sie in "#include "RagePenny.h"" geändert haben, identisch sind. Überprüfen Sie die anderen Schritte und stellen Sie sicher, dass Sie alles richtig gemacht haben. Einige MIDI-Dateien funktionieren einfach nicht, aber diese sind selten.

Schritt 16: Flosse

Flosse!
Flosse!

Hoffentlich ist bei Ihnen alles gut gegangen und Sie jammen zu MIDI-Dateien auf einem alten Stück Technologie, das zu neuem Leben erweckt wurde!

Wenn Sie es jedoch nicht sind, geben Sie nicht auf! Senden Sie mir einen Kommentar, und ich helfe Ihnen gerne. Natürlich könnt ihr mir gerne Anregungen in den Kommentaren geben.

Fröhliche Chiptunes!

Empfohlen: