Innholdsfortegnelse:

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

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

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

Denne opplæringen viser hvordan du bruker EMG -data streamet gjennom OpenBCI -maskinvare og OpenBCI GUI for å kontrollere handlingene til en Hexbug. Kampegenskapene til disse hexbugs kan deretter styres av din egen muskelinngang, og du vil kunne delta i dine egne Hexbug -kamper!

Nyttig bakgrunnskunnskaper:

  • Kunnskap om Arduino eller C-basert programmering

    Grunnleggende om Arduino

  • Slik konfigurerer du OpenBCI Headband Kit med Cyton eller Ganglion

    Dette vil hjelpe deg med å sette opp og jobbe med OpenBCI Boards

  • Streaming av EMG -data med OpenBCI

Litt bakgrunnskunnskap om EMG -data

Rekvisita

  • Maskinvare

    • En datamaskin som oppfyller 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 mann-hann-jumperkabler
    • Brødbrett
    • 10 x 10kΩ motstander
    • Arduino Genuino Uno
    • Valgfrie 5 lysdioder (for tilkobling for feilsøking)
  • Programvare

    • OpenBCI GUI
    • Arduino IDE
    • Oppgitt kode
  • OpenBCI Komme i gang -guider

    • OpenBCI GUI
    • Ganglion eller Cyton

Trinn 1: Loddekabel til kabelen

Loddekabel til kabelen
Loddekabel til kabelen
Loddekabel til kabelen
Loddekabel til kabelen
Loddekabel til kabelen
Loddekabel til kabelen

1.1 Fjern lokket på kontrolleren

Lirk av det gjennomsiktige plasthuset ved å kile en flat skrutrekker eller et annet verktøy inn i de fire låsetappene på kontrolleren. Hold på den glidende kanalbryteren og selve saken. Alle andre knapper kan kastes.

Fjern de tapede trykknappene og kast den. Avlod også "Brann" -knappen og kast den.

1.2 Lodding på startkabler

Deretter loddes hver av mann-hann-jumperkablene til de små, indre sirklene der knappene fremover, bakover, venstre og høyre var. Også loddetilkoblinger til den fjernede brannkabelen, og jordpinnen til venstre.

1.3 Sett på lokket på kontrolleren

Ved å bruke en saks eller en kniv, kutter du biter av det klare plastlokket som ville forstyrre posisjonen til jumperkablene og installerer det på kontrolleren igjen, slik at kanalbryteren holdes på plass.

Vi bruker lokket igjen slik at den glidende kanalbryteren forblir effektivt i kontakt med de ledende lappene på brettet.

Trinn 2: Opprett Breadboard Setup og Connect Controller

Lag Breadboard Setup og Connect Controller
Lag Breadboard Setup og Connect Controller
Opprett Breadboard Setup og Connect Controller
Opprett Breadboard Setup og Connect Controller
Lag Breadboard Setup og Connect Controller
Lag Breadboard Setup og Connect Controller

Gjenopprett oppsettet som vist ovenfor.

Forklaring:

2.1 Legg kontrollerpinnene i brødbrettet

Hver kommando kommer til å ligge i sin egen rad. Plasser hver pinne i sin egen rad i den indre delen av brødbrettet. Fra topp til bunn skal rekkefølgen på disse være Høyre, Venstre, Fremover, Brann.

2.2 Legg til motstander

Etter at du har satt inn disse pinnene, legger du til en 10KΩ motstand som bygger bro mellom brødbrettets to sider. Dette korrigerer mengden strøm som går til hver pin, noe som gjør at feilen kan fungere riktig.

2.3 Add Error Checking LEDs

For visualisering kan vi på dette tidspunktet også legge til en LED. LED -anoden skal være i tråd med kontrollpinnen og motstanden, og katoden er på en egen linje på brødbrettet. Koble en annen motstand fra katodelinjen til brødbrettets bakke. Vær oppmerksom på at dette trinnet er valgfritt, men kan hjelpe deg med å feilsøke eventuelle feil med kretsen.

2.4 Koble oppsettet til Arduino

Til slutt legger du til en annen jumperkabel for å koble hver rad til en Arduino -pinne. Det er viktig at de korresponderer som følger:

3 - Brann 4 - Fremover 5 - Venstre 6 - Høyre

Trinn 3: Test med streaming av syntetiske data

Test med streaming av syntetiske data
Test med streaming av syntetiske data
Test med streaming av syntetiske data
Test med streaming av syntetiske data

3.1 Last opp prøvekoden til styret

Etter å ha lastet ned den oppgitte koden, åpner du i Arduino. Koble brettet til den bærbare datamaskinen, og sørg for å velge det som porten fra Verktøy -rullegardinmenyen. Last deretter opp koden din til Arduino Board.

3.2 Åpne syntetisk streaming

8 kanaler vil fungere fint for dette eksemplet. Klikk "Start System" for å fortsette.

Når du har GUI-en åpen, slår du av kanalene 6-8.

3.3 Konfigurere nettverks widget

Åpne og konfigurer nettverksmodulen som vist på bildet, ved hjelp av seriell modus. Vi vil at datatypen skal være "EMG".

Vær også oppmerksom på at overføringshastigheten i vår Arduino -skisse er 57600, så vi velger 57600 fra Baud -rullegardinmenyen.

Sørg for å velge riktig port for Arduino. Det er den samme porten vi brukte til å laste opp skissen til Arduino. Hvis du bruker Mac/Linux, bør det merkes "usbmodem"-forskjellig fra OpenBCI-kortet som vil bli merket "usbserial".

Når du har bekreftet at all informasjon er korrekt, trykker du på start!

3.4 Løpetester

Siden syntetiske data er mye vanskeligere å kontrollere, justerer du innstillingene i EMG -widgeten til rutene er flyktige nok til å passere terskelverdien som er oppført i koden. Hvis dette ikke er nok, kan det være i din interesse å endre terskelverdien i koden og laste den opp på nytt på tavlen din.

Det kan også hjelpe å slå av alle bortsett fra én kanal om gangen, og teste hver kommando en etter en for å sikre at de alle gjør det de skal gjøre. Når du har bekreftet at alt fungerer bra, kan du gå videre til ekte data.

Trinn 4: Sett opp OpenBCI -kortet og elektrodene

Sett opp OpenBCI -kortet og elektrodene
Sett opp OpenBCI -kortet og elektrodene
Sett opp OpenBCI -kortet og elektrodene
Sett opp OpenBCI -kortet og elektrodene

Det er to retninger som dette kan ta: en person som kontrollerer alle fem kommandoene, eller flere personer som kontrollerer forskjellige kommandoer hver. Dette vil skille måten dette gjøres på.

Alternativ A: Én person som kontrollerer alle fem kommandoene

Bare følg instruksjonene i denne EMG Setup -opplæringen fra OpenBCI -dokumentasjonen her.

Alternativ B: Flere personer som kontrollerer forskjellige kommandoer

Følg EMG Setup -opplæringen fra OpenBCI -nettstedet, men med én endring: flere grunner må skjøtes sammen.

For å gjøre dette, kutt av omtrent 3 tommer mannlige pin ledninger og enden av en kvinnelig pin wire og fjern en tomme gummi fra endene for å avsløre ledningene inni. Gjenta dette for så mange hanntråder som nødvendig for å gi hver person et individuelt underlag. Spleis disse eksponerte endene sammen, og innehold dem i et stykke varmekrympende rør.

Trinn 5: Bli koblet til ekte data

Bli koblet til ekte data
Bli koblet til ekte data
Bli koblet til ekte data
Bli koblet til ekte data

Gå tilbake til GUI -hjemmet og velg LIVE (fra Cyton) eller LIVE (fra Ganglion) - avhengig av brettet du bruker - som datakilde.

Herfra åpner du EMG Widget og Networking Widget, og begynner å streame akkurat som vi hadde før. Nå skal dataene strømme fra dine live input!

Trinn 6: Kamp

Med alt klart nå er du klar for kamp. Hvis to oppsett er opprettet, kan du bruke kontrollene til å kjempe.

Vær oppmerksom på at roboter bør slås på en om gangen for å sikre at signalene samles fra to unike kilder.

Hver hexbug har tre liv, og etter at disse har passert, trykker du bare på strømknappen for å tilbakestille poengsummene.

Ha det gøy og kjemp!

Trinn 7: Feilsøking - tastaturkontrollkode

Hvis du har problemer med brettoppsettet og bare vil kontrollere det med tastaturinngang, kan du laste ned denne koden for å bruke den innebygde Arduino Serial Monitor for å kontrollere kretsen din. Dette lar deg isolere hver handling og avgjøre om problemet du opplever kommer fra det fysiske Arduino-oppsettet eller fra dataene.

Anbefalt: