Inhaltsverzeichnis:

Neurobots Battle Royale: Muskelkontrollierte Hexbugs im Kampf - Gunook
Neurobots Battle Royale: Muskelkontrollierte Hexbugs im Kampf - Gunook

Video: Neurobots Battle Royale: Muskelkontrollierte Hexbugs im Kampf - Gunook

Video: Neurobots Battle Royale: Muskelkontrollierte Hexbugs im Kampf - Gunook
Video: OpenBCI EEG/EMG Controlled Hexbug 2024, November
Anonim
Neurobots Battle Royale: Muskelkontrollierte Hexbugs im Kampf
Neurobots Battle Royale: Muskelkontrollierte Hexbugs im Kampf

Dieses Tutorial zeigt, wie Sie EMG-Daten verwenden, die über OpenBCI-Hardware und die OpenBCI-GUI gestreamt werden, um die Aktionen eines Hexbug zu steuern. Die Kampffähigkeiten dieser Hexbugs können dann durch Ihren eigenen Muskeleinsatz kontrolliert werden, und Sie können selbst an Hexbug-Kämpfen teilnehmen!

Hilfreiche Hintergrundfähigkeiten:

  • Kenntnisse in Arduino oder C-basierter Programmierung

    Arduino-Grundlagen

  • So richten Sie das OpenBCI-Stirnband-Kit mit Cyton oder Ganglion ein

    Dies wird Ihnen beim Einrichten und Arbeiten mit den OpenBCI-Boards helfen

  • Streamen von EMG-Daten mit OpenBCI

Einige Hintergrundwissen zu EMG-Daten

Lieferungen

  • Hardware

    • Ein Computer, der die GUI-Systemanforderungen erfüllt
    • Hexbug 2.0 Doppelpack
    • EMG/EKG-Schaum-Fest-Gel-Elektroden (30/Packung)
    • EMG/EKG-Schnappelektrodenkabel
    • OpenBCI Cyton Board ($500) oder Ganglion Board (200$)
    • 20 männlich-männliche Starthilfekabel
    • Steckbrett
    • 10 x 10kΩ Widerstände
    • Arduino Genuino Uno
    • Optional 5 LEDs (zum Anschließen zum Debuggen)
  • Software

    • OpenBCI-GUI
    • Die Arduino-IDE
    • Bereitgestellter Code
  • Erste Schritte mit OpenBCI

    • OpenBCI-GUI
    • Ganglion oder Cyton

Schritt 1: Jumperkabel an den Controller anlöten

Überbrückungskabel an Controller anlöten
Überbrückungskabel an Controller anlöten
Überbrückungskabel an Controller anlöten
Überbrückungskabel an Controller anlöten
Überbrückungskabel an Controller anlöten
Überbrückungskabel an Controller anlöten

1.1 Deckel des Controllers entfernen

Heble das durchsichtige Plastikgehäuse ab, indem du einen flachen Schraubendreher oder ein anderes Werkzeug in die vier Verriegelungslaschen des Controllers klemmst. Hängen Sie sich an den Schiebekanal-Umschalter und das Gehäuse selbst. Alle anderen Schaltflächen können verworfen werden.

Entfernen Sie die aufgeklebten Druckknöpfe und entsorgen Sie sie. Entlöten Sie auch den „Feuer“-Knopf und entsorgen Sie ihn.

1.2 Überbrückungskabel anlöten

Löten Sie dann jedes der männlich-männlichen Überbrückungskabel an die kleinen inneren Kreise, an denen sich die Vorwärts-, Rückwärts-, Links- und Rechtstasten befanden. Löten Sie auch die Anschlüsse an das entfernte Feuerkabel und den Massestift links davon.

1.3 Deckel des Controllers ersetzen

Schneiden Sie mit einer Schere oder einem Universalmesser Stücke von der durchsichtigen Plastikabdeckung ab, die die Position Ihrer Überbrückungskabel beeinträchtigen würden, und installieren Sie sie wieder am Controller, wobei Sie den Kanalschalter in Position halten.

Wir verwenden den Deckel wieder, damit der Slide-Channel-Switcher effektiv mit den leitfähigen Patches auf der Platine in Kontakt bleibt.

Schritt 2: Breadboard-Setup erstellen und Controller verbinden

Breadboard-Setup erstellen und Controller verbinden
Breadboard-Setup erstellen und Controller verbinden
Breadboard-Setup erstellen und Controller verbinden
Breadboard-Setup erstellen und Controller verbinden
Breadboard-Setup erstellen und Controller verbinden
Breadboard-Setup erstellen und Controller verbinden

Erstellen Sie das Setup wie oben gezeigt neu.

Erläuterung:

2.1 Platzieren Sie die Controller-Pins im Steckbrett

Jeder Befehl befindet sich in einer eigenen Zeile. Platzieren Sie jeden Stift in einer eigenen Reihe im inneren Teil des Steckbretts. Von oben nach unten sollte die Reihenfolge Rechts, Links, Vorwärts, Feuer sein.

2.2 Widerstände hinzufügen

Fügen Sie nach dem Einsetzen dieser Pins einen 10KΩ-Widerstand hinzu, der die beiden Seiten des Steckbretts überbrückt. Dies korrigiert die Strommenge, die zu jedem Pin fließt, wodurch der Fehler korrekt funktioniert.

2.3 Fehlerüberprüfungs-LEDs hinzufügen

Zu Visualisierungszwecken können wir an dieser Stelle auch eine LED hinzufügen. Die Anode der LED sollte mit dem Steuerstift und dem Widerstand übereinstimmen, und die Kathode befindet sich auf einer separaten Leitung des Steckbretts. Verbinden Sie einen weiteren Widerstand von der Kathodenleitung mit der Masse des Steckbretts. Beachten Sie, dass dieser Schritt optional ist, aber bei der Behebung von Fehlern in der Schaltung hilfreich sein kann.

2.4 Setup mit Arduino verbinden

Schließlich fügen Sie ein weiteres Überbrückungskabel hinzu, um jede Reihe mit einem Arduino-Pin zu verbinden. Es ist wichtig, dass sie wie folgt übereinstimmen:

3 - Feuer 4 - Vorwärts 5 - Links 6 - Rechts

Schritt 3: Testen Sie mit dem Streamen von synthetischen Daten

Testen Sie mit dem Streamen von synthetischen Daten
Testen Sie mit dem Streamen von synthetischen Daten
Testen Sie mit dem Streamen von synthetischen Daten
Testen Sie mit dem Streamen von synthetischen Daten

3.1 Beispielcode auf das Board hochladen

Nachdem Sie unseren bereitgestellten Code heruntergeladen haben, öffnen Sie ihn in Arduino. Verbinden Sie Ihr Board mit Ihrem Laptop und stellen Sie sicher, dass Sie es als Port aus der Dropdown-Liste Tools auswählen. Laden Sie dann Ihren Code auf das Arduino Board hoch.

3.2 Offenes synthetisches Streaming

8 Kanäle werden für dieses Beispiel gut funktionieren. Klicken Sie auf "System starten", um fortzufahren.

Sobald Sie die GUI geöffnet haben, schalten Sie die Kanäle 6-8 aus.

3.3 Netzwerk-Widget einrichten

Öffnen und richten Sie das Netzwerk-Widget wie in der Abbildung gezeigt im seriellen Modus ein. Der Datentyp soll "EMG" sein.

Beachten Sie auch, dass die Baudrate in unserer Arduino-Skizze 57600 beträgt, also wählen wir 57600 aus der Dropdown-Liste Baud aus.

Stellen Sie sicher, dass Sie den richtigen Port für das Arduino auswählen. Es ist der gleiche Port, den wir verwendet haben, um die Skizze zum Arduino hochzuladen. Wenn Sie Mac/Linux verwenden, sollte es als "usbmodem" bezeichnet werden - anders als das OpenBCI-Board, das als "usbserial" bezeichnet wird.

Wenn Sie sich vergewissert haben, dass alle Angaben korrekt sind, drücken Sie auf Start!

3.4 Ausführen von Tests

Da synthetische Daten viel schwieriger zu kontrollieren sind, optimieren Sie die Einstellungen im EMG-Widget, bis die Quadrate flüchtig genug sind, um den im Code aufgezählten Schwellenwert zu überschreiten. Wenn dies nicht ausreicht, kann es in Ihrem Interesse sein, den Schwellenwert im Code zu ändern und erneut auf Ihr Board hochzuladen.

Es kann auch hilfreich sein, alle bis auf einen Kanal gleichzeitig auszuschalten und jeden Befehl einzeln zu testen, um sicherzustellen, dass alle das tun, was sie tun sollen. Sobald Sie bestätigt haben, dass alles gut funktioniert, können Sie zu echten Daten übergehen.

Schritt 4: Einrichten Ihres OpenBCI-Boards und der Elektroden

Einrichten Ihres OpenBCI-Boards und Ihrer Elektroden
Einrichten Ihres OpenBCI-Boards und Ihrer Elektroden
Einrichten Ihres OpenBCI-Boards und Ihrer Elektroden
Einrichten Ihres OpenBCI-Boards und Ihrer Elektroden

Dies kann in zwei Richtungen erfolgen: eine Person, die alle 5 Befehle steuert, oder mehrere Personen, die jeweils unterschiedliche Befehle steuern. Dies wird die Art und Weise, wie dies geschieht, unterscheiden.

Option A: Eine Person steuert alle fünf Befehle

Folgen Sie einfach den Anweisungen in diesem EMG-Setup-Tutorial aus der OpenBCI-Dokumentation hier.

Option B: Mehrere Personen, die verschiedene Befehle steuern

Befolgen Sie das EMG-Setup-Tutorial von der OpenBCI-Website, jedoch mit einer Änderung: Mehrere Gründe müssen zusammengespleißt werden.

Schneiden Sie dazu etwa 3 Zoll der männlichen Stiftdrähte und das Ende eines weiblichen Stiftdrahtes ab und entfernen Sie einen Zoll Gummi von den Enden, um die Drähte im Inneren freizulegen. Wiederholen Sie dies für so viele männliche Drähte wie nötig, um jeder Person eine individuelle Erdung zu geben. Spleißen Sie diese freiliegenden Enden zusammen und halten Sie sie in einem Stück Schrumpfschlauch fest.

Schritt 5: Verbinden Sie sich mit echten Daten

Verbinden Sie sich mit echten Daten
Verbinden Sie sich mit echten Daten
Verbinden Sie sich mit echten Daten
Verbinden Sie sich mit echten Daten

Gehen Sie nun zurück zur GUI-Startseite und wählen Sie LIVE (von Cyton) oder LIVE (von Ganglion) -je nach verwendetem Board - als Datenquelle.

Öffnen Sie von hier aus das EMG-Widget und das Netzwerk-Widget und beginnen Sie mit dem Streaming genau wie zuvor. Jetzt sollten die Daten von Ihrem Live-Eingang gestreamt werden!

Schritt 6: Kampf

Wenn alles eingerichtet ist, sind Sie bereit für den Kampf. Wenn zwei Setups erstellt wurden, können Sie die Steuerung zum Kampf verwenden.

Bitte beachten Sie, dass Roboter nacheinander eingeschaltet werden sollten, um sicherzustellen, dass die Signale von zwei eindeutigen Quellen erfasst werden.

Jeder Hexbug hat drei Leben, und nachdem diese alle verstrichen sind, drücken Sie einfach den Netzschalter, um die Punkte zurückzusetzen.

Viel Spaß und kämpfe!

Schritt 7: Fehlerbehebung - Tastatursteuercode

Wenn Sie Probleme mit Ihrem Board-Setup haben und es nur über Tastatureingaben steuern möchten, laden Sie diesen Code herunter, um den integrierten Arduino Serial Monitor zur Steuerung Ihrer Schaltung zu verwenden. Auf diese Weise können Sie jede Aktion isolieren und feststellen, ob das aufgetretene Problem vom physischen Arduino-Setup oder von den Daten herrührt.

Empfohlen: