Inhaltsverzeichnis:

Midi Record/Play/Overdub mit 5-Pin-Anschlüssen - Gunook
Midi Record/Play/Overdub mit 5-Pin-Anschlüssen - Gunook

Video: Midi Record/Play/Overdub mit 5-Pin-Anschlüssen - Gunook

Video: Midi Record/Play/Overdub mit 5-Pin-Anschlüssen - Gunook
Video: Connecting USB Keyboard/Piano to iPhone & iPad for Recording in GarageBand iOS 2024, November
Anonim
Midi Record/Play/Overdub mit 5-Pin-Anschlüssen
Midi Record/Play/Overdub mit 5-Pin-Anschlüssen

* Verwendet einen ATMega-1284-Chip mit 8 MHz, mit 4 kByte RAM und 4 kByte eeprom

* Verwendet die alten DIN 5-Pin-Anschlüsse

* Ermöglicht Aufnahme und Wiedergabe sowie Overdub: Aufnahme zusammen mit etwas, das Sie zuvor aufgenommen haben.

* Volles Menü

* Möglichkeit zum Benennen und Speichern einer Datei im eeprom

* Bearbeitbare Tempi und Taktarten

* Rudimentäre Quantisierung

Nützlichkeit* Proof of Concept: Sie finden dieses Projekt möglicherweise eine Herausforderung.

Was dieses Tutorial beinhaltet:

* Liste der Einzelteile

* Projektbericht (diesem Panel beigefügt)

Enthält viele Informationen, die Sie über das Projekt wissen müssen

* Link zum C-Code auf GitHub

github.com/sugarvillela/ATMega1284

* Schritt-für-Schritt-Anleitung zum Erstellen des Projekts und Anpassen des Codes

Schritt 1: Teileliste

Liste der Einzelteile
Liste der Einzelteile

Einige Teile habe ich in der Schule vergünstigt bekommen. Einige habe ich in einem Geschäft bekommen und zu viel bezahlt. Wenn Sie Zeit haben, holen Sie sich das alles online.

1 Steckbrett, jedes Modell, ungefähr die gleiche Größe wie das auf dem Einführungsfoto, $20

1 Mikroprozessor, Modell ATMega1284, $5

Dies ist ein vielseitiger Chip mit großartigen Funktionen. Das Datenblatt finden Sie hier:

ww1.microchip.com/downloads/en/devicedoc/atmel-42718-atmega1284_datasheet.pdf

1 5-Volt-Netzteil

1 ATMEL-ICE

Dies ist die Schnittstelle zwischen Ihrem Computer und dem Mikroprozessor. Sie benötigen außerdem eine Codebearbeitungssoftware (eine IDE) und einen Compiler, der C auf die Architektur des ATMega-Chips kompilieren kann. Atmel bietet eine Umgebung, Atmel Studio, die diese Anforderungen erfüllt. Laden Sie es hier herunter:

1 Optokoppler, Modell 6N138 oder gleichwertig, $5

Dies ist für die Eingabe; Der Midi-Standard verlangt, dass Geräte voneinander isoliert sind, um Erdschleifen zu vermeiden. Ich habe den NEC-Äquivalent-Chip mit identischer Pinbelegung verwendet. Siehe das Foto oben für Informationen oder google einfach '6n138 Pinout'. Wenn Sie ein Modell mit unterschiedlicher Pinbelegung verwenden, suchen Sie die entsprechenden Pins (sorgfältig).

2 LCD-Bildschirme, Modell 1602A1, 3 $ pro Stück

Ich habe 2*16 Displays verwendet, d.h. sie haben 2 Zeilen mit jeweils 16 Zeichen Breite. Der Code wurde speziell für diese geschrieben, versuchen Sie also, denselben zu verwenden. Anschlüsse sind: 8 Datenleitungen und 2 Steuerleitungen. Sie können die Datenleitungen zwischen den beiden Bildschirmen teilen, benötigen jedoch jeweils 2 Steuerleitungen, also insgesamt 4 Steuerleitungen. Mein Projekt verwendet Bus C für LCD-Datenleitungen und das obere Nibble von Bus D für Steuerleitungen. Wenn Sie Ihren anders verdrahten, ändern Sie die Ausgangsbusse in Ihrem Code.

1 Lautsprecher

Für Metronom-Ausgang; jeder Lautsprecher wird tun. Sie werden es mit 3-5 Volt Rechteckwellen füttern, also muss es nicht schön klingen. Sie können auch einen externen Verstärker anschließen.

1 Kondensator, um die Rechteckwellenausgabe an den Lautsprecher zu mildern

2 5-polige DIN-Anschlüsse, männlich oder weiblich

Ich habe männliche Kabel verwendet und sie fest mit der Platine verdrahtet. Verwenden Sie für eine elegantere Lösung Buchsenstecker und verbinden Sie männliche Kabel mit anderen Geräten. (Denken Sie daran, dass die Pin-Nummern rückwärts sind, je nachdem, wie Sie den Stecker betrachten!)

Widerstände, 180-330 Ohm, 1k-10kOhm

Möglicherweise müssen Sie mit Widerstandswerten experimentieren, damit der Optokoppler den Eingang schnell genug verfolgt

LEDs

Das Design erfordert eine Diode über dem Opto-Isolator-Eingang, aber eine LED reicht aus. Verwenden Sie eine LED für das Metronom, um im Takt mit dem piependen Lautsprecher zu blinken. Halten Sie mehr LEDs zum Debuggen der Ausgabe bereit, wenn Sie sie benötigen.

Drähte, viele Drähte

20-22 Gauge, massive Drähte, lang, kurz und winzig.

Schritt 2: C-Code

Gehen Sie zu github, um den Code zu erhalten:

* Stellen Sie sicher, dass Sie den Code gelesen und verstanden haben, da Sie ihn möglicherweise ändern müssen, um auf andere Hardware zu passen.

* Der Projektbericht im Intro-Panel enthält detaillierte Beschreibungen der Softwaremodule und deren Zusammenspiel.

* Kein Kopieren und Einfügen. Interagieren Sie mit dem Code; Experiment; umschreiben. Sie können es wahrscheinlich verbessern.

Schritt 3: Erstverkabelung (Hinweise finden Sie auf dem Projektfoto)

Erstverkabelung (Hinweise finden Sie auf dem Projektfoto)
Erstverkabelung (Hinweise finden Sie auf dem Projektfoto)
Erstverkabelung (Hinweise finden Sie auf dem Projektfoto)
Erstverkabelung (Hinweise finden Sie auf dem Projektfoto)

Hinweise zum Projektfoto bevor es los geht

Auf dem Foto ist der Optokoppler der letzte Chip rechts und der Prozessor der große Chip links.

Sie werden zwei andere Chips dazwischen mit einer Reihe von angeschlossenen Widerständen bemerken. Ignoriere sie bitte. Das sind Schieberegister, die in diesem Projekt nicht verwendet werden. Wenn Sie jemals Lust haben, ein LED-Array hinzuzufügen, werden Sie herausfinden, wozu sie dienen.

Das runde schwarze Ding ist der Lautsprecher (ein Piezo-Summer).

Die Schaltflächen befinden sich oben links. Das ist ziemlich weit von Bus A unten rechts auf dem Chip entfernt.

Der linke LCD-Bildschirm ist LCD 0. Der rechte ist LCD 1.

In dieser Anleitung gehe ich davon aus, dass Sie genau das angegebene Teil verwenden (wo immer eine Modellnummer in der Teileliste angegeben ist).

Verdrahten Sie das Netzteil

Das Steckbrett hat Stromschienen an den Rändern und zwischen den Abschnitten. Verwenden Sie kurze Drähte, um alle miteinander zu verbinden und an die Stromversorgung anzuschließen. Jetzt können Sie von überall auf der Platine auf Plus und Masse zugreifen.

Chips

Installieren Sie den ATMega-Chip, achten Sie darauf, die Stifte nicht zu verbiegen (eine gute Vorsicht bei jedem Chip) und stellen Sie sicher, dass er vollständig eingesetzt ist.

Installieren Sie den Optokoppler neben dem Prozessor.

Verdrahten Sie die Stromversorgungsschienen mit den entsprechenden Pins am Prozessor und am Optokoppler.

LCDs

Lesen Sie die mitgelieferte Datei LCDhookup.pdf (unten), um Hilfe beim Anschließen eines LCD zu erhalten.

Jeder Bildschirm hat zwei Stromanschlüsse und drei Masseanschlüsse.

Pin 3 ist ein Helligkeitsregler, der bei falscher Einstellung den Bildschirminhalt unsichtbar macht. Wenn Sie ein Potentiometer zur Hand haben, können Sie damit die Steuerspannung einstellen. Sie können auch Festwiderstände ausprobieren, um die Spannung etwa 1/2 von VCC zu erhalten.

Die Pins 4 und 6 auf LCD 0 sind mit D4 und D5 am Prozessor verbunden. Diese werden verwendet, um den Bildschirm zu aktivieren und zurückzusetzen.

Die Pins 4 und 6 von LCD 1 sind mit D6 und D7 des Prozessors verbunden.

Die Pins 7-17 auf beiden LCDs sind mit C0-C7 des Prozessors verbunden. Dies ist ein gemeinsamer Datenbus. Jeder Bildschirm ignoriert die Daten, bis ein Steuersignal an Pin 4 und 6 ankommt.

Lesen Sie: LCD-Info und weitere Informationen, um zu verstehen, wie die LCD-Bildschirme funktionieren.

Tasten

Verbinden Sie die vier Tasten mit A2-A4 am Prozessor. (Ich habe A1 für den A/D-Wandlereingang offen gelassen, aber nicht verwendet.)

Bei jeder Art von Logikchip schwebt ein nicht verbundener Eingang hoch, was bedeutet, dass der Prozessor an diesem Eingang eine 1 sieht. Um dies zu steuern, müssen Sie die Pins über einen Widerstand mit Masse verbinden. Ich habe die Tasten so verdrahtet, dass sie geerdet sind (durch den Widerstand), wenn sie nicht gedrückt werden, und hoch, wenn sie gedrückt werden. Verwenden Sie dazu einen beliebigen Widerstand von 330 bis 1k.

Alternativ und vielleicht energieeffizienter können Sie die Tasten so verdrahten, dass sie hoch sind, wenn sie nicht gedrückt werden, und niedrig, wenn sie gedrückt werden. Sie müssten den Code (buttonBus.c) ändern, um nach ~PINA anstelle von PINA zu suchen.

Empfohlen: