Floppy-Musik mit Arduino – inkl. Midi-Unterstützung

Eine kleine Bastelei zwischendurch: Floppy-Music-Drive!

Inspiriert durch dieses Video und diese bei den Pin-Belegungen etwas unklare Anleitung entstand hier nun meine Anleitung.

Benötigt werden:

Material

  1. ein oder mehrere 3,5″ Floppy-Laufwerke
  2. ein Arduino (Uno, Nano…)
  3. eine 5 Volt-Stromversorgung
  4. ein paar Kabel (zum Stecken oder Anlöten)

Software

  1. Moppy von Sammy1Am
  2. TimerOne Bibliothek für den Arduino

Die Hardware ist wie folgt zu „verkabeln“:

3,5″ Floppy Laufwerk(e) mit Blick auf die Rückseite. Die Nummern stellen die Pin-Nummern der Buchse dar. Die Stromversorgung links im Bild kann entweder über ein altes PC-Netzeil erfolgen oder einfach über eine andere beliebige 5 Volt-Stromquelle: rot = +5 Volt. scharz = Masse. Das gelbe Kabel (12 Volt) wird nicht benötigt!

floppyMK1800x600numeriert
3,5″ Floppy Laufwerk Pinbelegung

Verkabelung mit Arduino Uno:

3,5" Floppy Laufwerk verkabelt
3,5″ Floppy Laufwerk verkabelt

Wichtig:
Die Masse (GND) vom Arduino und vom Floppylaufwerk müssen miteinander verbunden werden! Sprich: Die Masse des Stromversorgung-Steckers des Laufwerks links im Bild (schwarzes Kabel) mit der Masse des Arduino (graues Kabel rechts im Bild). Ansonsten erkennt die Floppy die Signale nicht!

Außerdem müssen Pin 12 und 13 miteinander verbunden werden. Pin 12 ist nämlich „Drive Select“. Er muss mit Masse – also irgendeinem Pin der Reihe unten – verbunden werden, damit das Laufwerk überhaupt angesprochen werden kann. Wenn man noch einen Jumper herum liegen hat, kann man auch einfach Pin 12 und 11 verbinden. Das ist völlig egal.

Pro Midi-Stimme wird das Signal auf eine Floppy ausgegeben, es kann daher sein, dass sich beim Anschluss mehrerer Floppies nicht immer jeder Schrittmotor / Lesekopf bewegt.

Zum Anschluss mehrerer Laufwerke einfach die Digital-Pins des Arduinos der Reihe nach anschließen. Wie oben abgebildet. Also z.B.:
Floppy 1 an Pin 2 und 3
Floppy 2 an Pin 4 und 5
Floppy 3 an Pin 6 und 7
usw…

Die Pins an der Floppy sind immer Pin 20 und 18! Die analogen Pins des Arduinos können auch verwendet werden, damit käme man dann auf neun Laufwerke für den Arduino Uno.

Nun den Arduino mit der Moppy Software flashen (uploaden) und per USB am Mac / PC angeschlossen lassen – denn die Musik wird als Midi-Datei am Computer geladen und seriell über den USB-Port an den Arduino live übertragen und abgespielt!

Für die Software haltet ihr euch am besten an die Installationsanleitung der Software. Ich musste unter Mac OS X die Java NetBeans IDE zum compilen nutzen. An der Konsole allein bekam ich es nicht kompiliert. Es fehlte die Swing-Library und da ich mit Java bisher nichts gemacht habe, hielt ich mich bequem an die GUI.

Das Starten der MoppyDesk Software lief daher unter Mac OS X nicht in der IDE, da hier Windows-Pfade zur Laufzeit eingetragen waren. Wichtig ist, dass beim Aufruf die serielle Bibliothek librxtxserial.lib beim Programmstart gefunden wird. Ich habe es auf der Konsole im Verzeichnis dist wie folgt aufgerufen:

java -jar MoppyDesk.jar -Djava.library.path=/pfad/zur/seriellen/bibliothek/

Das war’s. Bei mir funktionierte die Tetris-Melodie zum Testen recht gut, die beim Moppy-Projekt mitgeliefert wird (Verzeichnis Java/MoppyDesk/samplesongs).

Achtung:
Kopiert man gemäß README unter Mac OS X die Datei librxtxserial.lib nach /Library/Java/Extensions, so funktioniert die Arduino-IDE nicht mehr! Siehe Hinweis hier!

Ach ja, und bekommt ihr eine Fehlermeldung mit „…no matching architecture…“ beim Start der Applikation auf dem Mac, so habt ihr – modern wie es sich gehört – ein 64 Bit-System. Aber die bei Moppy mitgelieferte serielle Bibliothek ist nicht für 64 Bit compiled. Als Lösung gibt es hier die passende Bibliothek.

Viel Spaß beim Bastelen!

PS.: Jetzt, wo meine Anleitung fertig ist, habe ich noch diese prima Video-Anleitung gefunden, in der das Ganze auch sehr gut erklärt wird.

 

[11383 Aufrufe]

Ähnliche Beiträge

7 Gedanken zu „Floppy-Musik mit Arduino – inkl. Midi-Unterstützung“

  1. Hi Alfred, sorry für die späte Antwort. Pin 12 ist „Drive Select“. Er muss mit Masse – also irgendeinem Pin der Reihe unten – verbunden werden, damit das Laufwerk überhaupt angesprochen werden kann. Text wie gleich oben korrigiert.

  2. Hi ich habe auch nochmal eine Frage. Also in diesem Tutorial auf YouTube verbindet er den Ground ( z.b. PIN 19) nicht mit dem Ground des Steckers von der Stromversorgung. Geht das trotzdem wenn ichs nicht mache…?!

    MFG

    1. Hi André,

      kann klappen, muss es aber nicht. Wenn man zwei verschiedene Stromversorgung hat (eine beim Arduino und eine für die Floppy), müssen („sollten“) die Leitungen immer verbunden werden, damit die Masse den füglichen Bezugspunkt für die HIGH-LOW-Pegel hat.

      Wenn es die gleiche Stromversorgung ist, sind die Massen automatisch miteinander verbunden. :-)

      Kaputt gehen kann beim Weglassen der Verbindung nichts, es kann höchstens sein, dass die Floppy die HIGH-Signale des Arduino nicht erkennt und es nicht funktioniert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.