Inhaltsverzeichnis:

KerbalController: ein benutzerdefiniertes Control Panel für Rocket Game Kerbal Space Program - Gunook
KerbalController: ein benutzerdefiniertes Control Panel für Rocket Game Kerbal Space Program - Gunook

Video: KerbalController: ein benutzerdefiniertes Control Panel für Rocket Game Kerbal Space Program - Gunook

Video: KerbalController: ein benutzerdefiniertes Control Panel für Rocket Game Kerbal Space Program - Gunook
Video: Kerbal Space Program - Sonnenfinsternis 2024, Juli
Anonim
KerbalController: ein benutzerdefiniertes Control Panel für Rocket Game Kerbal Space Program
KerbalController: ein benutzerdefiniertes Control Panel für Rocket Game Kerbal Space Program

Warum einen KerbalController bauen?

Nun, weil das Drücken von Tasten und das Umlegen physischer Schalter sich so viel wichtiger anfühlt, als mit der Maus zu klicken. Vor allem, wenn es sich um einen großen roten Sicherheitsschalter handelt, bei dem Sie zuerst die Abdeckung öffnen müssen, den Schalter umlegen, um Ihre Rakete zu aktivieren, den Countdown zu starten und 3.. 2.. 1.. wir haben Abheben!

Was ist ein KerbalController?

Ein KerbalController, auch als Control Panel, Simpit (simuliertes Cockpit), DSKY (Display Keyboard) oder Custom Joystick bezeichnet, ist ein angepasstes Eingabegerät zur Steuerung des beliebten Raketenbaus-und-fliegen-und-hoffentlich-nicht-explodieren Spiel Kerbal Space Program kombiniert mit optionalen Ausgaben des Spiels, wie Statusleuchten, Telemetrieanzeigen und/oder Tankanzeigen.

Dieser spezielle Build umfasst Eingaben wie Rotations- und Translationssteuerungen über Joysticks, einen Gasschieber, viele Tasten mit Statusleuchten, LED-Tankanzeigen und ein Telemetrie-LCD-Display mit mehreren Modi.

Dieses Handbuch enthält alles, was Sie brauchen, um eine identische Kopie zu erstellen oder Anpassungen und Verbesserungen vorzunehmen, wie Sie es für richtig halten. Enthalten sind:

  • eine Stückliste
  • digitale Konstruktionszeichnungen bereit zum Laserschneiden
  • Verkabelungsanleitungen
  • Arduino-Code
  • Code für das zugehörige KSP-Plugin
  • Viele Bilder

Bereit zum Abheben? Lass uns gehen!

Schritt 1: Die Werkzeuge

Die Werkzeuge
Die Werkzeuge

Das wichtigste Werkzeug, das Sie für diesen Bau benötigen, ist ein Lötkolben. Dazu gehört etwas Lötzinn, ein Metall-Reinigungsschwamm zum Reinigen der Lötkolbenspitze und eine "dritte Hand".

Andere Werkzeuge sind eine Abisolierzange, ein Drahtschneider, eine Pinzette und einige kleine Schraubendreher.

Schritt 2: Teile und Grundlayout

Teile und Grundlayout
Teile und Grundlayout
Teile und Grundlayout
Teile und Grundlayout

Um den bestmöglichen Controller für Sie zu erstellen, müssen Sie genau auswählen, welche Tasten und Schalter Sie implementieren möchten. Denn jeder spielt das Spiel anders. Manche Leute fliegen Flugzeuge und bauen SSTOs (Single-Stage-to-Orbit). Andere bevorzugen Rover von Raumstationen. Und manche wollen einfach nur, dass die Dinge spektakulär explodieren!

Es hilft, alle Teile in ihrer ungefähren Größe zu zeichnen und sie in einem Vektor-Zeichenprogramm (wie Affinity Designer oder Inkscape) oder 3D-Zeichenprogramm (wie SketchUp) herumzuschleppen.

Wenn Sie einen einfacheren Build wünschen, können Sie einfach meinen Controller kopieren und die in der beigefügten Teileliste aufgeführten Teile erhalten.

Schritt 3: Erstellen Sie einen Prototyp (optional)

Erstellen Sie einen Prototyp (optional)
Erstellen Sie einen Prototyp (optional)
Erstellen Sie einen Prototyp (optional)
Erstellen Sie einen Prototyp (optional)

Wenn Sie meinen Controller kopieren, können Sie diesen Schritt überspringen.

Wenn Sie sich für ein benutzerdefiniertes Layout entscheiden, empfehle ich, zuerst einen Schuhkarton zu verwenden, um einen funktionierenden Prototyp mit den Hauptsteuerelementen zu erstellen. Es hilft wirklich, die Position der Hauptsteuerungen fein abzustimmen. Es ist auch schön, das Vertrauen zu haben, dass es funktioniert, bevor Sie weiterhin Zeit und Geld in den endgültigen Build investieren. Ich habe das Spiel tatsächlich eine ganze Weile mit meinem Schuhkarton-Controller gespielt. Ist es nicht die Kerbal-Methode, um mit geborgenen Teilen etwas zusammenzuhacken?

Schritt 4: Tipps zur Verkabelung

Tipps zur Verkabelung
Tipps zur Verkabelung
Tipps zur Verkabelung
Tipps zur Verkabelung
Tipps zur Verkabelung
Tipps zur Verkabelung

Löten Sie beim Erstellen eines Prototyps nicht alle Tasten ein, es sei denn, Sie möchten sie entlöten, wenn Sie das endgültige Gehäuse erreichen. Ich lötete einige Drähte an die Knöpfe und benutzte ein lötfreies Steckbrett, um die temporären Verbindungen zum Arduino herzustellen.

Wenn Sie die gesamte Elektronik an die letzte Frontplatte anschließen, können Sie Unordnung reduzieren, indem Sie Schleifen für 5 V und Masse erstellen. Sie verbinden nicht alle Massestifte direkt mit dem Arduino, sondern verbinden Masse an einem Knopf mit Masse am nächsten Knopf und schleifen rundherum. Schließlich verbinden Sie sich mit dem Arduino.

Nach dem Erstellen von Schleifen für Strom und Masse bleiben alle Verbindungen zu den Arduino-Pins erhalten. Ich empfehle, einige Streifen von Kopfstiften zu besorgen und die Drähte an diese zu löten. Sie können diese als großen Anschluss verwenden, sodass Sie Ihr Arduino zum Testen immer noch ausstecken können.

Die Länge der Drähte ist ein Balanceakt zwischen kurz genug, um das Gehäuse frei von übermäßigem Drahtgewirr zu halten (was Sie daran hindern könnte, die Box zu schließen) und lang genug, um Teile aus dem Weg zum Löten zu bewegen andere Teile hinein, ziehen Sie die Schrauben fest und stochern Sie während des Debuggens mit Ihrem Multimeter herum.

Schritt 5: Erhalten des Faceplate Lasercut

Den Faceplate Lasercut bekommen
Den Faceplate Lasercut bekommen
Den Faceplate Lasercut bekommen
Den Faceplate Lasercut bekommen
Den Faceplate Lasercut bekommen
Den Faceplate Lasercut bekommen

Beim Sägen und Lackieren von Hand ist es sehr schwierig, ein sauberes, professionelles Aussehen zu erzielen. Zum Glück ist Laserschneiden nicht mehr sehr teuer. Es ermöglicht extreme Präzision, solange Ihr Design genau ist.

Anbei ist mein Faceplate-Design in Formaten, die für Affinity Designer und andere Vektorzeichenprogramme wie das kostenlose InkScape geeignet sind.

Ich habe die Frontplatte in den Niederlanden bei Lichtzwaard lasergeschnitten. Sie haben seitdem geschlossen und die Aktivitäten wurden von Laserbeest übernommen, wo ich die Box laserschneiden ließ. Jeder Shop kann unterschiedliche Anforderungen an das Design haben, also erkundige dich vor dem Absenden bei deinem Shop. Sie bieten auch fast immer Designhilfe zum Stundensatz an.

Wichtige Dinge zu beachten:

  • Alles muss vektorbasiert sein. Deshalb wurde das Logo in meinem Faceplate-Design nicht geätzt. Beachten Sie, dass dies in den beigefügten Designs nicht festgelegt ist.
  • Sogar Text muss vektorbasiert sein. Also wandeln Sie diese Buchstaben in Kurven um!
  • Messen. Messen. Messen. Ich habe die erforderliche Größe für die Montage der Joysticks nicht berücksichtigt und musste sie hacken. Ist zum Glück gut gelaufen. Beachten Sie, dass dies in den beigefügten Designs festgelegt ist.

Nachdem Sie alles gründlich überprüft haben, senden Sie es an die Laserschneidwerkstatt. Rechnen Sie mit 40-50 Euro in den Niederlanden und erhalten Sie dieses schöne Ergebnis am nächsten Tag per Post!

Schritt 6: Anschließen von Tasten und Schaltern

Anschließen von Tasten und Schaltern
Anschließen von Tasten und Schaltern
Anschließen von Tasten und Schaltern
Anschließen von Tasten und Schaltern
Anschließen von Tasten und Schaltern
Anschließen von Tasten und Schaltern

Die meisten Schalter und Taster haben die Anschlüsse C, NO, NC, +, -. So schließen Sie sie an den Arduino an.

Einfacher Schalter oder Taster:

  • Masse C (gemeinsam)
  • Arduino digitaler Pin NO (normalerweise offen)

Wir werden den digitalen Pin als INPUT_PULLUP konfigurieren, was bedeutet, dass der Arduino den Pin auf 5 V hält und erkennt, wenn der Pin geerdet wird, und dies als Eingang behandelt. Der NO-Anschluss am Schalter oder Taster ist normalerweise offen, sodass der Stromkreis nicht angeschlossen ist. Wenn Sie den Knopf drücken oder den Schalter umlegen, wird der Stromkreis geschlossen und der Pin wird geerdet.

Taster mit LED:

Der Knopfteil ist der gleiche wie oben. Für die LED befestigen Sie zusätzliche Drähte:

  • Masse - (negativ)
  • Arduino digitaler Pin + (positiv)

Dieser Teil ist ziemlich einfach. Wir verwenden den Arduino-Pin im normalen OUTPUT-Modus.

Sicherheitsschalter mit LED:

Diese sind etwas anders und erlauben keine Kontrolle über die LED unabhängig von der Schalterstellung. Die LED leuchtet immer nur, wenn der Schalter eingeschaltet ist. Sie haben einen +, - und Signalanschluss.

  • Masse - (negativ)
  • 5V + (positiv)
  • Arduino digitaler Pin S (Signal)

Wir werden den Arduino-Pin im INPUT-Modus verwenden. Wenn der Schalter eingeschaltet ist, leuchtet die LED und der Signalstift geht hoch.

Schritt 7: Anschließen von Joysticks und dem LCD

Anschließen von Joysticks und LCD
Anschließen von Joysticks und LCD
Anschließen von Joysticks und LCD
Anschließen von Joysticks und LCD
Anschließen von Joysticks und LCD
Anschließen von Joysticks und LCD

LCD

Das LCD ist sehr einfach. Es braucht nur Strom, Masse und Seriell.

  • 5V VDD
  • Masse GND
  • Arduino Tx-PIN RX

Sie können einen JST-Stecker verwenden oder die Drähte direkt an die Platine löten.

Joysticks

Die Joysticks sehen auf den ersten Blick entmutigend aus, sind aber recht einfach anzuschließen. Es gibt drei Achsen, die auf die gleiche Weise verbunden sind. Zwei davon verwenden die Anschlüsse an der Unterseite des Joysticks. Die dritte verwendet einige Drähte.

  • Boden
  • Wiper Arduino analoger Eingangspin
  • 5V

Die Anschlüsse können in dieser Reihenfolge angebracht werden. Machen Sie sich keine Sorgen, dass Sie es rückwärts bekommen, der Wischer ist immer der mittlere. Wenn Strom und Masse vertauscht sind, können wir die Achse später im Arduino-Code umdrehen.

Die Drähte auf Ihrem Joystick können ein anderes Farbschema haben, aber im Allgemeinen: Die beiden Drähte mit identischen Farben sind für die Taste oben. Rot oder Orange ist 5V, Schwarz oder Braun ist Masse. Der verbleibende Draht ist der Wischer.

Schritt 8: LED-Balken-Tankanzeigen

LED-Balken-Tankanzeigen
LED-Balken-Tankanzeigen
LED-Balken-Tankanzeigen
LED-Balken-Tankanzeigen
LED-Balken-Tankanzeigen
LED-Balken-Tankanzeigen

Okay. Dies ist der schwierigste Teil des gesamten Builds. Überspringe dies gerne bei deinem ersten Build oder verbessere es und lass es mich wissen!

Ich habe diese tollen LED-Leisten, die ich als Tankanzeige verwenden möchte. Die obere LED ist blau, dann etwas grün, dann orange und schließlich rot. Wenn wir jeweils eine LED aufleuchten können, können wir sie den Treibstoffstand unseres Raumfahrzeugs anzeigen lassen.

Ich habe zunächst Treiber-ICs mitbestellt. Sie funktionieren super! Sie können den Punktmodus oder den Balkenmodus auswählen und es wird eine analoge Eingangsspannung als einzelne LED (Punkt) oder eine Reihe von LEDs (Balken) angezeigt. Aber ein Arduino gibt keine analoge Spannung aus! Und die PWM-Funktion, mit der Sie eine LED dimmen können, indem Sie eine analoge Spannung emulieren, funktioniert bei diesen Treiber-ICs nicht.

Auf zu Plan 2: Schieberegister. Sie können mit diesen in jedem Arduino-Starterkit arbeiten. Und Sie können hier mehr darüber erfahren:

Der Plan ist, die Kraftstoffstände irgendwie in die richtige Bitfolge umzuwandeln, die die Kraftstoffstände auf den LED-Leisten darstellt. Bei 5 Tankanzeigen müssten alle gefüllten Kraftstoffstände 10000000001000000000100000000010000000001000000000 betragen. Bei leerem Monotreibstoff würde es lauten: 10000000001000000000100000000010000000000000000001.

Klingt einfach genug. Es gibt einige Komplikationen. Die Schieberegister haben 8 Pins, während die LED-Leisten 10 LEDs haben. Ich verwende 7 Schieberegister, um 56 Ausgänge zu erhalten. Beim Verdrahten habe ich irgendwo einen IC-Pin übersprungen (wir werden das in den Code einfügen). Und ich verdrahte eine LED-Leiste am anderen Ende (wir werden das im Code beheben). Oh, und Arduino-Mathematik, die wir brauchen, verwendet manchmal Gleitkommaarithmetik, die Rundungsfehler verursacht (wir werden das im Code beheben). Beachten Sie, dass ich den Code in einem späteren Schritt teile.

Mein endgültiger Build stimmte nicht mit dem beigefügten Schaltplan überein. Wenn Sie diesen Controller also neu erstellen, sind einige Aktualisierungen des Codes erforderlich. Kommentieren Sie unten, wenn Sie Hilfe benötigen.

Jede LED benötigt einen eigenen Widerstand. Probieren Sie verschiedene Werte aus, um die Helligkeit anzupassen. Grün erscheint mit den gleichen Widerständen viel heller als Rot, daher hilft es, dies auszugleichen.

Endergebnis: Anstelle von 50 digitalen Pins, die für die Stromversorgung der 5 LED-Leisten erforderlich sind, reduziert sich das auf 3: ein Taktsignal, ein Latch-Signal und ein Datensignal.

Schritt 9: Aufbau des Gehäuses

Bau des Gehäuses
Bau des Gehäuses
Bau des Gehäuses
Bau des Gehäuses
Bau des Gehäuses
Bau des Gehäuses
Bau des Gehäuses
Bau des Gehäuses

Zeit, mich mit diesen Logos zu rächen!

Ich habe die Logos in richtige Vektorzeichnungen umgewandelt, damit sie gut geätzt werden. Diesmal habe ich ein anderes Problem. Die Schraubenlöcher befinden sich nicht an den richtigen Stellen für eine ordnungsgemäße Montage der Box. Ich habe 6mm MDF für die Box verwendet. Leider führt das Einschrauben von Nägeln in die Kanten dazu, dass diese platzen. Ich habe es zusammen mit zusätzlichen Holzresten und Leim gehackt. Viel Kleber.

Für diejenigen unter euch, die besser mit Holz, Leim und/oder Nägeln zurechtkommen, habe ich eine Version der Designs ohne die Schraubenlöcher angehängt.

Trotz der Schwierigkeiten ist das Endergebnis ziemlich glatt.

Schritt 10: Software und Tests

Image
Image
Software und Tests
Software und Tests

Laden Sie die folgende Software herunter, damit der Controller mit dem Kerbal Space-Programm funktioniert:

KSP-Plugin:

Die ZIP-Datei ist das kompilierte Plugin. Der Rest ist Quellcode, mit dem Sie das Plugin ändern und Ihre eigene Version kompilieren können. Entpacken Sie das Plugin in das GamaData-Verzeichnis.

Arduino-Code:

Verwenden Sie die Arduino IDE, um den Code auf den Arduino Mega in Ihrem Controller hochzuladen.

Sehen Sie sich unten rechts in der Arduino-IDE an, an welchem seriellen Port sich der Controller befindet (z. B. /dev/cu.usbmodem1421). Öffnen Sie die Datei config.xml aus dem Plugin-Verzeichnis und stellen Sie sicher, dass Ihr Port ausgefüllt ist. Jetzt können Sie loslegen!

Sie können den Debug-Modus verwenden, indem Sie den kleinen Ein-/Ausschalter oben links in die Position ON stellen. Das LCD sollte eine Buchstabenfolge anzeigen. Jeder Buchstabe steht für eine Taste oder einen Schalter und wechselt zwischen Klein- und Großbuchstaben, wenn Sie die Taste drücken oder den Schalter umschalten. Durch Einstellen der xyz-Schalter auf Xyz (ein/aus/aus) werden auch die Werte des Gasschiebereglers angezeigt. xYz zeigt Joystickwerte für den Translations-Joystick (links) an. xyZ für den Joystick Rotation (rechts).

LCD-Modi

Die folgenden Anzeigemodi können mit den x-, y- und z-Schaltern für die Anzeige auf dem LCD ausgewählt werden

Startmodus: Oberflächengeschwindigkeit / Beschleunigung (G)

Orbit-Modus: Apoapsis + Zeit bis zur Apoapsis / Periapsis + Zeit bis zur Periapsis

Manövermodus: Zeit bis zum nächsten Manöverknoten / Verbleibendes Delta-V für den nächsten Knoten

Rendezvous-Modus: Distanz zum Ziel / Geschwindigkeit relativ zum Ziel

Wiedereinstiegsmodus: Prozentuale Überhitzung (max) / Verzögerung (G)

Flugmodus: Höhe / Machzahl

Landemodus: Radarhöhe / Vertikalgeschwindigkeit

Extra-Modus: (noch) nicht implementiert

Um die verschiedenen Modi in Aktion zu sehen, sehen Sie sich das Video am Ende der Anleitung an.

Schritt 11: Zum Mond

Image
Image
Zum Mond!
Zum Mond!

Starten Sie KSP, laden Sie Ihr Lieblingsschiff oder bauen Sie ein neues und los geht's!

Tipps:

  • Verwenden Sie die benutzerdefinierte Aktionsgruppe 5 für Ihre Leitern
  • Verwenden Sie die benutzerdefinierte Aktionsgruppe 6 für Ihre Sonnenkollektoren
  • Verwenden Sie die benutzerdefinierte Aktionsgruppe 7 für Fallschirme oder Drogue-Rutschen
  • Weisen Sie das Start-Escape-System und die entsprechenden Entkoppler der Aktionsgruppe Abbrechen zu
  • Vergessen Sie nicht, dass Sie die Staging-Taste aktivieren müssen
Arduino-Wettbewerb 2017
Arduino-Wettbewerb 2017
Arduino-Wettbewerb 2017
Arduino-Wettbewerb 2017

Zweiter Platz beim Arduino-Wettbewerb 2017

Erstmaliger Autorenwettbewerb 2018
Erstmaliger Autorenwettbewerb 2018
Erstmaliger Autorenwettbewerb 2018
Erstmaliger Autorenwettbewerb 2018

Zweiter Platz beim Erstautorenwettbewerb 2018

Empfohlen: