Floppymusic - more than sectorreading

Vorwort:

Zunächst mal ist zu sagen, das wir nur ein bereits publiziertes Projekt weiterprogrammiert haben. Die Links zu dem Orignalprojekt füge ich unten der Seite mit bei.

broken heart Das Team:

Paul Reichel - Linuxnutzer, RasperryPI-Bastler zudem C++ Kenntnisse
Sebastian Schlichter - Technikbegeisterter Programmierer und hobby-Komponist 

Einer Schrieb die Funktionen und der andere Komponierte die Stücke passend um 

Die Idee:

Man hat ein funktionierendes Grundgerüst bekommen, wiso sollte man das nicht ein bischen ausbauen? 

 

Funktionsweise:

Ein Computerprogramm sendet mit der richtigen Frequenz Steuersignale an den Stellmotor (und dabei ist eigentlich egal, ob es sich um einen Laser, ein Diskettenlaufwerk, einen Drucker usw. handelt). Durch diese schnellen Steuersignale vibriert der Schrittmotor und gibt einen Ton von sich.

Grundsätzlich bekommt der Stellmotor nur 2 Signale:

  • Direction --> in welche Richtung
  • Step --> ein Schritt in besagte Richtung

so ist es möglich die Noten in 2 Richtungen zu spielen. Je nach Spielgeschwindigkeit ändert sich die Schrittweite und man muss schauen das man noch genug Platz für die nächste Note hat.

 

Anschluss:

Der RasperryPI erzeugt genug Strom für die Steuersignale, aber nicht für den Antrieb. Das Diskettenlaufwerk haben wir mit einem Netzteil (für IDE <--> USB Adapter) mit 5v versorgt. Die Masse haben wir an eine GPIO-Masse vom PI verbunden. Ein Jumper verbindet am Diskettenlaufwerk "Drive Sel. B" mit Masse, so dass sich das Laufwerk angesprochen fühlt. Zudem wird "Step" und "Direction" vom Diskettenlaufwerk mit der GPIO verbunden. Optional haben wir den Pin Für Mottor per GPIO verbunden, so dass eine eingelegte Diskette auch angetrieben wird.

Das Programm:

Das Programm ist in C++ geschrieben und auf dem Pi mit g++ Kompiliert. Es bindet die WiringPI-Bibliotheken mit ein. In dem Programm sind die Noten bestimmten Frequenzen zugeordnet. Jedes Lied ist eine eigene Funktion, inder die Abspielfunktion und die Note mit Länge übergeben ist. Zudem gibt es eine "Note" welche die Spielrichtung umschaltet und eine weitere die eine Pause einbaut.

 

Die Programm(weiter)entwickelung:

Zunächst mal mussten die Grundlagen verstanden werden - nicht ganz einfach wenn man nur einen Schaltplan und das dazugehörige Programm hat. Darauf gefolgt wurde eine Funktion geschrieben, welche den Stellmotor in eine Grundposition (vorn oder hinten) bringen kann.

Als wir den Refrain des Imperialmarsch weiter einprogrammierten, stieß der Schreibkopf einfach hinten an. Also musste eine Richtungsumkehr eingebaut werden. Nach dem Umkehrbefehl stießen wir an eine neue Hürde: Ist genug Platz in der aktuellen Laufrichtung für die Folgenoten? Und haben die wiederrum darauf folgenden Noten genug Spielweite? Wir schätzten in etwa ab, bei welcher Spielgeschwindigkeit, wieviele Noten gespielt werden können. Aber einige Noten brauchen mehr Platz wie andere. Wir verzichteten also auf eine Funktion zur Spielrichtungsberechnung und Komponierten die Songs ein. Dabei sind die Richtungswechsel Fixe "Noten" in der Playlist. Später schrieben wir noch ein kleines Menü dazu.

Aufbau und der "Tetris" Song

 

 Ein weiterer Song: "The Imperial Marsch"

 

Das Orignalprojekt:

Tutorial: How to Make Music with a Raspberry Pi and a Floppy Drive


Author: "DOMJ"

Blog:  http://domj.happyforever.com/?p=99&lang=en
Script: https://www.raspberrypi.org/forums/viewtopic.php?f=41&t=69947​