Experiment: Kontrollier' die Maschine mit deinem Gehirn!
Du weiß t bereits, was ein EMG ist? Kannst du mit dem EMG auch schon ein anderes System steuern? Hier wirst du zum Neuroingenieur indem du den berühmten Arduino Microcontroller verwendest.
Was lernt man hier?
Hier lernst du wie du das Muscle SpikerShield mit externer Hardware verbindest. Dies ist eine Fortsetzung unseres Neuroprothesenexperiments; Nur dass du jetzt ein EMG Signal von einem beliebigen Muskel benutzen wirst, dieses mit einem Arduino microcontroller verarbeitest (digitalisierst) und eine Reihe leuchternder LEDs steuern kannst. Das ist eine Gehirn-Arduino Schnittstelle (Brain-Arduino Interface)!
Ausrüstung
Hintergrund
Im Muscle SpikerBox Experiment haben wir gelernt wie Motorneurone Muskeln mit elektrischen Signalen aktivieren und genauso wie wir diese Aktivität mit der BYB Spike Recorder App aufnehmen können. Diese EMG Signale werden von Ärzten und Wissenschaftlern weltweit benutzt um die menschliche Physiologie zu untersuchen. Doch sie können auch von Biohackern benutzt werden! Wir benutzen unser EMG als Eingangssignal, somit können wir endlich anfangen eine Mensch-Maschinenschnittstelle zu kreieren.
Das Muscle SpikerShield funktioniert wie die Muscle SpikerBox, aber ist zudem dafür entwickelt worden, um sie mit einem Arduino Uno zu verbinden. Wer ist eigentlich dieser 'Arduino' fragst du dich vielleicht gerade? Ein Arduino ist ein Mikrocontroller. Mikrocontroller sind einfach gestrickt: sie nehmen ein Signal und berechnen etwas damit. Je nachdem wie du sie mit einem Computercode programmierst, können sie Informationen benutzen um andere Geräte zu kontrollieren. Ein berühmtes Beispiel eines Mikrocontroller-Projekts wäre ein automatischer Katzenfutterautomat. Der Sensor wiegt das Gewicht des Essens in der Futterschale. Der Mikrocontroller liest diese Information ein und immer wenn das Gewicht unter einen bestimmten Wert fällt, lässt der Futterspender mehr Kaviar in den Napf fallen.
So, die Katze ist satt und jetzt geht's ans Eingemachte. Das Muscle SpikerShield erlaubt es dir deine elektrischen Muskelsignale aufzunehmen und in den Arduino zu schicken. Wichtig dabei ist, dass unser EMG Signal anfangs analog ist (dynamisch und stufenlos). Das analoge Signal ist was du mit dem Muscle Spiker Shielt hörst und was du auf deiner Spike Recorder App siehst während du dein EMG misst. Um dieses Signal mit unserem Arduino Code zu benutzen, wandeln wir das analoge Signal in ein digitales um. Wir teilen festgelegten Schwellenwerten im Signal einen diskreten Wert zu und vereinfachen seine Darstellung und seinen Informationsgehalt. Damit kann unser Code besser umgehen. Kurze Zusammenfassung: Das SpikerShield gibt dir die Möglichkeit die elektrische Aktivität deines Muskels zu messen und diese in einen Arduino zu schicken. Dieser analyisiert die Information und benutzt es als Einganssignal für eine Mensch-Maschinenschnittstelle! Deine Muskeln können nun Neuroprothesen (quasi ein Roboterarm), Videospiele oder sogar !!!Lichter!!! steuern.Downloads
Es ist gut, wenn du ein gewisses Basisverständnis der Arduino Platform hast und dass du weiß t, wie man Code auf dein Arduino Board lädt. Falls du noch nie einen Arduino bentzt hast, keine Angst! Eine gute Anleitung gibt es hier oder hier für Mac OS X . Wichtig: Wenn du das Muscle SpikerShield Bundle hast, ist der Led_strip2014 Code bereits vorinstalliert.
Download deine Arduino(.ino) Datei für dieses Experiment
Ablauf
- Los geht's! Falls du das SpikerShield Bundle hast, kannst du direkt loslegen! Aaaaaber, damit wir hier auch etwas lernen, lasst uns doch von vorne anfangen. Dieses Experiment zeigt dir wie man einen Arduino aufsetzt und programmiert.
- Als Erstes setzt du das Muscle SpikerShield direkt auf den Arduino, sodass alle männlichen Pins (nach oben stehende Dräahte) des Shields in die passenden weiblichen Stecker des Arduinos passen. In diesem Experiment werden wir den ersten analogen Input benutzen (A0) also sei dir sicher, dass du input select mit 1 zusammensteckst. Aufgepasst: dein Arduino läuft entweder über die externe USB Stromquelle oder über die beigelegte Batterienschlinge. Nur die Batterie wird erst dann ausreichen, wenn du den Code hochgeladen hast. Also: Verbinde JETZT Computer und Arduino über das USB Kabel, um eine Verbindung zwischen den Geräten herzustellen.
- Download' unseren led_strip2014_highergain.ino Arduino Schaltplan (oben bereits erwähnt) and upload ihn auf den Arduino.
- Verbinde nun das orangene Elektrodenkabel mit deinem Muscle SpikerShield und die drei Alligatorclips mit den Elektrodenpatches auf deinem Arm. Platziere die zwei roten Clips an deinem Unterarm und den schwarzen an deinem Handrücken. Du kannst dich gleichzeitig noch mit einem Lautsprecher verbinden, sodass du deine Muskelaktivität nicht nur sehen sondern auch hören kannst!
- Öffne den Arduino serial monitor des IDEs um einen Blick auf die Zahlen zu werfen (s. Abb. unten). Die linken Werte sind die digitalisierten Eingangssignale. Rechte Spalte: Anzahl der LEDs, die aufleuchten bei Kontraktion. Wenn die Werte beim Anspannen größer sind als im entspannten Zustand ist alles okay! Hier kannst du bereits sehen, dass dein Muskelsignal unterteilt wird. Je nachdem in welche Kategorie es fällt leuchten unterschiedlich viele LEDs auf. Man kann zusätzlich noch einen Lautsprecher mit dem Muscle SpikerShield verbinden, damit du die Elektrizität in deinem Muskel auch hören kannst (s. Video oben)!
- Falls es dir vielleicht noch nicht aufgefallen ist: Du kontrollierst die LEDs mit deinen Muskeln! Je stärker du anspannst umso mehr LEDs leuchten auf! Mit dem weiß en Knopf kannst du die oben genannte Kategorisierung beziehungsweise die Sensititvität verändern. Du kannst auch die Maximalkonstante von 4 auf einen anderen Wert setzen bis er zu deinen Signalen passt. Wenn die Lichter zu schnell aufleuchten, erhöhe diesen Wert - falls es dir schwer fällt, verringere ihn!
#define NUM_LED 6 //sets the maximum numbers of LEDs #define MAX 150 //maximum posible reading. TWEAK THIS VALUE!! int reading[10]; int finalReading;
- Dein SpikerShield funktioniert auch mit einer externen USB Batterie oder mit unserer 9V-Batterie Schlinge. Wichtig: Verbinde das Endstück der Schlinge mit der Buchse deines Arduinos und nicht mit der deines SpikerShields. Sprich: Stromzufuhr zum unteren Board, nicht zum oberen. Die obere Strombuchse brauchen wir bei unserem nächsten Experiment... 'Die Klaue'!
- Und zum Schluss: falls dein SpikerShield als Teil eines Kits mitkam (z.B. des HHIs oder als Teil des Claw Bundles), dann spiel doch diesen Code auf dein Spikershield. HHIClawCombined.ino. So sollten beide Experimente laufen!
Andere Experimente
Nachdem du die Grundlagen jetzt schon drauf hast, kannst du weitere Mensch-Maschinen Schnittstellenexperimente durchführen!
Und das ist erst der Anfang! Die Welt des EMG Arduino Bastelns liegt vor dir. Happy hacking! Gib' uns Bescheid, wenn du wofür du deine EMG Signale verwendest! Sei' kreativ nd lass deinen Ideen freien Lauf.