Inhaltsverzeichnis. Ramona Betschart

Ähnliche Dokumente
1. Vorgehensweise. Beispiele erste Skizzen

CoSpaces: Virtuelle Welten mit CoSpaces

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

PROGRAMMIEREN VON KLEIN AUF MIT BIENENROBOTERN SPIELERISCH DIE GRUNDLAGEN DES PROGRAMMIERENS ERLERNEN

Informatik Klasse 7 Arbeitsmaterialien und Übungen

Selbstschließende Hand (SsH)

Coden mit dem Calliope mini Bau eines interaktiven Plakats

Der Mit-Kurs. Moderne Informationstechnologien

Der CodeBug. A) Erste Schritte. 1) Einleitung

Nachgeführte Solaranlagen

Der Kurs vermittelt schwerpunktmäßig Grundlagen im Fach Informatik und möchte den Schüler/innen Anwendungen zeigen, die sich mit Hilfe eines PCs

Animationen anzeigen und erstellen

Die auch Rechnen kann!

9 Tipps für eine leichtere Bedienung von Android

nummeriert. Genauso sind auch die Saiten und Bünde nummeriert. Die Saiten sind von 1 bis 4 von unten nach oben nummeriert.

JUFOTech. WKO.at/tirol/jufotech DATENBLATT. Jugend forscht in der Technik. Titel der Projektarbeit: Roboterhand Fachgebiet: Technik-Robotertechnik

1 Robo Pro : Handreichungen Jahrgang 8 Arbeiten mit Robo Pro Hibsmodelle steuern

HELLIGKEIT MESSEN MIT DEM CALLIOPE MINI

Leitfaden zum Erstellen eines Frogger -Spiels: Teil 2

Informatische Bildung mit Minetest und Mesecons

7 optische SigNAle zeigen uns,

Pflichtenheft. (Siedler von Catan) Ein Projekt von. Jonas Fehlner, Stefan Vocht, Markus Dietl. Seite 1 von 7 Markus Dietl

(1)Einführung in Eclipse

Flappy Bird Greenfoot Station 1: Flappy erstellen und bewegen

3 Geoverarbeitung mit dem ModelBuilder

MIA INFORMATIK Scratch Übungen

Das HERON-Verfahren mit der TI84-Tabellenkalkulation CellSheet

Aufgabe spshaus Übung P1

Bei einer Neuerfassung von Daten sind die Felder, welche zwingend erfasst werden müssen, mit einem roten Band versehen.

Unterrichtsbeispiel 3 Die Tonleiter mit dem BBC micro:bit 1

Steirische Harmonika - Forte 10 User Manual

MIA INFORMATIK Scratch Übungen

Installationsgruppen

Jetzt kommen wir zur wichtigsten Sache: das Erstellen einer Pflegeplanung.

SPECTRE MANUAL. Sample Program Extended Content Transmission Remote Editor by Waldorf

TrainingsDok Grundlagen Präsentation. Einstiegstraining Grundlegende Schritte Ihre Planung in Szene zu setzen mit Palette CAD

Erste App (1) Zeichnen für Anfänger

Programmieren von klein auf - mit Bee-Bots!

bq Avant Kurzübersicht 2.0

Kurzanleitung Neue Funktionen

Was ist neu in Version 1.5? MASTERSOLUTION SHOW. Erklärvideos selbst produzieren, ohne technische Vorkenntnisse

Informatik Enlightened. Station 0 - Einstieg

Schlittschuhschleifmaschine. Projektarbeit der 4AWM 2011/12

LEGO MINDSTORMS NXT MIT LABVIEW 2009 PROGRAMMIEREN

ACHTUNG: Beim Anlernen darf jeweils nur ein Motor mit Strom versorgt sein!

SCRATCH. Beispiel 1. "Pong"

Anleitung für die Vorlesefunktion von frischool

360 Bluetooth Tastatur-Case für ipad Mini/Mini 2

1) Die Uhren sind vor kurzem umgestellt worden, wie kann ich die Uhrzeit auf meinem ShowView Handgerät ändern?

Tipp: Portfolio-Arbeit

Stand Seite 1 von 19

Handbuch. Polplan-Applet

Web-Seiten bauen mit Primolo

Anleitung für ChemSketch

Sorgen Sie dafür, dass alle KUBOs vor dem Unterricht vollständig aufgeladen sind.

Programmieren mit xlogo

Hochschule Aalen. Word. Formatvorlagen und mehr

Kurze Einführung in die Arbeit mit dem Programm EUKLID ( Ac / 2008 )

Anleitung zum Erstellen eines Sicherheitsszenarios mit der homeputer CL Studio Software

3D Visualizer. - Kurzanleitung -

Kurzanleitung Hama Photokalender v

Arbeitsblatt: Wie rede ich mit einem Roboter?

Mastermind. Kundenanforderungen. Hochschule Luzern Technik & Architektur. Programmieren 2 FS12. Gruppe 10

Erste App (2) Zeichnen für Fortgeschrittene

Test: Heimautomation Max Hauri Powerstation

< UNTERRICHTSMATERIAL /> Calliope mini. Schere-Stein-Papier

JavaScript objektorientiert

Coden mit dem Calliope mini Bau eines Raumschiffes

In 3 Schritten zum eigenen Schulbuch

Abschlussarbeit Roboter Carlo Kirchmeier AB3B

Übung 00 Einrichten der Entwicklungsumgebung

1) Wie erstelle ich ein neues Programm? 2) Wie füge ich ein neues Objekt hinzu? 3) Wie starte ich mein Programm?

Kapitel 2 Einfache Schleifen mit dem Befehl repeat

C0 program & code Hinweise

Um die Benutzeroberfläche Zusammenbau zu öffnen, das bereits am unteren Bildschirmrand vorhandene Register Zusammenbau 1_Assembly 1 anklicken.

Microsoft PowerPoint für Office 365 3D-Modelle

Lerne programmieren mit Sequentielle Programmierung mit VPL

Einfache Animationen in Microsoft Powerpoint (Win 2010) erstellen

Rock-Band. Einleitung. Scratch. In diesem Projekt lernst du, wie du deine eigenen Musikinstrumente programmieren kannst! Activity Checklist

Erstellung eines Beleuchtungsverlaufs mithilfe des Light Composers

Lernbereich - Mathematik - Informatik. Sackgeldverwaltung. Die Schüler programmieren eine Exceltabelle, um ihr Sackgeld über ein Jahr zu verwalten.

XTRONS Tastenbelegung ändern 4 Tasten möglich

Tipps und Tricks August 2011

Deinen EV3-Kasten vorbereiten

Map It: Standorte in Google Maps speichern und anzeigen

ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN. Der Zauberwürfel-Roboter. Paul Giese. Schule: Wilhelm-Raabe-Schule

BlueBot. Kinder lernen Programmieren

Eplan P8 und Clip Projekt / Marking

Transkript:

2014 3D-Klavier Autor Betreuer Luca Schafroth, Stefan Meier Institution Schweizer Jugend Forscht Ort FHNW Brugg-Windisch Datum 07.09.14 13.09.14

Inhaltsverzeichnis 1. Einführung... 2 1.1. Meine Erwartungen... 2 1.2. Projektbeschreibung... 2 1.3. Ziele... 2 1.4. Voraussetzungen und Materialien... 2 1.4.1. LeapMotion... 2 2. Programmierung... 3 3. Umsetzung... 3 3.1. Vorgehen... 3 4. Schluss... 3 4.1. Resultate... 3 4.2. Schlussfolgerungen... 4 4.3. Reflexion... 4 4.4. Probleme... 4 4.5. Weitere Features... 4 4.6. Dank... 5 10.09.2014 1

1. Einführung 1.1. Meine Erwartungen Auch wenn ich durch meine Lehre als Informatikerin bereits einige Programmiersprachen kenne, habe ich noch nie mit LeapMotion oder three.js programmiert. Da wir auch mit JavaScript arbeiten, sind meine Erwartungen, dass ich durch dieses Projekt meine Kenntnisse im JavaScript verbessern kann, und dass ich das Gerät LeapMotion und die Entwicklungsumgebung three.js kennen und programmieren lerne. Ich erwarte, dass ich nach dieser Studienwoche selber mit Hilfe von three.js ein solches oder ähnliches Projekt realisieren könnte. 1.2. Projektbeschreibung Das Projekt umfasst eine Webseite, auf der eine 3D-Klaviertastatur zu sehen ist. Mit Hilfe des LeapMotion ein per USB an den Rechner anschliessbares Gerät, welches Fingerbewegungen registrieren kann soll man dann virtuell durch solche Fingerbewegungen auf diesem Klavier spielen können. 1.3. Ziele Für unser Projekt wurden die Ziele wie folgt festgelegt: - Die Finger sowie Klaviertastatur im 3D-Raum darzustellen - Die mit LeapMotion registrierten Fingerbewegungen mit den 3D-Fingern darzustellen - Je nach Tastaturberührungen einen Ton abzuspielen Das Ziel war es, diese Grundlegenden Funktionen zu programmieren, so dass das 3D-Klavier genutzt werden kann. Falls wir diese Ziele bereits vor Projektabgabe erreicht haben, können jeder Zeit noch weitere Features einbauen. 1.4. Voraussetzungen und Materialien Das wichtigste Gerät, welches zusätzlich benötigt wird, um auf der virtuellen Klaviertastatur zu spielen, ist das LeapMotion. Um in einer 3D-Umbgebung unser Klavier darzustellen, benötigt man eine spezielle Entwicklungsumgebung, three.js. 1.4.1. LeapMotion Das LeapMotion ist ein Gerät, welches per USB an einen Rechner angeschlossen werden kann. Es kann Fingerbewegungen wahrnehmen und diese danach mit Hilfe der JavaScript-Bibliothek threeleapcontrols in ein brauchbares Format umwandeln und am Bildschirm anzeigen und ausführen. 10.09.2014 2

2. Programmierung Die Webseite, auf welchem wir das Klavier angezeigt haben, haben wir mit JavaScrip aufgebaut. Da das Projekt in 3D realisiert wurde, haben wir zusätzlich mit three.js und physi.js programmiert. Bei der Programmierung haben wir hauptsächlich darauf geschaut, dass alle Features eingebaut werden und das Klavier funktioniert. Daher könnte man den Programmcode nun noch stark kürzen. 3. Umsetzung 3.1. Vorgehen Bevor wir mit dem eigentlichen Projekt begannen, haben wir uns mit dem LeapMotion und der Umgebung three.js auseinandergesetzt. Dazu haben wir einige bereits fertige Objekte, welche mit three.js realisiert und mit LeapMotion gesteuert wurden, ausprobiert und umprogrammiert. Danach haben wir uns ausgedacht, wie das Klavier aussehen und funktionieren soll. Als wir eine Vorstellung davon hatten, wie das Projekt am Ende aussehen soll, haben wir versuchte eine Taste zu entwerfen, welche beim Berührung durch eine von LeapMotion wahrgenommene Handbewegung, einen Ton abspielt. Dank den bereits vorgegebenen Beispielen, an denen wir gut nachschauen konnten, wie ein Button erstellt werden kann und wie man eine Push-Action hinzufügt, war dies keine unmögliche Herausforderung. Nachdem wir eine Taste hatten, war es nicht mehr schwierig die anderen Tasten inkl. der schwarzen Tasten auch zu erstellen und so das Klavier im Design fertig zu stellen. Nun waren wir so weit, dass das Klavier spielbar war, jedoch gab es noch keine Tastenbewegungen und die Töne auf allen Tasten waren noch gleich. Da die Tasten bei einem richtigen Klavier auch nicht starr bleiben und sich nicht bewegen, wenn man darauf klickt, wollten wir nun diese Tastenbewegung einfügen. Dies stellte uns vor einige Probleme, da die Tasten sich nicht nur nach unten, sondern auch zur Seite bewegten. Nachdem wir dieses Problem einigermassen behoben haben, und sich die Tasten nur noch nach oben und unten bewegen konnten, haben wir damit begonnen den Tasten einzelne Töne zuzuweisen, damit jede Taste einen eigenen Ton hat. 4. Schluss 4.1. Resultate Das Ergebnis ist ein 3D-Klavier, auf welchem man mit Hilfe des LeapMotion durch Fingerbewegungen die Tasten drücken und Töne spielen kann. Die Klaviertastatur umfasst 2 Oktaven und bewegt sich beim Spielen. Ein weiteres spezielles Feature ist die Bedienbarkeit der Klaviertastatur über die Computertastatur. 10.09.2014 3

4.2. Schlussfolgerungen Insgesamt stellten wir erfreulich fest, dass wir alle festgelegten Projektziele erreichen konnten. 4.3. Reflexion Auch wenn ich bereits Vorkenntnisse in einigen Programmiersprachen besass, habe ich in der Studienwoche viel Neues lernen können. Auch wenn für mich die Entscheidung einen Beruf in der Informatik zu erlernen bereits gefallen ist, habe ich in dank dieser Studienwoche gemerkt, dass ich nach Abschluss meiner Lehre nicht weiter arbeiten möchte, sondern zuerst eine Fachhochschule zu besuchen und Informatik zu studieren. 4.4. Probleme Während des Programmierens sind wir immer wieder auf Probleme gestossen. Das grösste Problem, welches wir hatten war, dass sie die Tasten nicht nur nach unten bewegten, sondern auch zur Seite. Da dies bei einem echten Klavier nicht der Fall ist, und dadurch die Tasten auch zusammenstiessen, mussten wir diese Bewegung noch ausbauen. Dies gestaltete sich jedoch als schwieriger als zuvor gedacht. Nach mehreren umgesetzten Ideen, welche allesamt die Tastenbewegung zur Seite nicht verhinderten, kamen wir auf die Idee, die Tasten an der hinteren Wand des Klaviers zu fixieren. Nun konnten sich die Klaviertasten nur noch um diese Achse drehen. Dies führte jedoch dazu, Damit sich die Tasten nun nicht einfach um diese Wand drehten, haben wir noch eingestellt, wie weit sich die Tasten nach oben oder unten bewegen können. Eine weitere Schwierigkeit, welche aufgetaucht ist, waren die Tastentöne. Es war schwer verschiedene passende Klaviertöne zu finden, welche wir abspielen können, wenn die Taste gedrückt wird. Um diese Klaviertöne abzuspielen, haben wir ein JavaScript gefunden, welches die Töne generiert. 4.5. Weitere Features Zusätzlich zu den Funktionen, welche das Klavier zwingend benötigte (siehe Ziele), haben wir noch weitere Features eingebaut, welche das Klavier realistischer und interessanter machen. - Taste bewegt sich nach unten wenn sie gedrückt wird - Verbesserung des Designs - Spielbar auch mit Computer-Tastatur - Wenn weder mit Tastatur noch über LeapMotion gespielt wird, spielt eine Hand ein zuvor angefertigtes Muster als Loop. - Funktion, ob die automatische Hand spielen soll oder ob man mit der Computertastatur spielen möchte - Man kann nur mit der Computertastatur spielen, wenn weder durch die automatische Hand, noch über LeapMotion gespielt wird. 10.09.2014 4

4.6. Dank Wir danken zuerst unseren Betreuern Stefan Meier und Luca Schafroth, die uns bei dem Projekt geholfen haben und bei Fragen oder Unklarheiten immer helfen konnten. Weiter danken möchten wir Claude Rubattel für die Unterstützung und Organisation während der Studienwoche in Brugg. Der grösste Dank gilt der Stiftung Schweizer Jugend forscht, die das ganze Projekt überhaupt ermöglicht haben. 10.09.2014 5