Elektronisches Schiffe versenken und andere Spielautomaten

Erfinde deinen eigenen „Schiffe Versenken“-Spielautomat mit elektronischer Anzeige. Du bist der Käpt’n, stellst die Regeln auf und forderst deine Freunde heraus. Sie werden überrascht sein, wenn plötzlich ihre Schiffchen wirklich im Wasser versinken.

Besonderheiten:

In den Schiffchen sind Magnete versteckt. Durch die Magnete an den Angriffsstäben kann man die Schiffe von unten zum Grund des „Meeres“ ziehen. Zwei Spieler erhalten abwechselnd die Chance, die Schiffchen des Gegners zu versenken. Wer keine Schiffe mehr hat, hat verloren. Licht und Sound zeigen an, wer am Zug ist.

Gut zu wissen:

Du kannst löten und hast bereits einige Erfahrung mit Arduino-Programmierung gesammelt.

Das lernst du kennen:

Du wirst viel über Magnetismus lernen und wie du mit Arduino Musik machst und LEDs leuchten lässt.

Schwierigkeitsgrad:

Champions

Eine Einsteiger-Version findest du hier.

Dauer:

4-5 Stunden

Hinweise für Mentoren

Für Anfänger kann man den elektronischen zweiten Teil weglassen und einfach das "Schiffe Versenken" Spiel bauen. Der zweite Teil benötigt etwas Erfahrung im Löten und Arduino programmieren.

Tipp:

Wer das Projekt "Blinkende Kleidung" gemeistert hat, sollte mit dieser Anleitung auch zurecht kommen.

Materialien & Werkzeuge

Materialien, die du brauchst:

 

  1. Ein kleiner Karton mit mindestens 10 cm Höhe
  2. Ein großer stabiler Karton für das Becken (oder eine wasserdichte Plastik-Box)
  3. Ein Müllsack
  4. 3 Tischtennisbälle 
  5. Buntes Klebeband
  6. 2 Holzstäbe mit 1 Meter Länge
  7. Neodym Magnete (möglichst stark, max. 1cm Durchmesser)
  8. Ein Arduino Board
  9. 1-3 LEDs in zwei Farben
  10. Ein Piezo Lautsprecher
  11. 2 220 Ohm Widerstände (Farbcode rot-rot-braun-gold)
  12. Stiftleiste mit Pinsteckern für Arduino
  13. Schrumpfschlauch (oder Isolierband)
  14. Kabel (flexible Litze oder festen Draht, diese Anleitung benutzt Draht)
  15. Breadboard
  16. Steckkabel für Breadboard
  17. USB-Verbindungskabel für Arduino
  18. 9 Volt Block und Batterieclip mit Hohlstecker für Ardunio

 

Die Kartons:  Schau dir die Bilder an und entscheide, welche Kartons passend sind. Deine Konstruktion sollte aber stabil genug sein, um das Gewicht des Wassers im Becken tragen zu können. 

Tipp: Nutze einfach eine Plastik-Kiste für das Becken, wenn du eine findest.

  1. Lötkolben
  2. Lötzinn
  3. Halterung für Lötkolben
  4. Abisolierzange
  5. „Dritte Hand“ oder eine menschliche helfende Hand
  6. Kleber für Karton
  7. Cuttermesser
  8. Schere

Außerdem benötigst du natürlich einen Computer, um dein Arduino zu programmieren.

 

 

Spielfeld

Baue das Spielfeld

1

Bereite das Spielfeld vor

Entscheide, welcher der Kartons das Wasserbecken, also das Spielfeld, werden soll. Schneide eventuell überstehende Deckel oder Ecken ab, damit du oben eine flache Kante für die Folie erhältst.

Tipp: Das Becken muss mindestens 6 cm tief sein, tiefer ist natürlich auch OK.

2

Bereite den Spieltisch vor

Schneide zuerst eventuell vorhandene Deckel an der Öffnung ab.

Damit man später mit den Holzstäben unter das Becken kommt, schneide, ähnlich wie bei uns, große Löcher in zwei gegenüberliegende Seiten. Wir mussten wacklige Teile des Kartons mit Klebeband fixieren.

Klebe die Kartons nun aufeinander, am besten mit Kleber und zusätzlich mit Klebeband.

So sieht der fertige Spieltisch aus.

Wichtig: Lass an den Ecken schräge Stützen stehen, wie in unseren Bildern, sonst knicken dir die Seitenteile ab! Der Karton muss stabil genug sein, um das Wasserbecken zu tragen. 

3

Dichte das Becken ab

Schneide den Boden des Müllsacks ab, um ihn rechteckig ausbreiten zu können. Schneide dann ein Rechteck aus der Folie so zurecht, dass es an allen Seiten mindestens 6 cm über den Karton hinausragt. Tipp: Je höher dein Becken wird, desto größer muss die Folie im Vergleich zum Karton werden.

Gib´ etwas Kleber an alle Seiten des Kartons und klebe dann die Folie in den Karton.

Fixiere die Folie an der oberen Kante rundherum mit Klebeband. Fertig!

Spielelemente

Baue die Spielelemente

Damit jeder Spieler weiß, welche Schiffe er versenken muss, und welche zu seiner eigenen Mannschaft gehören, kennzeichnen wir die Schiffchen mit zwei unterschiedlichen Farben.

Tipp: Verwende die gleichen Farben für das Klebeband der Schiffchen und die LEDs der Anzeigetafel. Dann sieht jeder sofort, welcher Spieler an der Reihe ist. 

4

Bastle die Schiffe

Zerschneide drei Tischtennisbälle, damit du sechs gleiche Hälften hast. Lass dir von einem Erwachsenen helfen, wenn du Probleme hast.

Für den nächsten Schritt brauchen wir die Neodym Magnete. Ziehe einen nach dem anderen vom Stapel und lege sie immer mit der gleichen Seite (dem gleichen Pol) nach oben auf den Tisch.

Du benötigst 6 Magnete und 6 Schiffchen (Tischtennisbälle).

Nimm jeweils mit einem Stück Klebeband einen Magnet auf und klebe ihn in einen Tischtennisball. 

5

Präpariere die Angriffsstäbe

Die Holzstäbe rüstest du an einem Ende auch mit jeweils einem Neodym Magnet aus.

So sehen die Schiffe und Angriffsstäbe der beiden Spieler aus, wenn sie fertig sind.

Drehe die Schiffe um und versuche, sie mit dem Angriffsstab aufzusammeln

Teste die Spielelemente!

Tipp: Du kannst jetzt schon losspielen. Die folgende Erweiterung durch das Arduino Board ist zwar sehr interessant, aber nicht zwingend nötig.

Steuerung

Bereite die Spielsteuerung vor

6

Die Schaltung auf einem Breadboard zusammenstecken

Stecke folgende Schaltung zusammen:

  • Stecke ein Kabel vom GND-Pin des Arduino zu der blauen „Minus-Leiste“ des Breadboards
  • Den Piezo-Lautsprecher verbindest du durch Kabel mit dem Pin 8 des Arduino und mit der blauen „Minus-Leiste“ auf dem Breadboard
  • Die „Plus-Beinchen“ der roten LEDs verbindest du mit dem Pin 10 des Arduino. Die „Minus-Beinchen“ verbindest du durch deinen 220 Ohm Widerstand mit der „Minus-Leiste“ des Breadboards.
  • Die grünen LEDs nutzen den Pin 11 des Arduinos und auch einen 220 Ohm Widerstand

Tipp: Bei Parallel-Schaltungen wie hier kannst du eine beliebige Anzahl an LEDs pro Farbe benutzen. Mehr dazu erfährst du hier.

Einfacher wird es, wenn du jeweils nur eine LED nutzt. Mit jeder zusätzlichen LED steigt der Arbeitsaufwand der folgenden Schritte!

 

 

7Programmiere die Spiellogik

Schließe nun das Arduino per USB an deinen Computer an.

Starte dann die Arduino-Software.

 

Wichtig: Kopiere den gesamten folgenden Code aus der Anleitung und ersetze den vorhandenen Code in deinem Arduino-Fenster. Danach nutze den Hochladen-Button, um den Code auf das Arduino zu laden. Jetzt wird es spannend…

// Die folgenden Zeilen stellen die Definitionen der Tonhöhen und Tonfrequenzen zur Verfügung
#define NOTE_B0  31
#define NOTE_C1  33
#define NOTE_CS1 35
#define NOTE_D1  37
#define NOTE_DS1 39
#define NOTE_E1  41
#define NOTE_F1  44
#define NOTE_FS1 46
#define NOTE_G1  49
#define NOTE_GS1 52
#define NOTE_A1  55
#define NOTE_AS1 58
#define NOTE_B1  62
#define NOTE_C2  65
#define NOTE_CS2 69
#define NOTE_D2  73
#define NOTE_DS2 78
#define NOTE_E2  82
#define NOTE_F2  87
#define NOTE_FS2 93
#define NOTE_G2  98
#define NOTE_GS2 104
#define NOTE_A2  110
#define NOTE_AS2 117
#define NOTE_B2  123
#define NOTE_C3  131
#define NOTE_CS3 139
#define NOTE_D3  147
#define NOTE_DS3 156
#define NOTE_E3  165
#define NOTE_F3  175
#define NOTE_FS3 185
#define NOTE_G3  196
#define NOTE_GS3 208
#define NOTE_A3  220
#define NOTE_AS3 233
#define NOTE_B3  247
#define NOTE_C4  262
#define NOTE_CS4 277
#define NOTE_D4  294
#define NOTE_DS4 311
#define NOTE_E4  330
#define NOTE_F4  349
#define NOTE_FS4 370
#define NOTE_G4  392
#define NOTE_GS4 415
#define NOTE_A4  440
#define NOTE_AS4 466
#define NOTE_B4  494
#define NOTE_C5  523
#define NOTE_CS5 554
#define NOTE_D5  587
#define NOTE_DS5 622
#define NOTE_E5  659
#define NOTE_F5  698
#define NOTE_FS5 740
#define NOTE_G5  784
#define NOTE_GS5 831
#define NOTE_A5  880
#define NOTE_AS5 932
#define NOTE_B5  988
#define NOTE_C6  1047
#define NOTE_CS6 1109
#define NOTE_D6  1175
#define NOTE_DS6 1245
#define NOTE_E6  1319
#define NOTE_F6  1397
#define NOTE_FS6 1480
#define NOTE_G6  1568
#define NOTE_GS6 1661
#define NOTE_A6  1760
#define NOTE_AS6 1865
#define NOTE_B6  1976
#define NOTE_C7  2093
#define NOTE_CS7 2217
#define NOTE_D7  2349
#define NOTE_DS7 2489
#define NOTE_E7  2637
#define NOTE_F7  2794
#define NOTE_FS7 2960
#define NOTE_G7  3136
#define NOTE_GS7 3322
#define NOTE_A7  3520
#define NOTE_AS7 3729
#define NOTE_B7  3951
#define NOTE_C8  4186
#define NOTE_CS8 4435
#define NOTE_D8  4699
#define NOTE_DS8 4978

int RundenZeit; // Legt eine Variable für die Rundendauer an

void setup() {
  
    RundenZeit=5000; // Legt die Rundendauer auf 5 Sekunden fest. Verändere diesen Wert, wie du willst
    
    pinMode(8, OUTPUT); // Definiert den Pin 8 als Ausgabe-Pin, um den Lautsprecher steuern zu können
    
    pinMode(10, OUTPUT); // Definiert den Pin 10 als Ausgabe-Pin, um die roten LEDs steuern zu können
    pinMode(11, OUTPUT); // Definiert den Pin 11 als Ausgabe-Pin, um die grünen LEDs steuern zu können
}

void loop() {
  
  // Spieler "Rot" ist an der Reihe: 
  digitalWrite(10,HIGH); // Schickt Strom durch Pin 10 zu den roten LEDs
  digitalWrite(11,LOW); // Stoppt den Stromfluss durch Pin 11 zu den grünen LEDs
  delay(RundenZeit); // Für die Dauer einer Runde verändert sich nichts, die roten LEDs leuchten, die Grünen nicht
  
  // Melodie, die den Rundenwechsel andeutet, erklingt: 
  tone(8, NOTE_C2, 1000/4); // Start des Rundenwechsels: Der erste Ton der Melodie ertönt. In dem Fall eine Viertelnote der Tonhöhe C (in der zweiten Oktave)
  delay(400); // Erzeugt eine Pause vor dem nächsten Ton
  tone(8, NOTE_E2, 1000/4); // Der zweite Ton der Melodie ertönt. In dem Fall eine Viertelnote der Tonhöhe E (in der zweiten Oktave)
  delay(400); // Erzeugt eine Pause vor dem nächsten Ton
  tone(8, NOTE_G2, 1000/4); // Der dritte Ton der Melodie ertönt. In dem Fall eine Viertelnote der Tonhöhe G (in der zweiten Oktave)
  
  // Spieler "Grün" ist an der Reihe: 
  digitalWrite(10,LOW); // Stoppt den Stromfluss durch Pin 10 zu den roten LEDs
  digitalWrite(11,HIGH); // Schickt Strom durch Pin 11 zu den grünen LEDs
  delay(RundenZeit); // Für die Dauer einer Runde verändert sich nichts, nun leuchten die grünen LEDs, die Roten nicht

  // Melodie, die den Rundenwechsel andeutet, erklingt: 
  tone(8, NOTE_C2, 1000/4); // Start des Rundenwechsels: Der erste Ton der Melodie ertönt. In dem Fall eine Viertelnote der Tonhöhe C (in der zweiten Oktave)
  delay(400); // Erzeugt eine Pause vor dem nächsten Ton
  tone(8, NOTE_E2, 1000/4); // Der zweite Ton der Melodie ertönt. In dem Fall eine Viertelnote der Tonhöhe E (in der zweiten Oktave)
  delay(400); // Erzeugt eine Pause vor dem nächsten Ton
  tone(8, NOTE_G2, 1000/4); // Der dritte Ton der Melodie ertönt. In dem Fall eine Viertelnote der Tonhöhe G (in der zweiten Oktave)
  
  // Ab hier wird die Loop-Funktion wieder von oben abgearbeitet: Spieler „Rot" ist an der Reihe 
}
  • Markiere den kompletten Code und kopiere ihn. (Rechtsklick auf die Markierung und "kopieren" oder "copy" auswählen.)
  • Gehe nun in dein Arduino-Fenster und lösche den dort vorhandenen Code.
  • Klicke dann mit der rechten Maustaste in die weiße Fläche.
  • Wähle "einfügen".
  • Achte darauf, die "}"-Klammer am Ende des Codes mit zu kopieren.
  • Vergiss nicht, den Code mit dem "Hochladen"-Button auf das Arduino zu laden, um die Programmierung testen zu können.

Wenn alles klappt, sollte es so aussehen

Spieler „Rot“ und Spieler „Grün“ sind abwechselnd an der Reihe. Bei Spielerwechsel ertönt eine Melodie.

Es funktioniert nicht?

Elektronik

Baue die Elektronik ein

8

Die Elektronik vorbereiten

Bereite folgende Elemente, wie im Bild, vor

  • Die LEDs, die du nutzen möchtest, in zwei Farben
  • Jeweils kurze, rote und schwarze Kabel, um die LEDs zu einer Kette zu verlöten. Kabellänge etwa halb so lang wie das Spielfeld breit ist
  • Jeweils lange, schwarze und rote Kabel, um die LED-Ketten mit dem Arduino zu verbinden. Kabellänge mindestens halb so lang wie das Spielfeld lang ist
  • Ein Piezo-Lautsprecher
  • Die beiden Widerstände (Farbcode: rot, rot, braun, gold)

Bereite die LED-Kette vor

Verknüpfe die langen Beinchen der LEDs mit roten Kabeln und die kurzen Beinchen der LEDs mit schwarzen Kabeln. Knicke dazu die Beinchen der LED und die Kabelenden so um, dass sie nicht mehr auseinanderfallen können. 

Verbinde auch schon die langen Kabel mit einem Ende deiner LED-Kette. 

Tipp: Wenn du flexiblen Litzendraht verwendest, kannst du die Kabelenden mit den umgeknickten Beinchen der LED verzwirbeln, also verdrehen. 

 

9

Löte die Verbindungen der LED-Kette

Verlöte alle Verbindungen mit genug Lötzinn, so dass du am Ende eine stabile LED-Kette hast. 

Verfahre mit den anderen LEDs genauso!

Baue die Elektronik ein

10

LED-Ketten ankleben

Klebe jeweils eine LED-Kette mit Klebeband an eine der beiden Seiten der Spielfläche.

Die langen Kabel der LED-Ketten müssen auf einer Seite in der Mitte des Spielfelds zusammenkommen. An diese Stelle wird das Arduino angebracht.

11

Widerstände anlöten

An die beiden roten Drähte der LED-Ketten löten wir nun noch einen Widerstand (220 Ohm). Schiebe vorher Schrumpfschlauch auf die Drähte, dann kannst du die Lötstellen danach professionell isolieren.

Der Piezo-Lautsprecher benötigt keinen Widerstand.

Tipp: Die Widerstände kannst du, wie in unserem Beispiel, an das rote Kabel oder, wie auf dem Breadboard, an das schwarze Kabel löten. 

12

Löte die Pin-Stifte an

Da der Piezo-Lautsprecher mit flexiblem Litzenkabel ausgestattet ist, löten wir an diese Kabel Pin-Stifte für die Arduino-Pins.

Tipp: Wenn du weitere flexible Litzenkabel nutzt, löte auch an diese Kabel Pin-Stifte. Die Widerstände kann man einfach in die Arduino-Pins stecken, wenn man die Beinchen auf etwa 1 cm kürzt.

13

Das Arduino anschließen

Nun sollte alles vorbereitet sein. Das Arduino wird wie folgt angeschlossen:

·       Alle drei schwarze Kabel werden in jeweils einen der drei GND Pins gesteckt

·       Die beiden roten Kabel der zwei LED-Ketten (die mit den Widerständen) kommen in Pin 10 und 11

·       Das rote Kabel des Piezo-Lautsprecher kommt in Pin 8

Klebe sowohl das Arduino als auch den 9-Volt-Batterie-Block an den Spielautomaten. Wir haben dafür zusammengerolltes Klebeband benutzt. Besser ist beidseitiges Klebeband.

Verbinde alle Kabel und den 9-Volt-Batterie-Block mit dem Arduino. Nun sollte sowohl der Lautsprecher als auch die LED wieder funktionieren. Zeit für den ersten Test.

14

Teste deinen Spielautomaten

Tipp: Gehe nach draußen für den ersten Test, es könnte etwas nass werden.

Fülle das Becken mit Wasser und prüfe, ob alles dicht ist. Der Wasserspiegel sollte nur ein wenig höher als die Höhe der Boote sein.

Lege die Boote ins Wasser. Versuche die Boote von unten mit dem Magneten an den Angriffsstäben zu versenken. Die Magnetkraft sollte die Boote unter Wasser ziehen.

Außerdem sollten natürlich die LEDs abwechselnd leuchten und bei Rundenwechseln eine Melodie ertönen.

Das Spiel funktioniert nicht richtig?

15

Der Feinschliff

Wir haben unseren Automaten komplett mit schwarzem Klebeband beklebt. Du kannst ihn aber auch anmalen.

Die beiden Seiten des Spielfelds haben wir mit Klebeband in den Farben der Spieler markiert. 

Dein Spiel, deine Regeln!

Werde kreativ

Wie du das Spiel spielst, ist dir überlassen. Wer muss welche Schiffe versenken? Was ist, wenn man ein eigenes Schiff versenkt? Was passiert, wenn man ein Schiff versenkt, während der andere Spieler an der Reihe war? Denke dir verschiedene Regeln aus und probiere es mit deinen Freunden. Du kannst auch weitere Schiffe bauen oder sogar eine dritte Farbe einführen.

Tipp: Im Code gibt es die Zeile „RundenZeit=5000;“. Wenn du für 5000 einen anderen Wert eingibst, und den Code neu auf das Arduino lädst, veränderst du die Rundendauer. 5000 bedeutet 5000 Millisekunden, also 5 Sekunden. 

Du kannst auch, so wie dieser Spielautomat, weitere Elemente erfinden. Hier ein Sichtschutz, damit man die Schiffe des Gegners nicht mehr sehen kann. 

Inspiration

Entwickle ganz eigene Ideen und lass dich inspirieren

Hier die Erfinder des ersten Schiffe-Versenken-Spiels bei einer Test-Session.
Du hast Ideen für ganz andere Spiele? Dann lege am besten gleich los. Bei diesem Beispiel muss man mit einer Schleuder den Ball ins Ziel schießen und das Spiel erkennt, wenn man getroffen hat.
Wenn du es magst, mit Holz zu arbeiten, bieten sich selbstgebaute Flipper-Automaten hervorragend an! Tipp: Die sind besonders beeindruckend, wenn sie leuchten, blinken und Geräusche machen!
Am meisten Spaß machen Spiele, wenn man sie zusammen spielen kann. Hier muss man zu zweit ein eine Murmel durch ein Labyrinth führen. Ist die Murmel am Ziel, leuchtet es und eine Melodie ertönt.