In seiner Funktionalität auf die Lehre in gestalterischen Studiengängen zugeschnitten... Schnittstelle für die moderne Lehre
In seiner Funktionalität auf die Lehre in gestalterischen Studiengängen zugeschnitten... Schnittstelle für die moderne Lehre
Eine der ersten Ideen bestand darin, das Spiel Ubingo so zu modifizieren, dass eine Kamera erkennt, wenn eine Person das Puzzle erfolgreich gelöst hat. In diesem Moment würde die Zeit gestoppt, und die nächste Person hätte die Gelegenheit, diese Zeit zu unterbieten.
Eine weitere Idee bestand darin, das Spiel „Räuber und Gendarm“ so zu erweitern, dass die Teilnehmer es zusätzlich mit ihren Smartphones spielen können. Eine Handy-App würde die Entfernung des suchenden Spielers zu den Flüchtigen erkennen. Wenn der Gendarm in Sichtweite ist und sich nahe genug befindet, hätte er den Räuber gefangen. Die Grundidee dabei war, das körperliche Bewegungsspiel für ein breiteres Publikum interessanter zu gestalten, indem es durch ein neues Interface bereichert wird.
„Mario mal anders“ ist eine Idee, den klassischen Mario Jump-and-Run-Klassiker so zu verändern, dass er ausschließlich mit Autokomponenten gesteuert wird. In diesem Konzept würde das Laufen beispielsweise über das Lenkrad gesteuert und das Springen über einen Schalthebel.
Die herkömmliche Art, einen FPS-Shooter ausschließlich mit Tastatur und Maus zu spielen, wirkt heutzutage etwas überholt. Daher haben wir uns entschieden, einen FPS-Shooter durch die Integration physischer Schnittstellen greifbarer und haptischer zu gestalten.
Folgende Elemente wurden hinzugefügt:
Euer Barcode-Scanner wird zur Hauptwaffe des Spiels. Ihr feuert, indem ihr den Barcode scannt. Jeder gescannte Barcode lässt einen Schuss los.
Die Augen sind eure primäre Methode zur Zielerfassung. Ihr richtet euren Blick auf einen Gegner, um ihn anzuvisieren und anzupeilen. Die Schüsse werden jedoch nicht automatisch abgefeuert, sondern ihr müsst den Abzug eures Barcode-Scanners betätigen, um zu schießen.
Die Bewegung in der virtuellen Welt erfolgt über die Pedale. Ihr könnt euch vorwärts und rückwärts bewegen, indem ihr die Pedale betätigt. Dies ermöglicht taktische Bewegungen, um euch vor Feinden zu schützen und die Spielarena zu erkunden.
Ersten Skizzen
Weitere Ausführung
Tauchen Sie ein in eine einzigartige Verschmelzung von Super Mario und der faszinierenden Welt des Klempners! Bei unserem Projekt geht es darum, das allseits beliebte Super Mario-Spiel in eine noch nie dagewesene Erfahrung zu verwandeln. Unser Ansatz? Die Verbindung von Marios Abenteuern mit den Werkzeugen eines echten Klempners, um ein völlig neues Spielerlebnis zu schaffen.
Unsere Idee ist so innovativ wie aufregend: Stellen Sie sich vor, Sie steuern Mario nicht mehr mit den herkömmlichen Tasten, sondern mit Werkzeugen, die ein echter Klempner in seinem Alltag verwendet. Ein Ventil wird zum Schlüssel, um Mario durch das Level zu bewegen. Mit einer Saugglocke springen Sie mühelos über Hindernisse hinweg, und eine Wasserpumpenzange ermöglicht es Ihnen, sich gekonnt zu ducken und gleichzeitig mühelos mit einem Drehsprung über Gegner zu springen.
Unsere Vision besteht darin, nicht nur ein Spiel zu spielen, sondern in die Rolle eines Klempners zu schlüpfen und seine Werkzeuge geschickt zu nutzen, um Super Mario auf seiner Reise zu unterstützen. Diese kreative Verschmelzung eröffnet eine ganz neue Ebene des Spielens und ermutigt Spieler jeden Alters, ihre Fähigkeiten und Kreativität einzusetzen.
Treten Sie ein in unsere Welt der kreativen Spiele mit Physical Interfaces und entdecken Sie Super Mario in einem ganz neuen Licht!
In unserem Projekt haben wir uns dazu entschieden, einen Emulator zu verwenden, um die gewünschten Funktionen zu realisieren. Der Weg dorthin war jedoch nicht ohne Herausforderungen, insbesondere beim Verbinden der Arduinos mit dem Emulator. Nach intensiver Arbeit konnten wir schließlich die passende Version des Emulators identifizieren und erfolgreich integrieren. Um die gewünschten Ergebnisse zu erzielen, war es außerdem erforderlich, einen Arduino Leonardo zu bestellen, da dieser als Joystick erkannt werden kann.
Das Highlight unserer jüngsten Bemühungen besteht darin, den Arduino erfolgreich in einen Controller umzubauen. Derzeit konzentrieren wir uns darauf, die Steuerung auf die Anforderungen einer Klempner-Tätigkeit anzupassen. Dabei stellt sich insbesondere die Frage nach der optimalen Verteilung der Kontrollelemente. Es ist entscheidend zu bestimmen, welche Aktionen an welchem Ort im Raum platziert werden und wie die Steuerung am effektivsten genutzt werden kann. Diese Aspekte werden durch einfaches Spielen, Umstellen und erneutes Spielen getestet, um die bestmögliche Konfiguration zu finden.
https://learn.sparkfun.com/tutorials/thumb-joystick-hookup-guide/processing-library-
Für die individuelle Steuerung haben wir spezifische Gegenstände ausgewählt, die den Spieler mit verschiedenen Aktionen im virtuellen Raum interagieren lassen. Hier sind die ausgewählten Objekte und ihre zugeordneten Funktionen:
Normales Ventil: Bewegung des Charakters.
Klospülung: Ducken oder Säuleninteraktionen (Button an der „Wand“)
Wasserzange: Springmechanismus
Knopf: Durch drücken Drehsprung
90-Grad-Ventil: Sprint
Diese Steuerungselemente wurden größtenteils an die entsprechenden virtuellen Objekte angebaut, um die Funktionalität im Spiel zu testen. Es handelt sich hierbei um Prototypen, die ausschließlich für Testzwecke konzipiert sind.
Wir haben uns für unser Projekt eine Spanholzplatte ausgewählt und sorgfältig die Maße für den Zuschnitt markiert. Mit einer präzisen Stichsäge haben wir dann die Platte entlang der Markierungen zugeschnitten, um sicherzustellen, dass sie perfekt in unser Vorhaben passt.
Nachdem die Platten passgenau zugeschnitten waren, haben wir die Heißklebepistole aufgeheizt und den heißen Kleber gleichmäßig auf die zu verbindenden Flächen aufgetragen. Beim Zusammenpressen der Teile haben wir darauf geachtet, dass der Kleber sich gut verteilt und die Verbindung stabil wird.
Mit der getrockneten und stabilen Platte sind wir dann zum Bohren der Löcher übergegangen. Verschiedene Bohraufsätze kamen hierbei zum Einsatz, um die präzisen Löcher zu erstellen, die später für die Installation unserer Technik benötigt werden. Sorgfältiges Messen und gegebenenfalls die Verwendung von Schablonen haben dafür gesorgt, dass die Bohrungen exakt platziert sind.
Nachdem die Löcher gebohrt waren, begannen wir mit der Installation unserer Technik. Das umfasste das Einsetzen von Elektronik, Kabeln und anderen Komponenten in die vorbereiteten Löcher. Besonderes Augenmerk legten wir darauf, alles sicher zu befestigen und Kabelsalat zu vermeiden.
Zum Abschluss haben wir unser Werk überprüft, um sicherzustellen, dass alles stabil ist und wie geplant funktioniert.
Nachdem wir die Spanholzplatte mit der Heißklebepistole verklebt und die erforderlichen Löcher gebohrt hatten, haben wir uns auf die Integration der elektronischen Komponenten konzentriert. Als Schalter haben wir einen Keyswitch von einer Tastatur ausgewählt und die entsprechenden Kabel daran gelötet. Diese Kabel haben wir dann an den Arduino angeschlossen, um die Schalterbetätigung mit der elektronischen Steuerung zu verbinden.
Um den Arduino und andere Komponenten sicher zu befestigen, haben wir eine zusätzliche kleine Platte entworfen und an der Hauptplatte angebracht. Die Positionierung erfolgte sorgfältig, um eine einfache Bedienung und gute Erreichbarkeit zu gewährleisten.
Die Drehregler des Arduinos sowie eine Zange haben wir an den vorgesehenen Platz befestigt. Hierbei kam die Heißklebepistole erneut zum Einsatz, um eine sichere und stabile Fixierung zu gewährleisten. Der Einsatz von Karton als elastischem Untergrund für die Arduino-Regler ist eine kreative Lösung, um zusätzliche Stabilität und eine gewisse Flexibilität zu schaffen.
Nachdem alle Teile sicher befestigt waren, haben wir abschließend überprüft, ob die Schalter, Drehregler und andere Komponenten ordnungsgemäß funktionieren.
Nachdem alle elektronischen Komponenten sicher auf der Holzplatte platziert waren, haben wir uns dem finalen Schritt gewidmet: dem Befestigen und Gestalten des Interfaces. Dieses Interface umfasst die Regler, das Rohr mit dem neuartigen Element, das Seil, welches über eine Art Seilwinde gesteuert wird und mit einem Arduino Joystick verbunden ist.
Zunächst haben wir das Interface fest mit der Holzplatte verbunden. Dies erfolgte durch Kleben, um eine stabile und dauerhafte Verbindung zu gewährleisten. Die Positionierung wurde dabei sorgfältig gewählt, um eine optimale Erreichbarkeit und Nutzung der Regler und des Seils zu ermöglichen.
Das Rohr wurde ebenso sicher befestigt und daraufhin bemalt, um es dem Mario-Thema anzupassen. Die Auswahl der Farben und die Gestaltung des Rohrs tragen dazu bei, dem gesamten Projekt einen einheitlichen und ästhetisch ansprechenden Look zu verleihen.
Abschließend haben wir das gesamte Interface bemalt, um es an das Mario-Thema anzupassen. Die Farbgebung und die Details tragen dazu bei, dem Projekt eine persönliche Note zu verleihen und es visuell ansprechend zu gestalten.
Nach all diesen Schritten haben wir das vollständige Projekt überprüft, um sicherzustellen, dass alle Komponenten richtig funktionieren und dass das Gesamtbild den Erwartungen entspricht.
const int buttonPin = 4;
const int potPinA0 = A0;
const int potPinA1 = A1;
const int thumbstickXPin = A2;
const int signalPin = 3;
const int a3Pin = A3;
Joystick_ joystick;
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
pinMode(potPinA0, INPUT);
pinMode(potPinA1, INPUT);
pinMode(thumbstickXPin, INPUT);
pinMode(signalPin, INPUT_PULLUP);
pinMode(a3Pin, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
int buttonState = digitalRead(buttonPin);
int potValueA0 = analogRead(potPinA0);
// Scale the potentiometer value from A1 to a 90-degree range
int potValueA1 = map(analogRead(potPinA1), 0, 1023, 0, 90);
int thumbstickX = analogRead(thumbstickXPin);
int signalState = digitalRead(signalPin);
joystick.setButton(0, buttonState);
joystick.setButton(1, potValueA0 < 150);
joystick.setButton(2, potValueA0 > 450);
joystick.setButton(3, potValueA1 < 45); // Adjust this threshold based on your needs
joystick.setButton(4, potValueA1 > 45); // Adjust this threshold based on your needs
joystick.setXAxis(thumbstickX);
int potValueA3 = analogRead(a3Pin);
joystick.setThrottle(potValueA3);
int a3ButtonState = digitalRead(a3Pin);
joystick.setButton(5, a3ButtonState);
if (signalState == LOW) {
joystick.setButton(6, HIGH);
} else {
joystick.setButton(6, LOW);
}
joystick.sendState();
delay(10);
}
-Daniel Schulz
-Johannes Schobel
-Kay Zettelmann