Tetopia - Projekte



Bombe entschärfen

Inspiriert von dem Spiel Keep Talking and Nobody Explodes habe ich die Hardware-Version einer zu entschärfenden Bombe entwickelt.


Inhaltsverzeichnis


Die Idee

Ich hatte bisher nur von dem Spiel "Keep Talking and Nobody Explodes" gehört, als wir in unserer Jugendgruppe des DARC auf der Suche nach möglichen Spielen oder Rätseln für eine "Funk-Schnitzeljagd" waren. Da fiel mir dieses Kommunikations-Computer-Spiel ein, bei dem man gemeinschaftlich - einer am Computer, die anderen mit dem Handbuch - eine Bombe entschärfen muss. Wir haben das Spiel mit ein paar Leuten ausprobiert (mit einer VR macht es eindeutig am meisten Spaß!) und mir war sofort klar: Dieses Spiel schreit geradezu danach mit ein paar Mikrocontrollern nachgebaut zu werden. Gesagt, getan, und schon bald hatte ich erste Prototypen auf einem Breadboard zusammengesteckt, bald darauf die erste Platine entwickelt.

So funktioniert es

Ein oder zwei Spieler sitzen vor der Bombe, sie sind die Entschärfer. Der Rest hat das zugehörige Handbuch vor sich, das sind die Experten. Wichtig dabei ist, dass sie die Infos der anderen jeweils nicht sehen können! Das heißt die Entschärfer dürfen nicht ins Handbuch schauen und die Experten dürfen keinen Blick auf die Bombe werfen können.
Sobald der Timer der Bombe startet haben die beiden Teams nur noch begrenzt Zeit die einzelnen Rätsel zu lösen und so die Bombe zu entschärfen. Dazu müssen alle zusammenarbeiten, denn die Entschärfer brauchen die richtigen Infos von den Experten.

Die Bombe ist modular aufgebaut. Immer dabei ist der Timer. Er ist die Steuerzentrale und zeigt außerdem die verbleibende Zeit an. Dazu kommen dann die Module, die die einzelnen Rätsel darstellen und beliebig kombiniert werden können. Jedes Modul ist so aufgebaut, dass es die Entschärfer nur mit Hilfe der Experten lösen können. Sind alle Module gelöst, dann ist die Bombe entschärft. Läuft die Zeit vorher ab, oder macht man zu viele Fehler, dann explodiert die Bombe.
Manche Module sind einfache Logikaufgaben, andere Module basieren auf technischen Grundlagen. So gibt es z.B. ein Modul, bei dem Binärzahlen interpretiert werden müssen oder eines, bei dem ein Widerstand korrekt an seinen Farbringen erkannt werden muss. So lernt man ganz nebenbei das ein oder andere Schnipsel Fachwissen aus dem Amateurfunk, der Elektrotechnik oder der Digitaltechnik.

Varianten

Einfach und Hardcore

Das Handbuch gibt es jeweils in zwei Varianten: "Einfach" und "Hardcore". Die einfache Variante ist besonders für Einsteiger und Leute, die nicht öfter spielen wollen, geeignet. Hier ist die Anleitung einfach und möglichst kurzgehalten. Die schwierige Variante ist für alle ambitionierten Spieler gedacht, die länger Spaß an der Bombe haben wollen. Die Rätsel sind entsprechend komplizierter und brauchen mehr Übung. Die Bombe muss entsprechend der Schwierigkeit eingestellt sein (siehe "Anhang – Game Master Bedienung " im Handbuch).

Trennung der Gruppen

Für ein normales Spiel genügt ein einfacher Sichtschutz zwischen den beiden Gruppen. Wenn man die Schwierigkeit erhöhen will, können sich Entschärfer und Experten auf zwei getrennte Räume aufteilen und sich über (PMR-)Funkgeräte austauschen. Die eingeschränkte Simplex-Kommunikation macht es um ein Vielfaches anspruchsvoller und ist daher eher für geübte Bombenentschärfer zu empfehlen.

Kampagne

Wenn man alle Module besitzt, dann kann man die Kampagne im "Anhang – Kampagne" im Handbuch durchspielen. Das sind in der Schwierigkeit ansteigende Vorschläge für verschiedene Kombinationen an Modulen.

Handbuch

In dem Handbuch für die Experten findet man alle Infos, die man zum Entschärfen braucht. Das Handbuch besteht aus mehreren Teilen: Neben einigen allgemeinen Infos zur Bombe, finden sich hier auch die Anhänge und vor allem auch Anleitungen für die einzelnen Module.
Handbuch (Einfach)
Handbuch (Hardcore)

Bausatz

Die Bombe ist als Elektronik-Bausatz beim AATiS erhältlich. Die Aufbauanleitung dazu findet sich ab März 2020 im Praxisheft 30 des AATiS.
Diese Bilder zeigen eines der Module als Bausatz:

Changelog


Der Timer

Die Steuerzentrale der Bombe besteht aus zwei Platinen, die sich um die Anzeige der Zeit, die Abfrage der Module und die Einstellungen kümmert.

Die Module

Der Hauptbestandteil der Bombe sind die verschiedenen Rätsel-Module, die alle einzeln entschärft werden müssen, um die Bombe als ganzes am "explodieren" zu hindern.
Folgende Module habe ich realisiert:

01 Kabel

Hier muss anhand der Komination der Kabel und einiger externer Faktoren bestimmt werden, welches Kabel entfernt werden muss.

Schwierigkeit: ★☆☆☆

01 Kabel beim AATiS

02 Binärzahlen

Binärzahlen (von 0 bis 3) müssen richtig gedeutet werden und das Ergebnis muss man auch noch im Kopf behalten...

Schwierigkeit: ★★☆☆

02 Binärzahlen beim AATiS

03 Morse

Ein Morse-Code muss entschlüsselt werden und anhand dessen muss die richtige Frequenz eingestellt werden.

Schwierigkeit: ★★★☆

03 Morse beim AATiS

04 LED-Kreis

Ein Modul bei dem durch ein LED-Muster angezeigt wird, welche Knöpfe zu drücken sind.

Schwierigkeit: ★☆☆☆

04 LED-Kreis beim AATiS

05 Verdrillte Kabel

Ähnlich wie bei "Kabel" muss hier entschieden werden, welches Kabel entfernt werden muss und welches nicht.

Schwierigkeit: ★★★★

05 Verdrillte Kabel beim AATiS

06 Logikgatter

Eine Hand voll Eingänge, Logikgatter und zwei Ausgänge, die richtig eingestellt werden wollen.

Schwierigkeit: ★★★☆

06 Logikgatter beim AATiS

07 Widerstand

Der richtige Widerstand muss eingesetzt werden. Welcher der richtige ist, entscheidet der Widerstands-Farbcode.

Schwierigkeit: ★★☆☆

07 Widerstand beim AATiS

08 Messgerät

Einem Flussdiagramm folgend muss man sich hier durch die Messpunkte messen und die richtigen Drahtbrücken herstellen.

Schwierigkeit: ★★★☆

08 Messgerät beim AATiS

09 Schieberegister

Wie bei einem echten Schieberegister muss man hier die Eingänge manipulieren um eine spezielle Sequenz im Schieberegister einzustellen.

Schwierigkeit: ★★★★

09 Schieberegister beim AATiS

10 Schaltplan

Hinter den Buchstaben A bis F liegt eine versteckte Schaltung. Die muss man heraus finden, um die Stecker richtig verbinden zu können.

Schwierigkeit: ★★★☆

10 Schaltplan beim AATiS

11 ASCII

Einige angezeigte Zeichen müssen als ASCII-Code in Hex-Zahlen eingegeben werden.

Schwierigkeit: ★★☆☆

11 ASCII beim AATiS

12 Labyrinth

Der Marker muss durch ein unsichtbares Labyrinth navigiert werden.

Schwierigkeit: ★★★☆

12 Labyrinth beim AATiS

13 Oszilloskop

Abhängig von der angezeigten Funktion muss das Oszilloskop entsprechend eingestellt werden.

Schwierigkeit: ★★★★

13 Oszilloskop beim AATiS

50 Nervöser Knopf

Immer, wenn sich dieses Modul aktiviert, dann muss man im richtigen Moment den Knopf drücken.

Schwierigkeit: ★☆☆☆

50 Nervöser Knopf beim AATiS

51 Drehdings

Man muss dafür sorgen, dass die beiden drehenden Dinger sich nicht berühren.

Schwierigkeit: ★★☆☆

Wird nicht erhältlich sein.

52 Tongenerator

Man muss dafür sorgen, dass die wandernde LED nie das rote Ende berührt, indem man den Kippschalter immer wieder bedient.

Schwierigkeit: ★★☆☆

52 Tongenerator beim AATiS

70 Batterien

Fügt einige Batterien als optisches Merkmal hinzu, hat aber keinen Einfluss auf das Entschärfen.

Wird nicht erhältlich sein.

71 Lüfter

Fügt einen Lüfter als optisches Merkmal hinzu, hat aber keinen Einfluss auf das Entschärfen.

Wird nicht erhältlich sein.

Fortsetzung

Aktuell sind keine neuen Module in Entwicklung, weil mein aktueller Job das nicht zulässt. Aber wenn du Ideen für neue Module hast, darfst du mir gerne eine E-Mail an info (ät) tetopia.de schreiben! Es bestehen gute Chancen, dass ich in Zukunft noch einmal weiter basteln werde.

Unterstützung

Wenn du mir bei der Entwicklung helfen willst, dann kannst du das z.B. tun, indem du mir den Fragebogen ausfüllst und an info (ät) tetopia.de zuschickst.
Fragebogen


Technisches Konzept

Die Bombe ist modular aufgebaut. Der Timer kontrolliert die einzelnen Rätsel-Module. Das können je nach Variante 4 bis 10 Stück sein (frühere Modelle konnten bis zu 14 Module ansteuern).
Die Module sind im Master-Slave-Prinzip mit dem Timer verbunden. Der Timer überprüft die Module reihum und fragt ihren Status ab. Alle Module haben die gleiche Schnittstelle. Auf dieser Basis können beliebige Module realisiert werden, die selbstständig erkennen, ob sie gelöst wurden oder ein Fehler gemacht wurde. Die Module können beliebig angeordnet werden. Manche von ihnen müssen vor jeder Runde "aufgebaut" werden, andere initialisieren sich vollständig selbst.

Der Timer und jedes Modul haben einen eigenen Mikrocontroller, genauer gesagt einen ATmega328P, der Controller, der auch in vielen Arduinos verbaut ist. Dieser Controller mit 28 Pins hat genug Speicher, um sein jeweiliges Programm zu speichern und genug Pins für die allermeisten Module. Ein ATtiny hätte zwar für manche Module auch genügend Pins, aber der Speicher dieser Serie ist zu klein für die Größe des Programms.
Reichen bei vielen Ein- oder Ausgängen selbst die Pins eines ATMegas nicht, kann man die relativ einfach mit einem Schieberegister (74HC595) für die Ausgänge oder mit einem Multiplexer (74HC4051) für Eingänge verwenden. Der Multiplexer geht auch als Erweiterung für die Ausgänge, braucht dabei aber einen Pin mehr für die Ansteuerung als ein Schieberegister.
Ansonsten bestehen die meisten Module hauptsächlich aus LEDs und Knöpfen, einige Module verwenden auch kleine OLED-Displays. Manche haben auch "Spezialkomponenten" wie ein Poti oder Inkrementalgeber, je nach dem, wie das Modul bedient werden soll.

Das "Gehäuse" besteht im Prinzip aus einer Grundplatte, in der die einzelnen Module und der Timer montiert werden können. Jeder Steckplatz hat seinen eigenen Bus-Anschluss-Stecker. Ein Modul/der Timer muss nur an diesem Stecker angeschlossen werden, dann ist alles funktionstüchtig. Stromversorgung und Kommunikation ist alles in einer Verbindung verbaut.
Das Gehäuse kann entweder mit einem Laser-Cutter oder mit einer CNC-Fräse gefertigt werden.

Kommunikation läuft über die UART-Schnittstelle, weil alle anderen Verbindungen entweder mehr Pins brauchen (SPI braucht 3 Pins), oder dringend benötigte Pins belegen (I2C verwendet Pins, die auch als Analogeingang verwendet werden). Bei der Wahl der Adressierung fiel die Entscheidung auf einen Hardware-Slave-Select, um jedem _Steckplatz_ (nicht jedem Modul!) eine "Adresse" zuzuweisen. Damit können die Module alle gleich programmiert und bestückt werden, es muss keine Rücksicht auf irgendwelche Adressen in der Software genommen werden. Auch mehrere Module gleichen Typs sind damit kein Problem, für den Master sehen sowieso alle Module gleich aus. Noch ein Grund kein I2C zu verwenden, der braucht nämlich eine Software-Adressierung. Die kann man zwar überlisten, aber dann bleibt immer noch das Problem, dass I2C die "falschen" Pins benötigt.

Die Software wurde teilweise in der Arduino-IDE, später dann in der VisualStudio-Erweiterung VisualMicro entwickelt. Die Arduino-Infrastruktur habe ich verwendet, weil es damit leichter ist "mal eben schnell" eine Idee umzusetzen und ich bereits mit dem System vertraut war. Über den (übrigens auch in der Arduino-IDE integrierten) avrdude kann man auch über Kommandozeile die Fuses und den Bootloader oder das Programm direkt brennen. Das ist dann interessant, wenn man mal mehr als nur einen ATmega am Stück programmieren möchte.

Entwicklertagebuch

Begonnen hat alles im Januar 2018 auf einem Breadboard. Als erstes habe ich ein Kabel-Modul entworfen, dann den Timer dazu.

Hier sieht man die Entwicklungsschritte: Als erstes auf einem Breadboard aufgebaut und die Programmierung getestet, dann der Entwurf der ersten Platine, die ich dann anschließend auf einer Lochrasterplatine aufgebaut habe.


Jetzt war schon klarer, welche Dimensionen das ganze haben sollte, der nächste Platinenentwurf (vom Binärzahlen-Modul) hat schon die finale Größe, aber die genaue Pinbelegung des ATMegas wurde danach noch einmal geändert. Das lässt sich aber in der Software kompensieren, so dass dieses Modul der erste voll funktionsfähige Prototyp ist. Eine dünne Sperrholzplatte war gerade zur Hand, daraus sind die ersten Deckplatten entstanden.


Jetzt stand als nächstes das Gesamtsystem im Fokus. Der Timer bekommt jetzt die meisten seiner Funktionen. Um sie zu testen wurde ein System mit 2 Testmodulen und dem Timer auf Breadboards und dem schon fertigen Binärzahlen-Modul aufgebaut.


Nachdem klar war, dass das so in etwa ganz gut funktioniert, habe ich Platinen für den Timer und 5 weitere Module entworfen, ein siebtes Modul haben Valsev und Seval in meinem Programmier-Workshop entworfen. Aus diesen Platinen entstand der erste ernsthaft spielbare Prototyp.


So habe ich bis Ende des Jahres 2018 in der Version 1 folgende Module und den Timer realisiert:

Nach dem Abschluss meiner letzten Prüfung and er Uni im Sommer 2019 hatte ich dann endlich Zeit mich an eine Überarbeitung zu machen und ein paar neue Module zu entwerfen. Als erstes bin ich von Fritzing auf KiCad umgestiegen. Fritzing ist zwar sehr gut für den Einstieg, kommt aber bei größeren oder nicht-Standard-Teilen schnell an seine Grenzen. KiCad ist auch kostenlos und besser für eine professionelle Entwicklung geeignet. Natürlich ist das Programm auch komplizierter, aber weil ich mir die Zeit genommen habe und _vorher_ ein paar Tutorials dazu angeschaut habe, ist mir der Umstieg sehr leicht gefallen.
Jetzt hieß es erstmal alle alten Module in die neue Software zu übertragen... Bei der Gelegenheit habe ich auch gleich einige dringend nötige Verbesserungen eingepflegt, wie z.B. einen neuen Steckverbinder zum Bus, der jetzt endlich einen Verpolungsschutz hat.
Dann ging es endlich daran neue Module zu entwerfen! Neu im Sortiment sind das Messgerät und das Schieberegister, außerdem zwei nervige Needy-Module und zwei Module mit Lüfter und Batterien.

Natürlich ging auch immer die Entwicklung des Handbuchs weiter. In dieser Version habe ich auch die Möglichkeit eingeführt, die Bombe auf eine vereinfachte Variante umstellbar zu machen. Damit ist es jetzt leichter möglich, dass auch Leute ohne Erfahrung mit der Bombe es auch schaffen können sie zu entschärfen.
Außerdem habe ich parallel dazu einen Artikel für das Praxisheft 30 des AATiS geschrieben, in dem die Bombe als Bausatz beschrieben wird.

Ich durfte sogar meine Masterarbeit ab Dezember 2019 über dieses Projekt schreiben. Nachdem ich mit dem Schreiben fertig war und ein wenig Luft hatte, während ich auf meine Korrekturleser und dann den Druck gewartet habe, habe ich die Finger nicht davon lassen können weitere Module zu entwickeln. Dabei sind insgesammt 5 Module entstanden:

Parallel dazu war eigentlich ein Workshop beim Bundeskongress des AATiS in Goslar geplant, aber der ist leider der Corona-Pandemie zum Opfer gefallen. Seit März 2020 sind der Timer und die ersten vier Module als Bausatz beim AATiS erhältlich, März 2021 folgten der große Koffer, eine verbesserte Version des Timers und die Module 05 bis 09 sowie 50.


Letztes Update: 22.03.2023