Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

projektesose17:airplaypublic:start

Projektdokumentation

Einleitung

AIRPLAY ist ein stationärer Roboter, dessen Aufgabe darin besteht, Eigenschaften des Raumes wahrzunehmen und diese dann als Musik auszugeben. Der Ablauf lässt sich dabei in drei Schritte unterteilen:

  1. Aufnahme des Bildes durch die Kameras
  2. Skalierung des Bildes in das gewünschte Format
  3. Umwandlung des Bildes in Musik sowie Ausgabe der Musik

Methodenteil

Überblick über das Gesamtsystem

Gelöste Aufgaben

Bei der Umsetzung des Projektes waren folgende Aufgaben zu lösen:

  • Ansteuerung der Webcam über Processing
  • Ansteuerung der Thermokamera durch den Teensy
  • Ansteuerung des Steppermotors mit Hilfe des Modules
  • Skalierung der Bilder
  • Umwandlung der Webcam- und Thermalkameradaten in Musik

Ausgelassene Aufgabenbereiche

Zu Beginn der Projektplanung bestand die Überlegung die Kamera auf einer Drohne zu montieren. Jedoch ist diese Überlegung relativ schnell verfallen, da die meisten Drohnen nicht die Tragkraft besitzen, um unsere restliche Technik zu tragen und eine selbstgebaute funktionierende Drohne nach den Erfahrungen eines Tutors von der Gruppe p.Falcon aus dem Jahrgang 2014/2015 (https://www.mintgruen.tu-berlin.de/robotikWiki/doku.php?id=projektews1415:p.falkon) ein zu großer Arbeitsaufwand wäre.
Danach war die Überlegung, ob wir die Kamera auf einen Wagen bauen, jedoch waren auch hier Tragfähigkeit und Arbeitsaufwand fraglich, weshalb die Entscheidung auf eine stationäre Variante fiel.
Bei den Sensoren haben wir uns bewusst für nur zwei Sensoren entschieden, da diese für uns am leichtesten zu Bedienen waren und man mit der Webcam schon sehr viele verschiedene Eigenschaften aufnehmen konnte. Weitere Sensoren könnte man bei einer Weiterentwicklung des Roboters verwenden.

Einzelne Abschnitte zur Beschreibung von Details der einzelnen Systembestandteile

Ansteuerung der Hardwarekomponenten

Die einzelnen Hardwarekomponenten sind:

  • Steppermotor (bipolar)
  • Thermalkamera „Melexis90620“
  • Logitech HD Webcam Modell C270

Der Motor und die Melexis werden jeweils von unserem Teensy3.1 gesteuert, während die Webcam über den Laptop und Processing gesteuert wird. Kommen wir nun zu den einzelnen Komponenten:

Steppermotor

Der Steppermotor wird von uns über ein Driver Modul gesteuert, wodurch sich die Steuerung sehr vereinfachen lässt. Anstatt beide Spulen des bipolaren Motors mithilfe einer speziellen Bibliothek zu steuern, müssen wir lediglich Impulse an den Driver geben, der dann die Steuerung der Richtung und der einzelnen Steps übernimmt. Auch die Stromversorgung, ermöglicht durch ein den Bedingungen angepasstes 12V Gleichstrom-Netzteil, wird an den Driver angeschlossen und von ihm an den Motor weitergeleitet.

Thermalkamera „Melexis90620“

Die Ansteuerung der Thermalkamera ist um einiges komplizierter als die Ansteuerung des Motors über den Driver. Um die Daten der Kamera überhaupt auslesen zu können ist eine Schaltung aus mehreren Widerständen und ein Schwingkreis für die Stromversorgung nötig. Um die Kamera steuern und ihre Daten abfragen zu können benutzen wir die im Wiki bereitgestellte Bibliothek. Die noch benötigte „i2c_t3“ Bibliothek hat sich recht einfach im Internet finden lassen. Den Code, um die Daten der Kamera abzufragen findet ihr HIER.

Logitech HD Webcam Model C270

Wie oben bereits erwähnt, wird die Webcam mit Processing angesteuert. Hierbei benutzen wir die Capture-Bibliothek, die von Processing selbst bereitgestellt wird. Mit ihr können wir ganz einfach Bilder von der Webcam abgreifen, speichern und mit diesen nach Belieben weiter arbeiten. In unserem Fall werden sie skaliert und in Musik umgewandelt. Wie das von statten geht erfahrt ihr in den nächsten Abschnitten.

Bildverarbeitung

Die Bildverarbeitung läuft auf Processing über die Bibliothek PImage, die uns ein leicht zu verarbeitendes Objekt liefert und die Aufnahme eines Bildes relativ einfach gestaltet. Der kompliziertere Teil war die Wärmebildkamera, da diese nicht über Processing gesteuert werden kann und kein Bild liefert, sondern einzelne Zahlenwerte. Diese rechnen wir zu einem Durchschnittswert zusammen und übergeben ihn über einen Serialport an Processing. Aus dem Webcam-PImage entnehmen wir über die Funktion calchue die Werte Hue und Brightness und speichern die Durchschnittswerte in zwei Variabeln.

Umwandlung in Musik

Die Grundlage des Systems, das Bild in Ton umwandelt, ist der Gedanke, dass sich verschiedene Stimmungen oder Nuancen der Umgebung am besten durch unterschiedliche Tonarten darstellen lassen. Um dies möglichst flexibel und dynamisch umzusetzen, entschlossen wir uns dazu, dass ein Array, in dem eine chromatische Tonleiter von C3 bis B5/H5 gespeichert ist, als Basis dient. Zuerst planten wir die Töne als Frequenzen zu speichern, stießen dann jedoch auf die Processing Bibliothek MINIM, die die Ausgabe und Implementierung des Tonsystems deutlich vereinfachte. Wir verwenden drei Parameter aus dem jeweils zu verarbeitenden Bild: Heat, Brightness und Hue.

Heat ist der berechnete Durchschnittswert der Wärmebildkamera und bestimmt die Tonart des Bildes. Er wird über einen Serialport vom Teenzy übergeben. Bei einem kalten Bild wird z.B. mit einer Bluestonleiter gearbeitet. Je wärmer das Bild, desto „positiver“ wird die Musik. Der Verlauf ist: Blues → Moll → Jazz → Dur. Als nächstes wird dem Bild ein Array „scale“ zugewiesen, der die Intervalle der Tonart, die zu Heat passt, vom Grundton C3 aus, repräsentiert. Alle Noten auf diesem Array sind durch Indexe im chromatischen Tonleiterarray dargestellt.

Jetzt steht das Gerüst auf dem die Wiedergabe und spezifische Tonfindung aufbaut. Nun wird das PImage, also das Bild-Objekt der Webcam verarbeitet. Der Ton der zum Bild ausgewählt wird, ist abhängig von Hue, dem berechneten Farbdurchschittswert des Bildes. Damit der Wert von Hue einen Index im Tonartenarray scale auch sicher erreicht, stellen wir den ColorMode entsprechend der Tonart, vor dem Einlesen des Bildes, um. Das bedeutet, dass sich der Wert von Hue zwischen 0 und der Länge von scale befindet und somit bereits genau an die Menge der zur Verfügung stehenden Tönen angepasst ist. Dieser Ton entspricht nun also den Werten Hue und Heat. Um die Tonart nun wirklich hörbar zu machen geben wir hier noch den Standard Akkord zum zuvor bestimmten Grundton aus. Dies funktioniert, ähnlich wie der Tonartenarray, durch drei Intervalle die auf scale später gleichzeitig abgespielt werden.

Der letzte Parameter ist Brightness. Dieser bestimmt die Tondauer und ist wie Heat und Brightness auch ein Durchschnittswert. Nachdem der Grundton, sowie der dazugehörige Akkord über die MINIM-Funktion „playNote“ ausgegeben wurden, wird durch einen Delay die erneute Ausführung der Draw-Funktion hinausgezögert. Das alles wird in jedem Durchlauf von Draw neu berechnet und ausgegeben.

Technische Daten, Bauteile, Pins, etc.

Liste der Bauteile:

  • Microcontroller Teensy3.1
  • Stepper-Driver „Pololu A4988“
  • Steppermotor (bipolar)
  • Logitech HD Webcam Modell C270
  • Thermalkamera Melexis90620
  • Netzteil (12V, 1000mA, DC)
  • Widerstände, Kondensatoren (genaue Werte siehe Schaltplan)
  • Kabel
  • Laptop

Schaltplan Thermokamera:

Schaltplan Steppermotor:

Ergebnisse

Fazit

Der Roboter erfüllt sämtliche in der Projektplanung festgelegten Aufgaben. Komplikationen entstehen, wenn die erfasste Umgebung zu dunkel ist und die Tonfrequenz, die daran gekoppelt ist, für den Roboter zu schnell zum Abspielen ist. Vermeiden könnte man diesen Fehler, indem man eine if-Schleife einbaut, die nur das Spielen bis zu einer bestimmten Geschwindigkeit erlaubt.

Verbesserungs- und Erweiterungsmöglichkeiten, Ausblick

Erweitern könnte man AIRPLAY sowohl in der Software als auch in der Hardware. Man könnte ohne große Komplikationen weitere Sensoren anbringen, oder um eine uneingeschränkte Umgebung zu betrachten das System auf einen Quadrocopter montieren. In dem Fall müsste man eine Lösung für die Audioausgabe/Datenweitergabe und Energieversorgung finden.

Des Weiteren würden wir gerne den Musikteil um weitere Variablen wie Pausen ausbauen und dem Ganzen eine Struktur (Strophe, Refrain, Bridge) geben, sodass ein Lied entsteht. Zum Beispiel eignen sich für die Strophe einzelne Pixelwerte, für den Refrain der Mittelwert eines Bildes.

Mehrwert des Projekts

Auch wenn das Projekt auf den ersten Blick lediglich als Kunst wahrgenommen wird, hat es einen potentiell sehr großen gesellschaftlichen Mehrwert. Unser Roboter ermöglicht es nicht nur, Synästhesie nachzuempfinden, ausgebaut könnte AIRPLAY (Farben-)Blinden das “Sehen durch Hören„ ermöglichen. In diesem Fall wäre die betrachtete Umgebung nicht nur ein Raum, sonder das gesamte Umfeld des täglichen Lebens.

* Code

projektesose17/airplaypublic/start.txt · Zuletzt geändert: 2017/10/09 14:54 von c.jaedicke