Wie wir ein Brettspiel mit Fernbedienung gemacht haben

Brettspiele sind eine der ältesten Unterhaltungen, die Freunde, Familien und Liebhaber von Live-Kommunikation und Emotionen rund um das Spiel zusammenbringen.

Heute möchte ich Ihnen erzählen, wie mein Freund und ich beschlossen haben, unser eigenes Brettspiel zu entwickeln, aber nicht einfach, sondern „klug“ .

Bild

Den zweiten Teil finden Sie hier: Link

Achtung! Viele Bilder auf.

Unser Spiel ist ein Brett- MoBA, in dem jeder Spieler seinen eigenen Helden mit seinen eigenen Eigenschaften und Fähigkeiten kontrolliert. Im Moment haben wir die erste Version des Prototyps aus Arduino und Sperrholz.

Das Hauptmerkmal unseres Spiels ist, dass die Figuren während des Spiels nicht berührt werden müssen. Das Spiel selbst muss sie bewegen und alle angewandten Fähigkeiten anzeigen. Der Spieler kann seinen Helden nur von einem Mobiltelefon aus beobachten und steuern.

Mehrere Gameplay-Gifs
gif

gif

gif

gif

Was ein intelligentes Spiel kann:


  • Bewegen Sie die Figuren selbst auf dem Feld.
  • Markieren Sie das Spielfeld (ganz oder in einem separaten Block) mit einer beliebigen Farbe.
  • Zeigen Sie dem Spieler, was er kann / kann / sollte, und machen Sie so die Spielregeln transparent.
  • Tauschen Sie Daten mit dem Smartphone jedes Spielers aus.

So sieht unser erster funktionsfähiger Build aus:

Bild

Wie ist die Idee entstanden?


Irgendwie habe ich mir den Arkham Horror Desktop gekauft. Nach dem Laden ging ich sofort zu meinen Freunden, um zu spielen. Leider hatte es noch keiner von uns gespielt und wir konnten 26 Seiten der Regeln nicht beherrschen.

Aus diesem Grund dachte ich, es wäre großartig, ein Brettspiel zu entwickeln, das die Umsetzung der Regeln unabhängig überwacht, die erforderlichen Werte berechnet (ohne Würfel, Lineale und ein schriftliches Blatt Papier) usw.

Einer meiner Freunde mochte die Idee sehr und er stimmte der Teilnahme zu.

Implementierung


Wir hatten keine Erfahrung mit der Entwicklung von Hardwaregeräten (keiner von uns hielt Arduino in den Händen), und die Programmiererfahrung beschränkte sich auf die Universität und die Entwicklung kleiner Anwendungen für Android. Dies fügte jedoch nur Interesse und Verlangen hinzu.

Nachdem wir alle Details besprochen hatten, kamen wir zu Folgendem:

  • CoreXY bewegt die Figuren über das Feld, wobei sich ein 12-V-Magnet auf seinem Schlitten befindet.
  • Zwei Nema 17 17HS4401 Schrittmotoren und DRV8825 Treiber sind für die Bewegung verantwortlich.
  • Ein LED-Streifen mit Pixeladressierung WS2812b wird verwendet, um das Feld hervorzuheben.
  • Das Arduino Mega 2560, auf dem das von uns entwickelte Schild installiert ist, ist für das Management verantwortlich.
  • Für die Datenübertragung zwischen dem Spiel und den Smartphones der Spieler sind 4 HM10 BLE-Module verantwortlich.
  • All dies wird von einem 12-V-Netzteil, 120-W-Strom und einem 5-V-DC-DC-Wandler gespeist.
  • Auf der Seite des Smartphones befindet sich eine mobile Anwendung (derzeit unter Android), die tatsächlich den Kern des gesamten Spiels bildet. Von dort auf BLE gibt es Befehle zu Bewegung, Ein / Aus-Magnet und LEDs.

Die Mechanik


Wir sind nicht sofort zu CoreXY gekommen. Gleich zu Beginn der Kinematik haben wir uns von verschiedenen DIY-Anleitungen für die Montage von 3D-Druckern inspirieren lassen.

Unten sehen Sie ein Foto unseres ersten Versuchs:

Bild

Um die Komponenten herzustellen, haben wir einen billigen gebrauchten 3D-Drucker gekauft, auf dem bereits 6200 Meter Kunststoff gedruckt wurden und der bis heute einwandfrei funktioniert hat.

Diese Option hatte jedoch eine Reihe von Nachteilen:

  • Die Montage war schmerzhaft - die geringste Ungenauigkeit an der Position der Wellen - der Wagen hörte auf zu fahren.
  • Mindestens ein schlechtes Lager - der Wagen hörte auf zu fahren.
  • Zu hohe Höhe der gesamten Struktur.
  • Die Idee, dass sich der Motor auf einem beweglichen Teil befinden sollte, hat uns nicht gefallen.

Irgendwann stießen wir auf einen Artikel, der die CoreXY-Kinematik beschreibt, und entschieden uns für ihn. Sie hat beide Pluspunkte:

  • Die Montage ist einfach, weil Alle „benutzerdefinierten“ Teile werden auf einem CNC- oder 3D-Drucker erstellt.
  • Geringe Bauhöhe, die durch die Höhe des Schrittmotors begrenzt ist.
  • Schrittmotoren sind bewegungslos.

Also die Nachteile:

  • Große Größen. Das Bild mit dem 3D-Modell zeigt, dass die Gesamtfläche viel größer ist als die Fläche der Arbeitsfläche.
  • Lange Träger, an denen man ziehen muss.
  • Eine spezielle Art, den Wagen zu bewegen, auf die ich weiter unten eingehen werde.

Um alle Probleme maximal zu vermeiden, haben wir unser Modell in Tinkercad hergestellt und danach begonnen, Komponenten zu bestellen und zu drucken.

Bild

Das Spiel hat derzeit die folgenden physikalischen Parameter:
Breite: 780 mm Länge: 700 mm Höhe: 85 mm
Das Spielfeld: ein Quadrat mit einer Seite von 462 mm.
Basis: 12 mm dickes Sperrholz mit auf CNC ausgeschnittenen Löchern für die Montage von Teilen und Motoren.

Bild

Als das Modell fertig war, wirkte es klein und leicht ... Live ist es jedoch sehr groß und schwer. Jetzt verstehen wir, dass die gesamte Struktur optimiert werden muss:

  • Ersetzen Sie Sperrholz durch leichteres und dünneres Material.
  • Die Länge und Breite der Außenkontur sollte die Größe des Spielfelds nicht wesentlich überschreiten (möglicherweise müssen Sie die Kinematik ändern).

Im Folgenden werde ich die Funktionen beschreiben, auf die wir während der Montage gestoßen sind:

  • Um sicherzustellen, dass die Bewegung der Innenkontur und des Schlittens gleichmäßig und ohne Nebengeräusche verläuft, ist es wichtig, dass die Riemen parallel zu den Wellen verlaufen. Es ist auch ratsam, die Wellen zu schmieren. Wir haben gewöhnliches Öl für Nähmaschinen verwendet.
  • Zuerst verwendeten wir das LM8UU von Onkel Liao als Linearlager, aber wir stießen oft auf fehlerhafte Proben, die gelöst wurden, sofort zerbröckelten und die Welle zerkratzten. Deshalb beschlossen sie, sie gegen Graphitbuchsen auszutauschen.
  • Mit der CoreXY-Kinematik sind einige Funktionen in Bewegung. Wenn wir also nur einen Schrittmotor starten, fährt der Schlitten diagonal. Bei horizontaler Bewegung müssen die Motoren in die gleiche Richtung gestartet werden. Für vertikal - in entgegengesetzte Richtungen.

Um den Abstand entlang X und Y zu berechnen, müssen Sie die folgenden Formeln verwenden:

Bild

Spielfeld


Um das Spielfeld hervorzuheben, haben wir den LED-Streifen mit Pixeladressierung WS2812b ausgewählt, der für unsere Zwecke perfekt ist.

Die WS2812b ist eine RGB-LED in einem SMD5050-Gehäuse mit 4 Pins: VDD, VSS, DIN und DOUT.

Was sind die Anforderungen für das Feld:

  • Kleine Dicke, damit der Elektromagnet die Figur mitziehen kann.
  • Eine glatte Oberfläche, auf der das Gleiten problemlos durchgeführt werden kann.

Infolgedessen besteht das Spielfeld bedingt aus drei Teilen: dem Substrat, an dem der LED-Streifen befestigt ist, dem Klebeband selbst und der Oberflächenbeschichtung, auf der die Figuren gleiten.

Das Hauptproblem, mit dem wir konfrontiert sind, ist, woraus das Substrat hergestellt werden soll.
Im Moment verwenden wir Plexiglas, bei dem die Aussparungen unter dem Band auf einer CNC in einer Tiefe von 2 mm (Höhe des Bandes und der LED) ausgeschnitten wurden. Natürlich hat dieses Blatt zumindest etwas an Steifigkeit verloren und sich entlang der Schnittlinien stark gebogen. Also haben wir das Substrat einfach auf die Oberfläche geklebt. Vielleicht werden wir in der nächsten Version Plexiglas durch monolithisches Polycarbonat ersetzen.

Bild

Als Oberfläche wurde auch alles als Plexiglas ausgewählt, das nach der Reparatur auf einem 4 mm dicken, milchigen Balkon mit guten Dispersionsraten über mir lag.

Nachdem wir abends mit einem Lötkolben gesessen hatten, erhielten wir Folgendes:

Bild

Es gibt Bänder mit unterschiedlicher LED-Dichte. Normalerweise sind es: 144, 90, 60, 30 pro Meter. Wir haben auf einem Band mit 30 LEDs pro Meter angehalten, weil Bei Verwendung eines Bandes mit einer höheren LED-Dichte ist es schwierig, die Figuren ohne Kollisionen zu bewegen, und die für Lebensmittel erforderliche Leistung steigt.

Es ist zu beachten, dass die LEDs in Reihe geschaltet sind. Wenn Ihre erste LED durchbrennt, funktioniert der Rest nicht.

Unser Feld hat eine Größe von 14 * 14 Zellen, insgesamt 196 Pixel. Das Band arbeitet mit einer Spannung von 5V. Ein Pixel im Band besteht aus 3 LEDs - R, G, B, von denen jede 20 mA bei maximaler Helligkeit verbraucht. Es ist leicht zu berechnen, dass wir fast 12 A benötigen, wenn wir alle 196 Pixel in Weiß beleuchten wollen ...

Es ist sehr problematisch, ein kompaktes Netzteil oder einen DC-DC-Wandler zu finden, der einen solchen Strom bei 5 V erzeugen kann. Daher haben wir beschlossen, dass das Feld in unserem Spiel nicht zu mehr als 60% gefüllt sein sollte und keine weiß / graue Farbe (die Farbe, bei der alle 3 LEDs aufleuchten) verwendet wird, d. H. maximal 40 mA pro Pixel. Als Ergebnis erhalten wir, dass die Tabelle nicht mehr als 5 A verbrauchen sollte.

Ich habe oft die Empfehlung gesehen, dass das Band von zwei Seiten mit Strom versorgt werden muss, damit es nicht zu Spannungsverlusten kommt. Wir verbinden uns jedoch einerseits alle 100 LEDs mit dem Band und beobachten keine sichtbaren Spannungsabfälle.

Elektronik


Die Verwaltung aller Teile des Spiels erfolgt mit dem Arduino Mega 2560. Die folgenden Funktionen sind ihm zugewiesen:

  • Führen Sie eine Kalibrierung durch, bei der wir herausfinden, wie viele Schritte ein Schrittmotor ausführen muss, um 1 Zelle zu überwinden.
  • Empfangen Sie Befehle und Daten von der mobilen Anwendung und senden Sie den Ausführungsstatus zurück an BLE.
  • Bewegen Sie den Wagen gemäß den Koordinaten aus den von der mobilen Anwendung empfangenen Daten von Punkt A nach Punkt B.
  • Schalten Sie den Elektromagneten ein / aus.
  • Beleuchten Sie ein bestimmtes Pixel auf einem Tisch mit einer bestimmten Farbe. Die Pixelanzahl und Farbe werden von der mobilen Anwendung übertragen.

Der erste Prototyp wurde auf einem Steckbrett montiert und enthielt die folgenden Komponenten:

  • Arduino Mega 2560;
  • 2 Treiber Schrittmotor DRV8825;
  • 4 Endschalter;
  • BLE-Modul HM-10;
  • Transistor IRF530N - zur Steuerung eines Elektromagneten;
  • PSU MeanWell 12V 10A;
  • MeanWell DC-DC-Wandler von 12 V auf 5 V, 10 A heruntergefahren;

Bild

Nachdem wir sichergestellt hatten, dass alles funktioniert, beschlossen wir, dass wir unseren Schild für den Arduino Mega herstellen und schließlich die Verkabelung und ein paar Kabel entfernen müssen.

Aufgrund der mangelnden Erfahrung in der Entwicklung von Software haben wir uns entschlossen, dieses Geschäft einem Fachmann anzuvertrauen. Infolgedessen hat einer unserer Freunde das Board vollständig entwickelt und alle Komponenten installiert. Das Ergebnis ist unten zu sehen:

Bild

Ich kann die Qualität der Ausführung aufgrund mangelnder Erfahrung nicht beurteilen, aber das Board funktioniert einwandfrei. Den Schaltplan sehen Sie hier .

Mobile App


Die mobile Anwendung ist das Gehirn unseres Spiels. Es ist die Anwendung, die alle Informationen über den Status des Spiels, Charaktere usw. enthält. Anroid wurde als Entwicklungsplattform ausgewählt, die Hauptanforderung ist die BLE-Unterstützung (da in Zukunft geplant ist, eine Version des Spiels für iOS hinzuzufügen).

Im Gegensatz zur Elektronik hatten wir wenig Erfahrung mit der Entwicklung mobiler Anwendungen, daher planten wir, diese Phase schnell genug abzuschließen. Wie immer hat jedoch nicht alles wie geplant geklappt.

Bild

Wir haben schnell erkannt, dass wir tatsächlich ein vollwertiges Handyspiel schreiben müssen, bei dem die Anzeige von Informationen nicht nur der Bildschirm eines Mobiltelefons, sondern auch die Oberfläche eines Brettspiels ist.

Die Hauptfunktionalität der aktuellen Anwendung:

  • Suche nach BLE-Geräten, Identifizierung eines geeigneten Geräts für den Anschluss. Die Identifizierung umfasst einen „Handschlag“ - das Telefon muss sicherstellen, dass das angeschlossene Gerät wirklich ein Bluetooth-Modul eines Brettspiels und kein Fernseher ist.
  • Die Auswahl der Spieler (mindestens 2) aus den verfügbaren Helden, von denen es derzeit 4 gibt.
  • Bereitstellung aller erforderlichen Informationen für den aktuellen Spieler: über verfügbare Fähigkeiten, über deren Abklingzeiten , über Gegner usw.
  • Züge machen - Jeder Spieler steuert seine Züge mit Hilfe eines „Joysticks“, mit dem er Zellen zum Anwenden von Fähigkeiten, Bewegen usw. auswählt.

Wir haben keinen Sinn für Schönheit sowie die bekannten UX / UI-Designer, also haben wir das Design selbst gemacht, so gut wir konnten. In Zukunft planen wir, einen HNO-Arzt, eine Beschreibung sowie einen PVE- Modus hinzuzufügen, in dem die Spieler gegen Bosse in der Arena kämpfen.

Ergebnis


Im Moment haben wir einen voll funktionsfähigen Prototyp, den Sie spielen können (wenn auch auf einem Smartphone) und auf dem wir die Regeln und Mechanismen des Spiels verbessern. Wir haben ungefähr ein Jahr damit verbracht, es zu erstellen, an Wochenenden und seltenen Abenden zu arbeiten, wenn es Freizeit gab.

Wir haben einen ehrgeizigen Plan: Gleichgesinnte zu finden, den Prototyp fertigzustellen, das Gleichgewicht und die Spielregeln vollständig zu „lecken“ und zu versuchen, auf Kickstarter zu gehen Es wird einfach eine fantastische Erfahrung sein.

Wenn es interessant sein wird, werde ich Ihnen im nächsten Artikel mehr über die mobile Anwendung, das Spiel selbst, wie wir unsere Miniaturen hergestellt haben und was daraus wurde, erzählen.

Source: https://habr.com/ru/post/de425629/


All Articles