Inhoudsopgave:

Neurobots Battle Royale: Muscle-Controlled Combat Hexbugs - Ajarnpa
Neurobots Battle Royale: Muscle-Controlled Combat Hexbugs - Ajarnpa

Video: Neurobots Battle Royale: Muscle-Controlled Combat Hexbugs - Ajarnpa

Video: Neurobots Battle Royale: Muscle-Controlled Combat Hexbugs - Ajarnpa
Video: OpenBCI EEG/EMG Controlled Hexbug 2024, November
Anonim
Neurobots Battle Royale: spiergestuurde gevechtshexbugs
Neurobots Battle Royale: spiergestuurde gevechtshexbugs

Deze tutorial laat zien hoe je EMG-gegevens kunt gebruiken die worden gestreamd via OpenBCI-hardware en de OpenBCI GUI om de acties van een Hexbug te besturen. De gevechtscapaciteiten van deze hexbugs kunnen dan worden gecontroleerd door je eigen spierinput, en je zult in staat zijn om zelf Hexbug-gevechten aan te gaan!

Nuttige achtergrondvaardigheden:

  • Kennis van Arduino of C-gebaseerd programmeren

    Arduino Basis

  • Hoe de OpenBCI-hoofdbandset in te stellen met Cyton of Ganglion

    Dit zal je helpen bij het opzetten en aan de slag gaan met de OpenBCI Boards

  • EMG-gegevens streamen met OpenBCI

Enige achtergrondkennis over EMG-gegevens

Benodigdheden

  • Hardware

    • Een computer die voldoet aan de GUI-systeemvereisten
    • Hexbug 2.0 dubbel pakket
    • EMG/ECG-schuim vaste gelelektroden (30/pack)
    • EMG/ECG Snap-elektrodekabels
    • OpenBCI Cyton Board ($500) of Ganglion Board ($200)
    • 20 mannelijke-mannelijke startkabels
    • Breadboard
    • 10 x 10kΩ Weerstanden
    • Arduino Genuino Uno
    • Optioneel 5 LED's (aan te sluiten voor debuggen)
  • Software

    • OpenBCI GUI
    • De Arduino IDE
    • Aangeleverde code
  • OpenBCI Aan de slag-gidsen

    • OpenBCI GUI
    • Ganglion of Cyton

Stap 1: Soldeer jumperkabels naar controller

Soldeer jumperkabels naar controller
Soldeer jumperkabels naar controller
Soldeer jumperkabels naar controller
Soldeer jumperkabels naar controller
Soldeer jumperkabels naar controller
Soldeer jumperkabels naar controller

1.1 Verwijder het deksel van de controller

Wrik de doorzichtige plastic behuizing los door een platte schroevendraaier of een ander gereedschap in de vier vergrendelingslipjes van de controller te klemmen. Houd je vast aan de glijdende kanaal-switcher en de zaak zelf. Alle andere knoppen kunnen worden weggegooid.

Verwijder de vastgeplakte drukknoppen en gooi ze weg. Ontsoldeer ook de "Fire"-knop en gooi deze weg.

1.2 Soldeer op startkabels

Soldeer vervolgens elk van de mannelijk-mannelijke startkabels aan de kleine, binnenste cirkels waar de knoppen vooruit, achteruit, links en rechts waren. Soldeer ook verbindingen met de verwijderde brandkabel en de aardingspin aan de linkerkant.

1.3 Deksel van de controller vervangen

Gebruik een schaar of een mes om stukjes van het doorzichtige plastic deksel af te snijden die de positie van uw startkabels zouden kunnen verstoren en installeer deze opnieuw op de controller, waarbij u de kanaalschakelaar op zijn plaats houdt.

We hergebruiken het deksel zodat de schuifkanaal-switcher effectief in contact blijft met de geleidende plekken op het bord.

Stap 2: Maak een breadboard-configuratie en sluit de controller aan

Breadboard-configuratie maken en controller aansluiten
Breadboard-configuratie maken en controller aansluiten
Breadboard-configuratie maken en controller aansluiten
Breadboard-configuratie maken en controller aansluiten
Breadboard-configuratie maken en controller aansluiten
Breadboard-configuratie maken en controller aansluiten

Maak de setup opnieuw zoals hierboven weergegeven.

Uitleg:

2.1 Plaats de controllerpinnen in het breadboard

Elke opdracht komt in zijn eigen rij te staan. Plaats elke pin in zijn eigen rij in het binnenste gedeelte van het breadboard. Van boven naar beneden moet de volgorde hiervan zijn: Rechts, Links, Vooruit, Vuur.

2.2 Weerstanden toevoegen

Nadat u deze pinnen hebt geplaatst, voegt u een weerstand van 10 KΩ toe die de twee zijden van het breadboard overbrugt. Dit corrigeert de hoeveelheid stroom die naar elke pin gaat, waardoor de bug correct kan werken.

2.3 Fout bij het controleren van LED's toevoegen

Voor visualisatiedoeleinden kunnen we op dit punt ook een LED toevoegen. De anode van de LED moet in lijn liggen met de stuurpen en weerstand, en de kathode bevindt zich op een aparte lijn van het breadboard. Sluit een andere weerstand van de lijn van de kathode aan op de massa van het breadboard. Merk op dat deze stap optioneel is, maar kan helpen bij het oplossen van eventuele fouten met het circuit.

2.4 Setup verbinden met Arduino

Voeg ten slotte nog een startkabel toe om elke rij met een Arduino-pin te verbinden. Het is belangrijk dat ze als volgt overeenkomen:

3 - Vuur 4 - Vooruit 5 - Links 6 - Rechts

Stap 3: Test met het streamen van synthetische gegevens

Test met het streamen van synthetische gegevens
Test met het streamen van synthetische gegevens
Test met het streamen van synthetische gegevens
Test met het streamen van synthetische gegevens

3.1 Voorbeeldcode uploaden naar bord

Na het downloaden van onze verstrekte code, open je in Arduino. Sluit uw bord aan op uw laptop en zorg ervoor dat u het selecteert als de poort in de vervolgkeuzelijst Tools. Upload vervolgens uw code naar het Arduino-bord.

3.2 Open synthetische streaming

8 kanalen werken prima voor dit voorbeeld. Klik op "Start Systeem" om door te gaan.

Zodra je de GUI hebt geopend, zet je de kanalen 6-8 uit.

3.3 Netwerkwidget instellen

Open en stel de netwerkwidget in zoals weergegeven in de afbeelding, met behulp van de seriële modus. We willen dat het gegevenstype "EMG" is.

Merk ook op dat de baudrate in onze Arduino-schets 57600 is, dus we selecteren 57600 in de vervolgkeuzelijst Baud.

Zorg ervoor dat u de juiste poort voor de Arduino selecteert. Het is dezelfde poort die we hebben gebruikt om de schets naar de Arduino te uploaden. Als je Mac/Linux gebruikt, moet het worden gelabeld als "usbmodem" - anders dan het OpenBCI-bord dat het label "usbserial" zal hebben.

Zodra u hebt bevestigd dat alle informatie correct is, drukt u op start!

3.4 Testen uitvoeren

Aangezien synthetische gegevens veel moeilijker te controleren zijn, past u de instellingen in de EMG-widget aan totdat de vierkanten vluchtig genoeg zijn om de drempelwaarde die in de code wordt genoemd, te overschrijden. Als dit niet genoeg is, kan het in uw belang zijn om de drempelwaarde in de code te wijzigen en opnieuw te uploaden naar uw bord.

Het kan ook helpen om op één na alle kanalen tegelijk uit te schakelen en elke opdracht een voor een te testen om er zeker van te zijn dat ze allemaal doen wat ze zouden moeten doen. Zodra u hebt bevestigd dat alles goed werkt, kunt u doorgaan met echte gegevens.

Stap 4: Stel uw OpenBCI-kaart en elektroden in

Uw OpenBCI-kaart en elektroden instellen
Uw OpenBCI-kaart en elektroden instellen
Uw OpenBCI-kaart en elektroden instellen
Uw OpenBCI-kaart en elektroden instellen

Dit kan in twee richtingen: één persoon die alle 5 commando's bestuurt, of meerdere mensen die elk verschillende commando's besturen. Dit zal de manier waarop dit wordt gedaan differentiëren.

Optie A: één persoon die alle vijf de commando's bestuurt

Volg gewoon de instructies in deze EMG Setup-tutorial uit de OpenBCI-documentatie hier.

Optie B: Meerdere mensen die verschillende opdrachten besturen

Volg de EMG Setup-tutorial van de OpenBCI-website, maar met één wijziging: meerdere gronden moeten aan elkaar worden gesplitst.

Om dit te doen, knipt u ongeveer 3 inch mannelijke pin-draden en het uiteinde van een vrouwelijke pin-draad af en verwijdert u een inch rubber van de uiteinden om de draden binnenin bloot te leggen. Herhaal dit voor zoveel mannelijke draden als nodig is om elke persoon een individuele aarding te geven. Splits deze blootgestelde uiteinden aan elkaar en stop ze in een stuk krimpkous.

Stap 5: Maak verbinding met echte gegevens

Maak verbinding met echte gegevens
Maak verbinding met echte gegevens
Maak verbinding met echte gegevens
Maak verbinding met echte gegevens

Ga nu terug naar de GUI-homepage en kies LIVE (van Cyton) of LIVE (van Ganglion) -afhankelijk van het bord dat je gebruikt- als de gegevensbron.

Open vanaf hier de EMG-widget en de netwerkwidget en begin met streamen precies zoals we eerder hadden gedaan. Nu zouden de gegevens van uw live-invoer moeten worden gestreamd!

Stap 6: Strijd

Nu alles is ingesteld, ben je klaar voor de strijd. Als er twee opstellingen zijn gemaakt, kun je de besturing gebruiken om te vechten.

Houd er rekening mee dat robots één voor één moeten worden ingeschakeld om ervoor te zorgen dat de signalen van twee unieke bronnen worden verzameld.

Elke hexbug heeft drie levens en nadat deze allemaal zijn verstreken, drukt u eenvoudig op de aan / uit-knop om de scores opnieuw in te stellen.

Veel plezier en ga de strijd aan!

Stap 7: Problemen oplossen - Toetsenbordbesturingscode

Als je problemen hebt met de setup van je bord en het alleen wilt bedienen met toetsenbordinvoer, download dan deze code om de ingebouwde Arduino Serial Monitor te gebruiken om je circuit te besturen. Hiermee kunt u elke actie isoleren en bepalen of het probleem dat u ondervindt, afkomstig is van de fysieke Arduino-opstelling of van de gegevens.

Aanbevolen: