Flippi: Unterschied zwischen den Versionen

Aus HRW FabLab MediaWiki
Wechseln zu: Navigation, Suche
Zeile 353: Zeile 353:
  
 
Diese '''Kombi Schläger''' benötigen keine Elektronik zum ausführen von Schlägen, bieten aber dennoch die Möglichkeit den Status des Schlägers einzulesen. Hierzu kann Beispielsweise eine Lichtschranke verwendet werden.
 
Diese '''Kombi Schläger''' benötigen keine Elektronik zum ausführen von Schlägen, bieten aber dennoch die Möglichkeit den Status des Schlägers einzulesen. Hierzu kann Beispielsweise eine Lichtschranke verwendet werden.
[[Datei:FLippi Kombi Image.png|thumb|Beispiel eines Kombi Schlägers]]
+
[[Datei:FLippi Kombi Image.png|right|600px]]
  
 
===Elektronische Startrampe===
 
===Elektronische Startrampe===

Version vom 1. Mai 2018, 10:19 Uhr

Bei Flippi handelt es sich um einen Modularen Flipper, welcher in Form, Größe und Schwierigkeit skalierbar ist. Hierzu lassen sich verschiedene Bauteile Erstellen und über einen zentralen Mikrocontroller steuern.


Ideenentwicklung

Zu Beginn stand die Überlegung, was man cooles mit einem Mikrocontroller machen könnte. Einerseits sollte es nicht nur um des Projektes willen entwickelt werden, andererseits sollte es auch nicht nur für die Gruppe selbst interessant sein. Aus diesem Grund wurde eine alte Kindheitserinnerung zum Leben erweckt, der Pinball Table (dt. Flippertisch). Früher einmal weit verbreitet, findet man diese tische heute nur noch selten und zumeist nur in Antiquariaten, meist mit entsprechend alter Hardware. Neu entwickelte Modelle sind Einzelanfertigungen und haben hohe Preise für Hard- und Software.

Flippi setzt genau hier an. Die Idee ist es, günstige Hardware mit Teilen aus der Industrie 4.0 zu verbinden und so Flippertische günstig selber zu bauen. Hierbei ist zu beachten, dass nicht jeder genug Platz für einen kompletten Tisch hat, weswegen die Dimensionen Variabel sind. Selbiges gilt für die Verwendung weiterer Technik.


Konzeptionierung

Um dieses Ziel zu erreichen, ist es einerseits notwendig einen zentralen Controller zu haben, welcher alle wichtigen Eigenschaften koordiniert. Andererseits ist es Sinnvoll die Hardware auch Menschen ohne Programmiererfahrung zugänglich zu machen, weswegen bestimmte Teile aus der Zentralen Einheit herausgelöst werden müssen. Als Grundlage hierfür wurde das EVA-Prinzip herangezogen, nach welchem Eingabe, Verarbeitung und Ausgabe getrennt zu betrachten sind.

Eingabe: Die Eingabe besteht im minimalen System aus den beiden Schlägern, der Startrampe für die Kugel, sowie allen elektrischen Elementen zum Punkte zählen. Verarbeitung: Mindestens das errechnen der Punkte, sowie das Auswerten der Spielelogik. Ausgabe: Minimal das Anzeigen der Punkte

Um der Modulbeschreibung zu entsprechen, wird die Anzeige der Punkte auf einem Smartphone möglich sein.

Des weiteren soll das Projekt die Möglichkeit der späteren Erweiterung besitzen. Hierzu wird die Möglichkeit offen gehalten neben weiteren Modulen auch Beleuchtung, Bestenliste und weiterer Features einzubauen. Auch diese sollten Menschen ohne Programmiererfahrung offen stehen, siehe Ausblick.


Erste Schritte

Um die minimalen Anforderungen umzusetzen und sowohl Modularität als auch Einfachheit zu gewährleisten, sind mindestens 3 Mikrocontroller notwendig.

Punkteeingabe

Die Eingabe wird durch einen einfachen Arduino Uno Mikrocontroller geregelt. Dieser muss einerseits einfache Signale mit festen Punktewerten lesen können, andererseits sollen diese Punkte auch an die Zentrale Steuereinheit weiter gegeben werden. Optional sind Module mit eigenem Controller, welche ebenfalls mit eingebunden werden müssen.

Hierzu wird eine serielle Verbindung zwischen der Zentralen Steuereinheit und dem Eingabe Arduino Uno mit einer Baudrate von 115200 hergestellt, über welche Punkte Werte und eventuelle Multiplikatoren ausgetauscht werden können.

Feste Punktewerte werden über einen Interrupt in Verbindung mit gesetzten Jumpern Binär errechnet. Hierbei können bis zu 1023 über die Pins 4 bis 13 eingelesen werden.

über I2C können zudem weitere Controller angeschlossen werden, welche eigene Punktewerte errechnen. Hiebei ist der Arduino Uno als Master festgelegt und fragt die I2C Module ab, wenn ein Interrupt an Pin 3 ausgelöst wird.

Alle Interrupts reagieren auf eine Rising Edge.

Zentrale Steuereinheit

Um Genug Leistung und Verbindungen für einen weiteren Ausbau zu Gewährleisten ist ein Arduino Mega die Wahl als Zentrale Steuereinheit. Mit seinen 4 Seriellen Anschlüssen, bleibt der USB Anschluss zum einstellen und für spätere Computer gebundene Features offen.

Anschluss Verwendung Status
Serial0 USB Kommunikation / Debug Debug implementiert
Serial1 Kommunikation mit Punkteeingabe implementiert
Serial2 Kommunikation mit Schlägern / Startrampe Zukünftiges Feature
Seial3 Verwendung für addOns Zukünftiges Feature
Software Serial0 Punkteausgabe Implementiert(nur senden)
Software Serial1 Ausgabe an Lichtsteuerung Zukünftiges Feature (nur senden)
Software Serial2 Verwendung für weitere addOns Zukünftiges Feature
SPI Verwendung für weitere addOns Zukünftiges Feature
I2C Verwendung für weitere addOns Zukünftiges Feature
Sonstige Pins Verwendung für weitere Software Serials Zukünftige Features

Punkteanzeige

Um ein Mindestmaß an App Einsatz zu gewährleisten ist eine NodeMCU der Controller für das Anzeigen der Punkte. Dieser erhält die berechneten Punkte über Software Serial0 von der zentralen Steuereinheit. Da die NodeMCU lediglich über einen einzelnen Seriellen Anschluss verfügt, wird diese hierfür verwendet.

Zur Kommunikation mit einem Endgerät wird ein eigenes Netzwerk mit SSID und Passwort angelegt. Diese können später via App festgelegt werden.

Entwicklung des Prototypen

Elektronik

Der Großteil der verwendeten Elektronik ist bereits in den ersten Schritten erklärt. Weswegen an dieser Stelle eine genauere Erläuterung folgt.

Eingabe

Ein Arduino Uno welcher die Punkte berechnet und weiter gibt.

Pin Verwendung
0/1 Serielle Kommunikation
2 Interrupt zum Punkteberechnen
3 Interrupt zum I2C Aufruf
4-13 Binäres Punkte Berechnen (4=1, 13=512)
A4,A5 I2C Bus

Bei Kontakt mit einem einfachen Punkte Modul wird ein Stromkreis geschlossen, welcher 5V an die Pins anlegt, welche die Punkte ergeben. Weiterhin wird der Stromkreis zu Pin 2 geschlossen, um den Interrupt auszulösen. Hierbei entsprechen einfache Module einem Taster, welche den Stromkreis Manuell schließen. Desweiteren werden Dioden verwendet um ein Fehlauslösen zu vermeiden, sowie ein 10k Ohm Widerstand zum entprellen des Tasters.

ToDo: Bild

Desweiteren ist ein Attiny85 als I2C slave an den Arduino verbunden, welche Punkte anhand einer Drehtür vergibt. Hierzu wird ein Zahnrad an dieser Tür verwendet, welches eine Lichtschranke unterbricht. Bei jeder Unterbrechung wird ein Counter im Attiny85 erhöht.

Verarbeitung

Der Arduino Mega im verarbeitenden Teil hat keine weitere Hardware angeschlossen und dient lediglich zur zentralen Kommunikation. Diese ist in 3.2 zentrale Steuereinheit gelistet.


Ausgabe

Bei der Ausgabe Elektronik wird neben der Übertragung auf ein mobiles Endgerät per WLAN (NodeMCU) dieses auch auf einem ST7735 TFT-Display dargestellt. Dieses hat alle benötigten Bauteile auf einer fertigen Platine.

Module

Eingabe

Die meisten Module sind Eingabe Module. Diese haben eine Basisgröße von 5x5 CM. Dabei können einzelne Module auch 1x2 (5x10 CM) oder sonstige vielfache Größen haben. einfachen Punkte Module sind direkt an die Pins des Arduinos angeschlossen (z.B.Bumper). Bei diesen Modulen muss dafür gesorgt werden, dass es keine Fehlauslösungen gibt (Siehe Elektronik Eingabe).

I2C Punkte Module berechnen ihren Punktewert selbstständig in einem eigenen Controller. Sobald der Wert angerechnet werden soll, wird ein Signal an den Pin 3 des Eingabe Arduino Unos gegeben, welcher darauf hin alle I2C Module abfragt. I2C Module benötigen einen internen Mechanismus um nicht immer ihren letzten Punktewert weiter zu geben.

Leere Module sind einfache freie Flächen welche keine Punkte geben.

Reaktive Module (in Planung) sind Module mit einem eigenen Controller, welche eine direkte Reaktion am eigenen Modul bewirken. Diese stehen außerhalb des Eva Prinzips da die Ausgabe vor der eigentliche Verarbeitung stattfindet. Hierzu zählen zum Beispiel Bumper, welche die Kugel aktiv abstoßen. Zu diesem Modulen werden auch Module gezählt, welche einen Controller verwenden, der nicht zur Punkteberechnung dient.

Verarbeitung

Bei der Verarbeitung gibt es ein primäres Modul, welches die zentrale Steuereinheit und die anderen Controller beherbergt. Dieses Modul hat keinen direkten Einfluss auf das Spiel und kann auch Außerhalb gelagert werden.

Sowohl I2C Punkte Module als auch Reaktive Module können hier zudem gelistet werden, da in beiden eine eigene Verarbeitung stattfindet.

Ausgabe

Ausgabemodule sollten generell keinen Einfluss auf das Spielgeschehen haben. Neben der Ausgabe von Punkten (Controller im zentralen Modul) können z.B. alle Module optional mit Beleuchtung versehen werden. Dieses Feature ist derzeit lediglich in Planung.

Software

ToDo: Software

Eingabe

Verarbeitung

Ausgabe

Die Ausgabe ist aufgeteilt in die Anzeige auf einem ST7735 und die Ausgabe auf ein mobiles Endgerät via App.

Funktion Verwendung
initDisplay Vorbereitung des Displays auf spätere Eingaben
handlePoints Befehl beim Aufrufen des Webservers unter 192.168.4.1/Point
serialHandler Auswertung eingehender Serieller Kommunikation und Vorbereitung von Kommandos
commandHandler Auswertung von Kommandos
pointCall Abgewandelter Setter für den Punktewert
updateDisplay Kombination aus Punkteanzeige und Anzeige der Eigenen Display Inhalte
showPoints Anzeige der Punkte in updateDisplay
readWlanconfig Liest die WLAN Konfiguration aus dem EEPROM aus und stellt diese zur Verfügung
B34 Temporärer Befehl zum Konfigurieren des EEPROMs
customCommands Wertet zusätzliche Kommandos aus, welche durch Erweiterungen zur Verfügung gestellt werden
customDisplay Stellt eigene Inhalte auf dem Display da

Hierbei werden im ersten Schritt loop die Clients des Servers abgearbeitet. Anschließend werden eingehende serielle Befehle entgegen genommen. Falls die Serielle Kommunikation lang genug für ein Kommando ist, wird dieses ausgewertet. Anschließend wird das Display neu geladen und der loop beginnt von vorne.

Kommandos haben dabei eine im Programm vordefinierte Länge (hier 20 Zeichen) und sind einfache Strings welche auf bestimmte Eigenschaften untersucht werden müssen.

Ein String welcher mit gp: beginnt wird Beispielsweise als Kommando für das updaten der Game Points verwendet. Nach dem Doppelpunkt können hierbei noch 17 Zeichen folgen, um den Zahlenwert darzustellen. Hierbei ist die Begrenzung nicht die Länge eines Datentyps, da die Punkte Ebenfalls als String gespeichert werden. Dies kann in anderen Modulen anders geregelt werden.

APP

Eingabe

Durch die Modularität des Systems soll es in Zukunft Möglich sein, bestimmte Eingaben über eine App zu regeln. Weitere Infos finden sich im Ausblick.

Verarbeitung

Die Verarbeitung wird zentral geregelt. Der Austausch des Controllers ist nicht vorgesehen, dennoch kann in Zukunft über Zusatzmodule auf die Verarbeitung zugegriffen werden. Weitere Infos im Ausblick.

Ausgabe

ToDo: Ausgabe App

Gewährleistung der Erweiterbarkeit

Zum Erstellen eigener Module siehe Abschnitt Module Erstellen.

Eingabe

Durch die Verwendung von Modulen einer festen Größe können Module beliebig erweitert oder ausgetauscht werden.

Hierzu sollten alle Module eine dicke von 3 MM haben, wodurch Sie Formstabil bleiben, unabhängig des Fertigungsverfahrens. Alle Eingabemodule entsprechen zudem einen 5x5 Raster. Der Aufbau auf dem Modul, sowie dessen Oberflächenbeschaffenheit kann durch Herstellungsprozess und Hersteller Variieren. Durch die festen Größen sind dennoch alle Module untereinander Kompatibel.

Verarbeitung

Die Erweiterung der Verarbeitung ist durch das einfügen von addOns gewährleistet. Zum entwickeln von addOns werden Programmierkenntnisse vorausgesetzt, da Schnittstellen zwar vorhanden sind, aber keine vorgefertigten Funktionen beinhalten. Entsprechend können über addOns allerdings auch komplexere Verarbeitungen, zum Beispiel für Mehrspieler ermöglichen.

Das einfügen neuer addOns ist im Gegensatz zum entwickeln einfach.

Ausgabe

Die Ausgabe kann ausgetauscht werden, um je nach Wunsch ein LCD, TFT, OLED oder sonstiges Display zu verwenden, auch die Verwendung komplexerer Apps ist möglich. Desweiteren können auch Module für andere Ausgaben (z.B. Beleuchtung, Ton oder Bestenlisten) eingebaut werden. Alle Ausgaben sind optional.

Module Erstellen

Der Generelle Aufbau von Flippi besteht aus verschiedenen Schichten, auf welchen sich Module befinden können.

Spielfläche

Die Spielfläche ist die oberste Schicht und hat ein 50x50 mm Raster. Damit eine Kompatibilität gewährleistet wird, ist die Grundplatte aller Module des Spielfelds 3 mm dick. Größenangaben werden im Raster angegeben: 1x1 für 50x50 mm 2x1 für 100x50 mm. Am Rand jedes Rasters ist ein Viertelkreis mit 5mm Radius ausgeschnitten und 1mm Höhe. ein 2x2 Modul hat entsprecht an jeder Ecke einen Viertelkreis, einen Halbkreis in der Mitte jeder Seite und einen vollen Kreis in der Mitte. Diese Säulen sollen das verrutschen auf dem Raster verhindern.

ToDo: Zeichnung einfügen.

Bauelemente können unterschiedliche Größen haben, sollten aber mindestens 30 mm zusätzliche Höhe haben. Eine Maximalhöhe ist nicht vorgegeben. Desweiteren sollte kein Element die Kugel dauerhaft festhalten können, sofern dies nicht Teil eines addOns ist.

Wichtige Angaben für Module sind in diesem Beispiel zu finden:

Eigenschaft Wert Anmerkung
Größe 1x1 entspricht 50x50 mm
Höhe 30mm Die Dicke der Bodenplatte wird nicht mit berücksichtigt.
Anschluss EPM Einfaches Punkte Modul / Easy Point Module
Benötigte addOns keins optionale Angabe, falls ein addOn benötigt wird
Beleuchtung Nein optionale Angabe, falls Beleuchtung verfügbar ist wird ein Modul angegeben.
Punktewert Variabel Entsteht durch Verdrahtung mit einem Bus, bei I2C Modulen wird deren Berechnung angegeben.
ToDo: Bumper Image

Die Steuerelektronik muss dabei nicht auf das Modul gebaut werden, sondern kann darunter befestigt werden. Unter einem Modul sind mindestens 30 mm Platz für Elektronik, Allerdings fallen dabei 7.5 mm von jedem Rand weg, was zu einem Platz von 35x35 mm unter dem Modul führt.

Bei Modulen die mehr als 30 mm Platz nach unten benötigen, muss diese Eigenschaft mit in die Beschreibung des Moduls.

Bus Bereich

Der Busbereich befindet sich unterhalb der eigentlichen Spielfläche und bietet Platz für die Verbindung zu den Modulen der Spielfläche.

Dieser muss mindestens 50 mm hoch sein, um Modulen mit Steuerelektronik und EPMs genug Platz zu bieten. Hierbei müssen genug Säulen und / oder Wände die Spielfläche stützen. Jedes Modul der Spielfläche muss Ausreichend gestützt werden. Optimal wäre ein volles Raster aus Halbkreisen. mindestens ein volles Raster zum einschieben der Module ist Pflicht.

Die Höhe des Bus Bereichs sowie die Anzahl der Möglichen Raster sollte angegeben werden. Zudem ist eine Angabe wichtig, ob es sich um ein Raster mit einem vorgegeben Winkel handelt oder ob es ein gerades Raster ist (Beispiel):

Eigenschaft Angabe Anmerkung
Größe 3x4 Angabe in 50x50 mm
Höhe 100 mm
Bauart Ebene Fläche mit Säulen Beschreibung des Modulrasters
Erweiterbar Nein Angabe ob weitere Raster hinzugefügt werden können
Platz für Controller Nein Angabe ob Controller im Busbereich eingebunden werden können
ToDo: Foto des Rasters einfügen

Software Modifizierung

Die Software aller Module lässt sich über die custom Datei in der Arduino IDE schnell modifizieren, ohne im eigentliche Code Änderungen vornehmen zu müssen.

Dies ermöglicht eine Modifizierung über eine weitere Datei, welche einfach in das Projekt verschoben und über die custom Datei aufgerufen wird.

In der custom Datei werden zudem andere Veränderbare Eigenschaften des Modules bereitgestellt.

Planung für die Zukunft

Folgende Features sind für die Zukunft angedacht:

Mehr Module

Zurzeit gibt es nur wenige Beispielmodule. Auf lange Sicht ist es Sinnvoll mehr Module zu erstellen. Anregungen finden sich bei alten Flippertischen. Hierbei können auch größere Module entstehen, welche dann je nach Status mehr Punkte geben (Siehe Full Tilt! Pinball für Beispiele).

Auch andere Module werden in diesem Abschnitt später noch angesprochen.

Platzierung der Controller Module

Die Controller liegen in der aktuellen Version noch neben dem eigentlichen Spielfeld. In späteren Versionen ist es vorgesehen eigene Platinen zu verwenden um Platz zu sparen. Durch die Verkleinerung der zentralen Steuereinheit ist es möglich diese im Bus Bereich unter dem Spielfeld anzubringen. Hierdurch kann die Optik des späteren Produktes Anspruchsvoller gehalten werden.

Automatisierter Neustart

Durch den manuellen Einwurf und Auswurf der Kugel ist in der ersten Version ein automatischer Programmneustart technisch zwar Umsetzbar, aber nicht Sinnvoll. Hierbei ist eine Erkennung unterhalb der Schläger nötig, welche nicht gefangene Bälle berechnet und je nach Einstellung automatisch zur Startrampe zurück führt. Im Geiste der Modularisierung ist dieses Schritt allerdings zurückgestellt, bis wichtigere Punkte abgearbeitet wurden.

Einheitliche Größe

Derzeit ist die Kugel nicht genormt, die Verwendung einer alten Kugelmaus Kugel ist zwar ein Anfang aber auch ein Provisorium. Kugeln sind nur schwer zu drucken und nicht mit einem Laser Cutter herstellbar. Hier wird nach Optionen für Individuelle Kugeln gesucht.

Bestenliste

Sobald das Spiel ein automatisiertes Ende berechnen kann, ist es auch möglich eine Bestenliste im EEPROM des Arduino Megas abzulegen. Diese ist lediglich für den lokalen Flipper verwendbar und benötigt zudem eine elektronische Eingabe, welche an die zentrale Steuereinheit weitergegeben werden muss. Zudem ist ein Ausgabefeedback nötig.

Der Code für die Eingabesteuerung muss auf dem zentralen Controller laufen, beim Umstieg müssen auch Ausgabegeräte ein Update erhalten, um entsprechende Texte anzeigen zu können.

Elektronische Schläger

Die Schläger sind aktuell kein Teil der Eingabe. Dies liegt in erster Linie am Preis des Prototypen. Die Entwicklung eines eigenen Schlägers ist daher nicht Teil des eigentlichen Projektes. In späteren Versionen werden simpele Befehle standardmäßig unterstützt. Hierfür werden mindestens 2 Taster an einem Controller angeschlossen, welcher die Eingabe des Schlägers regelt. Die Ausgabe wird über die zentrale Steuereinheit geregelt. Hierdurch können weitere Features in der Verarbeitung des Schlages aufgerufen werden, bevor dieser Ausgeführt (Ausgabe) wird.

Für die Ausgabe wird neben dem eigentlichen Mikrocontroller ein starker Magnet oder eine andere Vorrichtung zum ausführen des Schlages benötigt. Hierzu wird zudem ein höherer Strom benötigt, um genug Leistung für einen wirksamen Schlag aufzubringen.

Zudem können sind auch Kombinationen aus elektronischem und analogem Schläger denkbar.

Diese Kombi Schläger benötigen keine Elektronik zum ausführen von Schlägen, bieten aber dennoch die Möglichkeit den Status des Schlägers einzulesen. Hierzu kann Beispielsweise eine Lichtschranke verwendet werden.

FLippi Kombi Image.png

Elektronische Startrampe

Mit einer elektronisch gesteuerten Startrampe kann die Energie des Starts vorher genau angepasst werden (vorherige Angabe). Auch kann ein Rückfall der Kugel in die Rampe durch Elektronik verhindert werden. Bei kombinierten Modulen aus Startrampe und Schlägern kann zudem über eine automatische Rückführung nachgefacht werden, was Spiele aus mehreren Runden erleichtert.

App Steuerung der Eingabe

Eine erweiterte App kann die Funktionen der Schlägereingabe, Punkteausgabe, Bestenliste und weiterer Features zusammenfassen. Da es sich hier allerdings um ein Mikrocontroller Projekt handelt, ist die Entwicklung einer App nebensächlich.

Auch weitere addOns können in einer App mit eingebunden werden, sofern dies gewünscht wird.

Beleuchtung

Bunte blinkende Lichter sind Teil des alten Spielhallen Flairs. Diese werden von den Maschinen Event bedingt gesteuert. Das Ansteuern der Beleuchtung ist eingeplant, allerdings ist die Beleuchtung nicht Relevant für das Spiel. Aus diesem Grund wurde die Beleuchtung auf einen spätere Version verschoben.

AddOns

AddOns sind Controller, welche zusätzliche Funktionen ermöglichen sollen. Die hier genannten addOns sind lediglich Beispiele für Möglichkeiten. Auch weitere addOns sind möglich.

Punkte Modifizierung

Die Punkte Modifiezierung soll das Spiel erleichtern oder erschweren. Hierfür ist ein Multiplikator vorgesehen, welcher auf die Punkte angewendet wird. Zudem ist ein Zeitgesteuerter Wert möglich, welcher die Punkte über Zeit erhöht oder senkt. Die Verwendung elektrischer Schläger kann zudem belohnt oder bestraft werden. Allgemein würde diese Modul eine Einstellung des Schwierigkeitsgrads darstellen.

Multiplayer

Über eine Serielle Verbindung zu einem anderen Flippi könnten diese in einen Multiplayer Modus mit- oder gegeneinander antreten. Durch die Verwendung eines Controllers als Broker könnten zudem mehr als 2 Spieler gleichzeitig antreten. Gegebenenfalls kann hierfür SPI oder I2C verwendet werden. Dabei wäre jeder Spieler ein Slave im System, der Host wäre der Master und würde das Spiel kontrollieren.

Externe Speicherstände

Durch die Verwendung von SD-Karten können Speicherstände außerhalb des EEPROMs der zentralen Steuereinheit gespeichert werden. Durch einen Flexiblen Zugriff könnte ein System ein Spiel zudem pausieren und abspeichern, sobald ein Ball zu ende gespielt wurde und der nächste Einwurf bevor steht (Fixpunkt im Spielablauf). Die Verwendung einer SD Karte ermöglicht zudem das Abspeichern von Mini Spielen welche Bonuspunkte bringen können und in einer App gelöst werden müssen. Hierbei sind besonders Lern oder Geschicklichkeitsspiele denkbar.

USB Anschluss

Die Verwendung eines Computers für Erweiterungen steht durch das Freihalten eines Anschlusses für USB / Debugging offen.

Online Features

Die Verwendung einer Online Rangliste macht keinen Sinn. Dennoch wäre es möglich Serverbasiert Events ausführen zu lassen. Ähnlich Phänomenen wie Twitch Plays Pokemon oder salty bet kann dabei eine Community oder auch Einzelpersonen Events auslösen.

Zusatz Module

Module der Spielfläche sind derzeit auf direkte Eingabe (EPM) oder vorherige Berechnung (I2C) beschränkt. AddOns könnten diese Berechnung erweitern. Auch könnten Leere Module mit technischen Eigenschaften versehen werden. Zum Beispiel dem Auswurf der Kugel in eine zufällige Richtung. Hier müssten weitere Möglichkeiten geprüft werden.

Ausblick

Menschen welche sich für Retro interessieren können mit diesem Projekt an Grundlagen der Informatik herangeführt werden. Durch die Möglichkeit eigene Module zu entwickeln bietet sich die Chance aus einem Konsumverhalten auszubrechen und selber an der Gestaltung teilzuhaben. Hierbei ist die Programmierung unabhängig vom eigentlichen Modul möglich. Durch diese Trennung ist der Einstieg speziell für Menschen ohne Programmiererfahrung kaum erschwert.

Einfache Module können selbst von Kindern unter Verwendung von Software wie tinkerCAD gestaltet und unter Aufsicht verdrahtet werden.

Für komplexere Module kann auch ein simpler Controller wie micro:bit oder Calliope verwendet werden. Diese ermöglichen das verwenden von I2C in Blocksprache und senken die Voraussetzung für die Programmierung weiter ab.

Über diesen leichten Zugang können bereits Kinder an das Modellieren und Programmieren herangeführt werden und haben zum Schluss ein ansprechendes Ergebnis.

Verwendete Software und Bibliotheken

Arduino IDE zur Programmierung der Mikrocontroller.

Adafruit GFX Library Bibliothek für Grafiken auf Displays mit dem Arduino.

Adafruit ST7735 Library Bibliothek zur Verwendung von ST7735 Displays mit dem Arduino.

ESP8266 Arduino Paket Zum programmieren der NodeMCU mit der Arduino IDE.

Slic3r Prusa Edition Slicer für 3D Modelle.

TinkerCAD Web basierte 3D Modellierung.

Schwierigkeiten bei der Umsetzung