Demonstration meiner bisherigen InDesign-Skripte

Bisher habe ich schon viele verschiedene Skripte in JavaScript für InDesign programmiert (Skalierungs-Skripte, Skript-Menü, Rechnungs-Skript, Webdesign-Skripte). Leider ist erst nur ein kleiner Teil davon in meinem Downloadbereich zu finden (nach und nach werde ich dort die anderen hinzufügen). Um trotzdem einen Vorgeschmack geben zu können, habe ich zur Demonstration ein kleines Video (ohne Ton) erstellt.

Projekt "Weather Explorer Umbrella"

Deutsch:

Bei „Weather Explorer Umbrella“ handelt es sich um eine Installation, welche den Benutzer akustisch, optisch und taktil, das Wetter auf der Welt näher bringt, indem er mit einen präparierten Regenschirm, auf einer großen Weltkarte läuft und sich dort einen gewünschten Ort auswählt. Über jeder Stelle der Karte befindet sich sozusagen die dazugehörige „Datenwolke“, die mit dem Schirm aufgefangen werden kann.

Die jeweiligen Wetterdaten, werden immer am Anfang aus den XML-Dateien des Yahoo-Wetter-Internetdienstes ausgelesen und den einzelnen Städten zugewiesen. Für die Darstellung des Wetters, wird ein Lautsprecher für die Wettergeräusche, verschieden farbige LEDs für die Lichtatmosphäre und ein Handventilator für die Windgeschwindigkeit im Schirm eingesetzt.

Eine rote Leuchtdiode am Regenschirm hilft dabei, die Position über ein Kamera-Tracking zu bestimmen (Kamera befindet sich an der Decke).

English:

At the installation “Weather Explorer Umbrella” can the user walk with a umbrella over a big worldmap and can hear, see and feel the weather of a certain place of the world. The umbrella contains for this function a little speaker, different color-leds and a handfan. A camera-tracking recognize the position of the umbrella with a red position-light on it. The weather data comes from the Yahoo-Weather-Internetservice, which offers XML-Files for many cities of the world.

The umbrella is connected with 8 wires (inside 2 bigger wires) to a Arduino-Board, which controlls the leds and fan. Between the Arduino and the long wire for the motor (fan) is a motordriver-chip (l293) too. It controlls the speed of the handfan (speed-values are from the Yahhoo-XML-Files). A white, blue and yellow led shows the weather-light-atmosphere, where the user at the moment stays. The white led is for example for a flash (thunderstorm) or for snow, the blue light for rain or wind and the yellow led for the sun.
Programming of this project was written with „Processing“ and „Arduino“. For the XML-import used I the java-library „jdom“.

Weitere Fotos/More photos:

Link zur Fotogalerie/Link to Photogallery

Videos/Movies:

lichteffekte.mov
regenschirm_und_karte_von_oben.mov

Dateien/Files:

weatherexplorerumbrella1.pdf
weatherexplorerumbrella_arduino1.pde
weatherexplorerumbrella_processing.pde

Umsetzung 3

Weltkarte:

Für meine große Boden-Weltkarte habe ich folgende Varianten entworfen:

Regenschirm:

Um den Lautsprecher für den verorteten Ton am Schirm zu befestigen, bastelte ich mir ein Segmentteil, welches man in das Gestänge einfach drauflegen und befestigen kann. An den Lautsprecher, habe ich für eine später einfachere Verbindung, auch gleich einen Klinkenstecker angelötet.

Den Ventilator wollte ich auch zuerst an ein solchen Segment befestigen wie der Lautsprecher. Als ich dies allerdings ausprobiert habe, habe ich feststellen müssen, dass der Ventilator nicht mehr so gut von hinten Luft ziehen konnte (schwacher Luftzug). Deshalb musste ich eine andere Möglichkeit finden. Dann bin ich darauf gekommen, den Ventilator am Besten einfach quer in den Regenschirmgestänge einzuklemmen (dies passt wirklich zufälligerweise total gut).

Um die Kabel und die Unterseite der Leuchtdiodenscheibe zu verdecken, habe ich einen Trichter aus halbtransparenter Folie angebracht.

Zusätzlich habe ich am Regenschirm eine rote Positonsleuchtdiode angebracht und das Kabel innen herein gelegt.

Umsetzung 2

Ich habe mir eine alte CD-Scheibe so umgebaut, dass man sie für den Schirm verwenden kann, um die Lichter für die Farbeffekte befestigen zu können. Damit man sie einfach auch wieder abnehmen kann (wenn Regenschirm zusammengeklappt werden muss), habe einen Zwicker unten befestigt. Die CD-Beschichtung hat auch den Vorteil, dass sie die Lichter gut zurück reflektieren kann. Jetzt muss ich noch eine Abdeckung (vielleicht eine umgedrehte Eistüte aus weißen transparenten Plastik) finden und unterhalb der Scheibe befestigen, damit die Kabel versteckt sind.

Die Lichteffekte sind übrigens in diesem Film zu sehen.

Das Gelb für Sonnenschein ist allerdings noch sehr schwach (auch immer noch, wenn kein Widerstand dazwischen ist). Ich muss es mal vielleicht mit einer roten und weißen oder zwei gelbe Leuchtdiode probieren, um die Sonne darzustellen.

Umsetzung 1

Den schon vorhanden Code, habe ich auf eine objektorientierte Struktur umgeschrieben, damit man einen besseren Überblick hat und die Wetterdaten und Töne für die einzelnen Städte besser handhaben kann. Zudem war es vor allem auch für die Tonüberblendung notwendig

Bei der Schaltung für den Ventilator und den Motortreiber bin ich erst einmal auf Schwierigkeiten gestoßen, obwohl ich eigentlich alles schon richtig gemacht und verbunden habe (siehe Fotos unten). Der Motortreiber wollte einfach nicht funktionieren. Es stellte sich aber schließlich heraus, dass man den Motortreiber über den Enable-Pin komischerweise auf „LOW“ stellen muss, damit er überhaupt erst funktioniert.

Über den Motortreiber steuere ich einen Ventilator von Conrad.

Die Lichteffekte muss ich wahrscheinlich über normale Leuchtdioden (ohne stufenlose Regelung) laufen lassen, weil ich für eine oder mehrere RGB-Dioden mindestens 3 von 3 PWM-Arduino-Ausgänge bräuchte, wo ja schon einer für den Motortreiber reserviert ist.

Um bei den XML-Dateien (von Yahoo) auch die Koordinaten auslesen zu können, musste ich statt der proxml-Library für Processing, die Java-Library „jdom“ verwenden, weil man mit proxml nur Attribut-Werte auslesen kann. JDOM ist zudem auch wesentlich flexibler als proxml. Jetzt kann ich auch die einzelnen Stadtobjekte mit ihren Wetterdaten automatisch, durch den ausgelesenen Koordinaten, positionieren lassen.

Weiterhin habe ich auch die Zuordnung der passenden Wettertöne in mein Processing-Code mit implementiert, die umso lauter werden, je näher man an die einzelnen Städte kommt.

Möglichkeiten für die Positionierung des Schirmes:

Die einfachste Möglichkeit ist es natürlich mit einer Webcam den Schirm über eine farbige Leuchtdiode zu tracken. Man braucht aber eine ziemlich großen Abstand zwischen Karte und Kamera (ca. 5 m für eine 5 m große Karte) und natürlich ein lang genuges Firewire-Kabel für eine iSight-Kamera, dass laut Spezifikation nur für maximal 4,5 m (bei S400-Geräten) ausgelegt ist..

Ich bin auch auf die Idee gekommen, eine Wiimote für die Positionierung einzusetzen. Daraufhin habe ich einige Versuche mit der Infrarotmausfunktion des Nindento-Controllers gemacht, um herauszufinden ob dies überhaupt auch noch funktioniert, wenn die Wiimote (oben im Regenschirm auf die Decke gerichtet) wenn die Infrarotlichter an der Decke hängen würden. Das ging auch überraschenderweise ziemlich gut. Egal wie sie auf den Boden gedreht war, hat die Mauszeigerpositionierung immer in der gleichen Ausrichtung funktioniert. Allerdings habe ich feststellen müssen, dass die kleinste Bewegung in der Neigung, die Positionierung extrem beeinflusst hat. Das ist natürlich schlecht, da man einen Regenschirm normalerweise nie immer komplett gerade trägt. Ein weiterer Minuspunkt ist auch, dass der Bewegungsspielraum immer genauso klein ist, wie der Abstand zwischen den Infrarotquellen (Sensorbar). Man bräuchte so für meine Installation einen riesen Abstand (mind. 5 m) zwischen den Infrarotlichtern untereinander und zwischen Boden und Decke. Und da ist dann auch noch die Frage, ob die Stärke der Infrarotdioden überhaupt für eine solche Entfernung ausreichen.

Um noch eine zusätzliche Alternative zu haben, habe ich mir auch eine weiter Möglichkeit ausgedacht: Wenn man an einem Schirm jeweils oben und unten am Stil eine farbige Leuchtdiode anbringt, kann man die sie nicht nur für die Positionierung von einer Achse verwenden, sondern ach für die Bestimmung der Entfernung (umso weiter weg der Schirm ist, umso kleiner wird der Abstand zwischen Leuchdiode eins und zwei).

Konzepte 7

Um die verschiedenen Windrichtungen in einen Würfel erfühlbar machen zu können, sollte am besten je Seitenfläche des Würfels ein Ventilator angeordnet werden. Damit die Windrichtungen auch immer mit den Daten stimmen, müsste man die Steuerung mit den Kamera-Tracking (Drehung) verknüpfen.

Ventilatoren (Wind) können eigentlich aber nur sinnvoll eingesetzt werden, wenn die Installation auf einen bestimmten Ort fixiert ist oder die Wetterüberblendungen zwischen den verschiedenen Städten weggelassen werden, da es sonst passieren kann, dass der Wind auf einmal in unterschiedlichen Richtungen bläst. Deswegen müsste man das ganze auf eine Windrichtung (z. B. oben heraus) und Windstärke beschränken. Zudem würden die Ventilatoren die Wettergeräusche wahrscheinlich wegen ihrer Lautstärke übertönen.

Eine coole Idee wäre auch, wenn die Wettersituationen in einen Glaswürfel, ähnlich wie in einer kleinen Wackelglaskugel, fast real zu sehen wären. Allerdings könnte man z. B. Schnee oder Hagel damit schlecht darstellen.

Man könnte die Gerätschaften, wie Funklautsprecher, Lichter und Ventilator, vielleicht aber auch in ein Regenschirm unterbringen, mit dem der Benutzer über die Karte laufen kann. Was allerdings mit den Platz (Regenschirm) leider eher nicht funktionieren würde.


Um genügend Platz zu haben, könnte die ganze Elektronik auch in eine große Kiste untergebracht werden, die man auch gleichzeitig als Hocker einsetzen könnte. Somit wäre es auch so möglich, die Windstärke und Windrichtung beim Sitzen direkt zu spüren.

Da die bei Yahoo das Wetter in 48 verschiedene ungeordnete Situationen codiert ist, habe ich mal die einzelnen Wetter-Codes in eine Liste sortiert und in 12 Gruppen (Zuständen) eingeteilt. Ich habe sogar schon ein Funktionsblock in Processing programmiert, womit die Wetter-ID in eine Wettergruppe umgewandelt wird.

Um eine bestmögliche Funktionalität bereitzustellen, werden auf dieser Webseite Cookies verwendet. Für weitere Informationen lesen Sie bitte unsere Datenschutzerklärung. Mit der weiteren Nutzung der Internetseite stimmen Sie unseren Nutzungsbedingungen zu.