Das Projekt und die erste Hausaufgabe


Das Projekt

Im Rahmen des Kurses fortgeschrittene Interaktionstechnologien der Hochschule Rhein-Waal soll dieses Semester in Gruppen jeweils ein Tabletop-Arcade-Automat gebaut sowie ein Arcade-Spiel für diesen programmiert werden.

Als Gruppengröße sind drei bis vier Leute vorgegeben (idealerweise vier). Bei einer Gruppe bestehend aus drei Leuten sollen die Gruppenmitglieder dabei die verschiedenen Rollen Gehäusedesigner*in, Programmierer*in und Elektroniker*in einnehmen. Bei einer Gruppe bestehend aus vier Leuten soll es zudem noch eine*n Designer*in für die Dekoration des Gehäuses und für die Erstellung der Assets für das zu programmierende Arcade-Spiel geben. Ich befinde mich in einer Gruppe mit Nils, Nico und Noah. Nico ist dabei Programmierer, Nils ist Gehäusedesigner, Noah ist Designer und ich bin Elektroniker.

Als Gruppe haben wir uns dazu entschieden, dass wir für unseren Arcade-Automaten ein Tower-Defense-Spiel entwickeln wollen. Als Hauptinspiration dient uns dabei das Spiel Bloons TD 6, von dem wir einige Aspekte für unser Spiel übernehmen wollen.

Wie in Bloons TD 6 sollen die Gegner in unserem Spiel einem festen Pfad folgen, während auf dem restlichen Spielfeld jederzeit Türme platziert werden können. Das Platzieren von Türmen soll eine Währung (Credits) kosten. Es soll Angriffstürme geben, die Gegner automatisch angreifen, sobald diese sich in Reichweite befinden. Wir wollen aber nicht nur Angriffstürme haben, sondern beispielsweise auch einen Turm, der mit der Zeit Credits generiert. Hauptsächlich soll man Credits aber durch das Zerstören von Gegnern erhalten. Neben dem Verwenden von Credits zum Platzieren neuer Türme, sollen Credits auch verwendet werden können, um bestehende Türme upzugraden.

Im Unterschied zu Bloons TD 6 wollen wir unser Spiel arcadiger und schwerer gestalten. Aus diesem Grund soll es keine Leben geben und das Spiel soll sofort vorbei sein, sobald es ein Gegner schafft bis zum Ende des festen Pfades zu gelangen, weil Türme ihn nicht rechtzeitig zerstört haben. Zudem wollen wir auf Runden verzichten. Das heißt, dass das Spiel nach einer Welle von Gegnern nicht pausiert wird und man sich nicht selbst aussuchen kann, wann man die nächste Welle startet. Stattdessen sollen durchgehend immer wieder Wellen von Gegnern kommen, um das Spiel schneller zu gestalten.

In Anlehnung an die klassischen Level aus Arcade-Spielen, wollen wir das Spielfeld unseres Spiels, nachdem man eine gewisse Zeit überlebt hat, immer wieder durch ein komplett neues schwierigeres Spielfeld mit anderer Optik ersetzen. Anschließend müssen wieder komplett neu Türme platziert werden. Generell ist das Ziel unseres Spiels möglichst lange zu überleben. Die Grafik unseres Spiels wollen wir im Sciene-Fiction-/Weltraum- und Pixel-Art-Stil gestalten.

Für unseren zu bauenden Arcade-Automaten wollen wir einen 4:3-Monitor verwenden. Diesen werden wir in einen Bereich für das eigentliche Spielfeld und einen Bereich für das Baumenü (Tower-Auswahl-Menü) einteilen. Neben einem Joystick zum Navigieren durch das Spielfeld und durch das Baumenü und einem Auswahlknopf, soll unser Arcade-Automat einen Knopf zum Wechseln zwischen dem Baumenü und dem Spielfeld haben. Zusätzlich wird noch ein Knopf zum Verlassen des Spiels benötigt.

Die erste Hausaufgabe

In den ersten drei Wochen des Kurses haben alle im Kurs dieselben Aufgaben bekommen. Die vierte Woche ist jetzt die erste Woche der sogenannten Spezialisierungsphase. Ab jetzt variieren die Aufgaben je nach der Rolle, die man innerhalb seiner Gruppe einnimmt. Zusätzlich soll jetzt ab der ersten Woche der Spezialisierungsphase jeder einen Blog schreiben. Meinen Blog liest du gerade.

Als Hausaufgabe für die erste Woche der Spezialisierungsphase sollten alle Elektroniker*innen das Arduino-Projektbuch, das Teil des Arduino-Starter-Kits ist, bis enschließlich der ersten drei Projekte „Raumschiff-Steuerzentrale“, „Love-o-Meter“ und „Farbmischende Lampe“ durcharbeiten. Da uns bis jetzt keine physischen Arduinos mit den richtigen Bauteilen zur Verfügung gestellt werden konnten, sollten wir die im Buch enthaltenen Schaltkreise und Code-Schnipsel stattdessen virtuell in Tinkercad umsetzen.

Lerne deine Werkzeuge kennen

Bevor es mit den ersten drei Projekten los geht, gibt es innerhalb des Arduino-Projektbuchs das Kapitel „Lerne deine Werkzeuge kennen“, in dem bereits erste Schaltkreise vorkommen, die ich in Tinkercad nachgebaut habe.

Baue den Schaltkreis

Im Buch kommt als erstes ein Schaltkreis vor, der nur aus einem Widerstand, einem Schalter und einer LED besteht. Durch Betätigung des Schalters fängt die LED an zu leuchten. Ich konnte den Schaltkreis nahezu eins zu eins in Tinkercad nachbauen. Nur den Widerstand konnte ich in Tinkercad nicht exakt wie in der vom Buch vorgegebenen Abbildung platzieren, da der Widerstand in Tinkercad dazu nicht lang genug war.

Der Schaltkreis erfordert noch keinerlei Code und eigentlich auch keinen Arduino. Es werden lediglich ein 5V- und ein GND-Port des Arduinos genutzt und mit der Plus- beziehungsweise Minus-Schiene der Steckplatine verbunden, um den Schaltkreis mit Strom zu versorgen.

Reihenschaltung

Der nächste Schaltkreis ist sehr ähnlich zum ersten Schaltkreis und erfordert ebenfalls noch keinen Code. Als einziger Unterschied ist bei diesem Schaltkreis ein zweiter Schalter in Reihe mit dem ersten Schalter geschaltet, um das Prinzip der Reihenschaltung zu veranschaulichen. Das bedeutet in diesem Fall, dass beide Schalter gleichzeitig betätigt werden müssen, damit die LED leuchtet.

In Tinkercad ist es nicht möglich zwei Schalter gleichzeitig zu betätigen und somit nicht möglich die LED in diesem Schaltkreis zum Leuchten zu bringen. Allerdings führt auch in Tinkercad weder das Betätigen des Einen noch das Betätigen des anderen Schalters zum Aufleuchten der LED, wodurch das Prinzip der Reihenschaltung trotzdem veranschaulicht wird.

Parallelschaltung

Der dritte Schaltkreis besteht aus den selben Bauteilen wie der zweite Schaltkreis. Diesmal sind aber beide Schalter parallel zueinander geschaltet statt in Reihe zueinander. Das bedeutet, dass das Betätigen eines einzelnen Schalters ausreicht, um die LED zum Leuchten zu bringen.

Raumschiff-Steuerzentrale

Das erste Projekt des Buchs besteht aus einem Schaltkreis mit vier Widerständen, zwei roten LEDs, einer grünen LED und einem Schalter. Normalerweise leuchtet die grüne LED. Während der Schalter betätigt ist, blinken stattdessen abwechselnd die beiden roten LEDs.

Um diese Funktionalität abbilden zu können, wird das erste Mal ein Arduino verwendet, für den auch Code zur Steuerung der LEDs geschrieben werden muss. Damit die LEDs vom Arduino gesteuert werden können und der Arduino auf das Betätigen des Schalters reagieren kann, sind diese vier Bauteile diesmal nicht direkt miteinander verbunden. Stattdessen sind sie jeweils an einen GPIO-Pin (General Purpose Input/Output) des Arduinos angeschlossen. Im Code kann dann festgelegt werden welche Pins als Output (die LEDs) und welche als Input (der Schalter) verwendet werden sollen:

void setup() {
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(2, INPUT);
}

Love-o-Meter

Farbmischende Lampe