Indholdsfortegnelse:

Neurobots Battle Royale: Muscle-Controlled Combat Hexbugs: 7 trin
Neurobots Battle Royale: Muscle-Controlled Combat Hexbugs: 7 trin

Video: Neurobots Battle Royale: Muscle-Controlled Combat Hexbugs: 7 trin

Video: Neurobots Battle Royale: Muscle-Controlled Combat Hexbugs: 7 trin
Video: OpenBCI EEG/EMG Controlled Hexbug 2024, November
Anonim
Neurobots Battle Royale: Muscle-Controlled Combat Hexbugs
Neurobots Battle Royale: Muscle-Controlled Combat Hexbugs

Denne vejledning viser, hvordan du bruger EMG -data streamet gennem OpenBCI -hardware og OpenBCI GUI til at styre handlingerne i en Hexbug. Kampegenskaberne for disse hexbugs kan derefter styres af din egen muskelindgang, og du vil kunne deltage i dine egne Hexbug -kampe!

Nyttige baggrundsfærdigheder:

  • Kendskab til Arduino eller C-baseret programmering

    Arduino Basics

  • Sådan opsættes OpenBCI -pandebåndssættet med Cyton eller Ganglion

    Dette hjælper dig med at konfigurere og komme i gang med OpenBCI Boards

  • Streaming af EMG -data med OpenBCI

Noget baggrundsviden om EMG -data

Forbrugsvarer

  • Hardware

    • En computer, der opfylder GUI -systemkravene
    • Hexbug 2.0 Dual Pack
    • EMG/EKG -skum Solid Gel -elektroder (30/pakke)
    • EMG/EKG Snap -elektrodekabler
    • OpenBCI Cyton Board ($ 500) eller Ganglion Board ($ 200)
    • 20 han-han-jumperkabler
    • Brødbræt
    • 10 x 10kΩ modstande
    • Arduino Genuino Uno
    • Valgfri 5 lysdioder (til tilslutning til fejlfinding)
  • Software

    • OpenBCI GUI
    • Arduino IDE
    • Leveret kode
  • OpenBCI Kom godt i gang Guider

    • OpenBCI GUI
    • Ganglion eller Cyton

Trin 1: Loddekabel til kabler

Lodde jumper kabler til controller
Lodde jumper kabler til controller
Lodde jumper kabler til controller
Lodde jumper kabler til controller
Lodde jumper kabler til controller
Lodde jumper kabler til controller

1.1 Fjern låget på controlleren

Lirk det klare plastkabinet af ved at kile en flad skruetrækker eller et andet værktøj ind i controllerens fire låsetapper. Hold fast ved den glidende kanal-switcher og selve sagen. Alle andre knapper kan kasseres.

Fjern de tapede trykknapper, og kassér dem. Aflod også "Fire" -knappen og kassér den.

1.2 Lodning på jumperkabler

Lod derefter hver af han-han-jumperkablerne til de små, indre cirkler, hvor knapperne fremad, bagud, venstre og højre var. Også loddetilslutninger til det fjernede brandkabel og jordstiften til venstre.

1.3 Udskift låget på controlleren

Brug en saks eller en kniv til at skære stykker af det klare plastlåg, der ville forstyrre placeringen af jumperkablerne, og geninstaller det på controlleren, så kanalafbryderen holdes på plads.

Vi genbruger låget, så den glidende kanal-switcher forbliver effektivt i kontakt med de ledende patches på brættet.

Trin 2: Opret Breadboard Setup og Connect Controller

Opret Breadboard Setup og Connect Controller
Opret Breadboard Setup og Connect Controller
Opret Breadboard Setup og Connect Controller
Opret Breadboard Setup og Connect Controller
Opret Breadboard Setup og Connect Controller
Opret Breadboard Setup og Connect Controller

Genopret opsætningen som vist ovenfor.

Forklaring:

2.1 Læg Controller Pins i Breadboard

Hver kommando vil blive placeret i sin egen række. Placer hver stift i sin egen række i den indre del af brødbrættet. Fra top til bund skal rækkefølgen af disse være højre, venstre, fremad, brand.

2.2 Tilføj modstande

Efter indsættelse af disse stifter tilføjes en 10KΩ modstand, der bygger bro mellem brødbrættets to sider. Dette korrigerer mængden af strøm, der går til hver pin, hvilket gør, at fejlen kan fungere korrekt.

2.3 Tilføj fejl Kontroller lysdioder

Til visualisering kan vi på dette tidspunkt også tilføje en LED. LED'ens anode skal være på linje med kontrolnålen og modstanden, og katoden er på en separat linje på brødbrættet. Tilslut en anden modstand fra katodens linje til brødbrættets jord. Bemærk, at dette trin er valgfrit, men kan hjælpe med at fejlfinde eventuelle fejl med kredsløbet.

2.4 Tilslut opsætningen til Arduino

Til sidst skal du tilføje endnu et jumperkabel for at forbinde hver række til en Arduino -pin. Det er vigtigt, at de svarer som følger:

3 - Brand 4 - Frem 5 - Venstre 6 - Højre

Trin 3: Test med streaming af syntetiske data

Test med streaming af syntetiske data
Test med streaming af syntetiske data
Test med streaming af syntetiske data
Test med streaming af syntetiske data

3.1 Upload prøvekode til bestyrelsen

Efter at have downloadet vores leverede kode, skal du åbne i Arduino. Tilslut dit bord til din bærbare computer, og sørg for at vælge det som porten fra rullemenuen Værktøjer. Upload derefter din kode til Arduino Board.

3.2 Åbn syntetisk streaming

8 kanaler fungerer fint i dette eksempel. Klik på "Start System" for at fortsætte.

Når du har GUI åben, skal du slukke for kanalerne 6-8.

3.3 Opsætning af netværkswidget

Åbn og konfigurer netværkswidgeten som vist på billedet ved hjælp af seriel tilstand. Vi vil have datatypen til at være "EMG".

Bemærk også, at baudhastigheden i vores Arduino -skitse er 57600, så vi vælger 57600 fra Baud -rullemenuen.

Sørg for at vælge den korrekte port til Arduino. Det er den samme port, vi brugte til at uploade skitsen til Arduino. Hvis du bruger Mac/Linux, skal det mærkes "usbmodem" -forskelligt fra OpenBCI-kortet, der vil blive mærket "usbserial".

Når du har bekræftet, at alle oplysninger er korrekte, skal du trykke på start!

3.4 Løbetest

Da syntetiske data er meget sværere at kontrollere, skal du justere indstillingerne i EMG -widgeten, indtil firkanterne er flygtige nok til at passere tærskelværdien opregnet i koden. Hvis dette ikke er nok, kan det være i din interesse at ændre tærskelværdien i koden og uploade igen til dit board.

Det kan også hjælpe at slukke alle på nær én kanal ad gangen og teste hver kommando en efter en for at sikre, at de alle gør, hvad de skal gøre. Når du har bekræftet, at alt fungerer godt, kan du gå videre til rigtige data.

Trin 4: Konfigurer dit OpenBCI -kort og elektroder

Opsæt dit OpenBCI -kort og elektroder
Opsæt dit OpenBCI -kort og elektroder
Opsæt dit OpenBCI -kort og elektroder
Opsæt dit OpenBCI -kort og elektroder

Der er to retninger, dette kan tage: en person, der kontrollerer alle 5 kommandoer, eller flere personer, der kontrollerer forskellige kommandoer hver. Dette vil differentiere den måde, det gøres på.

Mulighed A: Én person, der kontrollerer alle fem kommandoer

Følg blot instruktionerne i denne EMG Setup -vejledning fra OpenBCI -dokumentationen her.

Mulighed B: Flere personer, der kontrollerer forskellige kommandoer

Følg EMG Setup -vejledningen fra OpenBCI -webstedet, men med en ændring: flere grunde skal splejses sammen.

For at gøre dette skal du afskære ca. 3 tommer mandlige stifttråde og enden af en hunstikwire og fjerne en tomme gummi fra enderne for at afsløre ledningerne indeni. Gentag dette for så mange hanledninger som nødvendigt for at give hver person en individuel jord. Splice disse udsatte ender sammen, og indehold dem i et stykke varmekrympende rør.

Trin 5: Få forbindelse til rigtige data

Få forbindelse til rigtige data
Få forbindelse til rigtige data
Få forbindelse til rigtige data
Få forbindelse til rigtige data

Gå nu tilbage til GUI -hjemmet og vælg LIVE (fra Cyton) eller LIVE (fra Ganglion) - afhængigt af det board, du bruger - som datakilde.

Herfra skal du åbne EMG -widgeten og netværkswidgeten, og begynde at streame nøjagtigt som vi havde før. Nu skal dataene streame fra dit live -input!

Trin 6: Kamp

Når alt er sat op, er du klar til kamp. Hvis der er oprettet to opsætninger, kan du bruge kontrollerne til at kæmpe.

Bemærk, at robotter bør tændes én ad gangen for at sikre, at signalerne indsamles fra to unikke kilder.

Hver hexbug har tre liv, og efter at disse alle er gået, skal du blot trykke på tænd / sluk -knappen for at nulstille scores.

God fornøjelse og kæmp!

Trin 7: Fejlfinding - tastaturkontrolkode

Hvis du har problemer med din board-opsætning og kun vil styre den ved hjælp af tastaturindgang, skal du downloade denne kode for at bruge den indbyggede Arduino Serial Monitor til at styre dit kredsløb. Dette giver dig mulighed for at isolere hver handling og afgøre, om det problem, du oplever, kommer fra den fysiske Arduino-opsætning eller fra dataene.

Anbefalede: