Innehållsförteckning:

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

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

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

Denna handledning visar hur du använder EMG -data som strömmas genom OpenBCI -maskinvara och OpenBCI GUI för att styra åtgärderna för en Hexbug. Stridsförmågan hos dessa hexbugs kan sedan styras av din egen muskelinmatning, och du kommer att kunna delta i dina egna Hexbug -slagsmål!

Praktiska bakgrundskunskaper:

  • Kunskap om Arduino eller C-baserad programmering

    Arduino Basics

  • Så här installerar du OpenBCI Headband Kit med Cyton eller Ganglion

    Detta hjälper dig att konfigurera och arbeta med OpenBCI Boards

  • Streaming av EMG -data med OpenBCI

Viss bakgrundskunskap om EMG -data

Tillbehör

  • Hårdvara
    • En dator som uppfyller GUI -systemkraven
    • Hexbug 2.0 Dual Pack
    • EMG/EKG -skum Solid Gel -elektroder (30/förpackning)
    • EMG/EKG -snäppelektrodkablar
    • OpenBCI Cyton Board ($ 500) eller Ganglion Board ($ 200)
    • 20 man-hanskabel
    • Bakbord
    • 10 x 10kΩ motstånd
    • Arduino Genuino Uno
    • Valfria 5 lysdioder (för anslutning för felsökning)
  • programvara
    • OpenBCI GUI
    • Arduino IDE
    • Tillhandahållen kod
  • OpenBCI Komma igång guider

    • OpenBCI GUI
    • Ganglion eller Cyton

Steg 1: Lödkabel till styrenheten

Lödkabel till styrenhet
Lödkabel till styrenhet
Lödkabel till styrenhet
Lödkabel till styrenhet
Lödkabel till styrenhet
Lödkabel till styrenhet

1.1 Ta bort locket på styrenheten

Lina bort det genomskinliga plasthöljet genom att kila in en platt skruvmejsel eller ett annat verktyg i de fyra låsflikarna på styrenheten. Häng på den skjutbara kanalväxlaren och själva fodralet. Alla andra knappar kan kasseras.

Ta bort de tejpade tryckknapparna och kassera. Avlöd också "Fire" -knappen och kasta den.

1.2 Lödning på bygelkablar

Löd sedan var och en av de manliga-manliga startkablarna till de små, inre cirklarna där knapparna framåt, bakåt, vänster och höger var. Även lödanslutningar till den borttagna brandkabeln och jordstiftet till vänster.

1.3 Sätt tillbaka locket på styrenheten

Skär bort bitar av det genomskinliga plastlocket som skulle störa bygelkablarnas position med hjälp av en sax eller en verktygskniv och sätt tillbaka den på styrenheten, så att kanalomkopplaren hålls på plats.

Vi återanvänder locket så att den glidande kanalomkopplaren förblir effektivt i kontakt med de ledande fläckarna på brädet.

Steg 2: Skapa Breadboard Setup och Connect Controller

Skapa Breadboard Setup och Connect Controller
Skapa Breadboard Setup och Connect Controller
Skapa Breadboard Setup och Connect Controller
Skapa Breadboard Setup och Connect Controller
Skapa Breadboard Setup och Connect Controller
Skapa Breadboard Setup och Connect Controller

Återskapa installationen enligt ovan.

Förklaring:

2.1 Placera Controller Pins i Breadboard

Varje kommando kommer att placeras i sin egen rad. Placera varje stift i sin egen rad i den inre delen av brödbrädan. Uppifrån och ner bör ordningen på dessa vara höger, vänster, framåt, eld.

2.2 Lägg till motstånd

Efter att du har satt in dessa stift, lägg till ett 10KΩ motstånd som överbryggar de två sidorna av brödbrädet. Detta korrigerar mängden ström som går till varje stift, vilket gör att felet fungerar korrekt.

2.3 Lägg till fel vid kontroll av lysdioder

För visualiseringsändamål kan vi vid denna tidpunkt också lägga till en LED. LED -anoden ska vara i linje med kontrollnålen och motståndet, och katoden är på en separat linje på brödbrädan. Anslut ett annat motstånd från katodlinjen till brödbrädans mark. Observera att detta steg är valfritt, men kan hjälpa till att felsöka eventuella fel med kretsen.

2.4 Anslut installationen till Arduino

Slutligen, lägg till ytterligare en bygelkabel för att ansluta varje rad till en Arduino -stift. Det är viktigt att de motsvarar följande:

3 - Brand 4 - Framåt 5 - Vänster 6 - Höger

Steg 3: Testa med strömmande syntetiska data

Testa med strömmande syntetiska data
Testa med strömmande syntetiska data
Testa med strömmande syntetiska data
Testa med strömmande syntetiska data

3.1 Ladda upp provkoden till styrelsen

Efter att ha laddat ner vår tillhandahållna kod, öppna i Arduino. Anslut ditt kort till din bärbara dator och se till att välja det som port från rullgardinsmenyn Verktyg. Ladda sedan upp din kod till Arduino Board.

3.2 Öppna syntetisk strömning

8 kanaler fungerar bra för detta exempel. Klicka på "Start System" för att fortsätta.

När du har GUI öppet stänger du av kanalerna 6-8.

3.3 Konfigurera nätverkswidget

Öppna och konfigurera nätverkswidgeten som visas på bilden med hjälp av seriellt läge. Vi vill att datatypen ska vara "EMG".

Observera också att överföringshastigheten i vår Arduino -skiss är 57600, så vi väljer 57600 från Baud -rullgardinsmenyn.

Var noga med att välja rätt port för Arduino. Det är samma port som vi använde för att ladda upp skissen till Arduino. Om du använder Mac/Linux bör det märkas "usbmodem"-annorlunda än OpenBCI-kortet som kommer att märkas "usbserial".

När du har bekräftat att all information är korrekt, tryck på start!

3.4 Löpningstester

Eftersom syntetiska data är mycket svårare att kontrollera, justera inställningarna i EMG -widgeten tills rutorna är tillräckligt volatila för att passera det tröskelvärde som anges i koden. Om detta inte räcker kan det vara i ditt intresse att ändra tröskelvärdet i koden och ladda upp igen till ditt kort.

Det kan också hjälpa att stänga av alla utom en kanal i taget och testa varje kommando en efter en för att säkerställa att de alla gör vad de ska göra. När du har bekräftat att allt fungerar bra kan du gå vidare till riktiga data.

Steg 4: Konfigurera ditt OpenBCI -kort och elektroder

Konfigurera ditt OpenBCI -kort och elektroder
Konfigurera ditt OpenBCI -kort och elektroder
Konfigurera ditt OpenBCI -kort och elektroder
Konfigurera ditt OpenBCI -kort och elektroder

Det kan ta två riktningar: en person som styr alla fem kommandon, eller flera personer som styr olika kommandon var. Detta kommer att skilja på hur detta görs.

Alternativ A: En person som kontrollerar alla fem kommandon

Följ bara instruktionerna i denna EMG Setup -handledning från OpenBCI -dokumentationen här.

Alternativ B: Flera personer som styr olika kommandon

Följ EMG Setup -handledningen från OpenBCI -webbplatsen men med en ändring: flera grunder måste skarvas ihop.

För att göra detta, klipp av ca 3 tum hanstiftstrådar och slutet av en honstiftstift och ta bort en tum gummi från ändarna för att avslöja trådarna inuti. Upprepa detta för så många hantrådar som behövs för att ge varje person en individuell mark. Skarva dessa exponerade ändar tillsammans och innehåll dem i en bit av värmekrympande rör.

Steg 5: Anslut dig till riktiga data

Bli ansluten till riktiga data
Bli ansluten till riktiga data
Bli ansluten till riktiga data
Bli ansluten till riktiga data

Gå nu tillbaka till GUI -hemmet och välj LIVE (från Cyton) eller LIVE (från Ganglion) - beroende på det kort du använder - som datakälla.

Härifrån öppnar du EMG -widgeten och nätverkswidgeten och börjar strömma precis som vi hade tidigare. Nu ska data strömma från din live -ingång!

Steg 6: Strid

När allt är klart är du redo för strid. Om två inställningar har skapats kan du använda kontrollerna för att slåss.

Observera att robotar bör slås på en i taget för att säkerställa att signalerna samlas in från två unika källor.

Varje hexbug har tre liv, och efter att dessa har passerat trycker du helt enkelt på strömbrytaren för att återställa poängen.

Ha kul och kämpa!

Steg 7: Felsökning - Tangentbordskod

Om du har några problem med din kortinställning och bara vill styra den med tangentbordsinmatning, ladda ner den här koden för att använda den inbyggda Arduino Serial Monitor för att styra din krets. Detta gör att du kan isolera varje åtgärd och avgöra om problemet du upplever kommer från den fysiska Arduino-konfigurationen eller från data.

Rekommenderad: