Inhaltsverzeichnis:

Steuern von Lichtern mit Ihren Augen - Gunook
Steuern von Lichtern mit Ihren Augen - Gunook

Video: Steuern von Lichtern mit Ihren Augen - Gunook

Video: Steuern von Lichtern mit Ihren Augen - Gunook
Video: Sei vorsichtig, du kannst deinen Namen vergessen! 6 erstaunliche Illusionen 2024, November
Anonim
Lichter mit deinen Augen steuern
Lichter mit deinen Augen steuern
Lichter mit deinen Augen steuern
Lichter mit deinen Augen steuern

In diesem Semester habe ich am College einen Kurs mit dem Titel Instrumentation in Biomedicine belegt, in dem ich die Grundlagen der Signalverarbeitung für medizinische Anwendungen gelernt habe. Für das Abschlussprojekt der Klasse arbeitete mein Team an der EOG-Technologie (Elektrookulographie). Im Wesentlichen senden Elektroden, die an den Schläfen einer Person angebracht sind, eine Spannungsdifferenz (basierend auf dem korneo-retinalen Dipol) an einen Schaltkreis, der das Signal filtern und verstärken soll. Das Signal wird einem ADC (Analog-Digital-Wandler - in meinem Fall dem ADC eines Arduino Uno) zugeführt und verwendet, um die Farben eines Neopixel-Juwels zu ändern.

Dieses Tutorial ist eine Möglichkeit für mich, das Gelernte aufzuzeichnen und auch mit dem regelmäßigen Leser zu teilen, wie Signale vom menschlichen Körper isoliert werden (also seien Sie gewarnt: Es ist voller zusätzlicher Details!). Diese Schaltung kann mit ein paar kleinen Änderungen tatsächlich für die elektrischen Impulse von Motorherzen als EKG-Wellenform und vieles mehr verwendet werden! Obwohl sie bei weitem nicht so fortschrittlich und perfektioniert ist wie Maschinen, die Sie in einem Krankenhaus finden würden, ist diese augenpositionsgesteuerte Lampe großartig für ein erstes Verständnis und einen ersten Blick.

Hinweis: Ich bin kein Experte in der Signalverarbeitung. Sollten Fehler auftreten oder Sie Verbesserungsvorschläge haben, lassen Sie es mich bitte wissen! Ich muss noch viel lernen, daher sind Kommentare willkommen. Außerdem erfordern viele der Veröffentlichungen, auf die ich in diesem Tutorial in Links verweise, akademischen Zugang, den ich mit freundlicher Genehmigung meiner Universität habe; Entschuldigung im Voraus für diejenigen, die keinen Zugang haben.

Schritt 1: Materialien

  • Protoboard
  • Widerstände (100, 1k, 10k, 33k, 1M + 0,5M)
  • Kondensator (0.1uF)
  • Instrumentenverstärker (INA111 in meinem Fall, aber es gibt ein paar, die relativ gut funktionieren sollten)
  • Operationsverstärker (beliebig - ich hatte zufällig einen LM324N)
  • Neopixel (alles funktioniert, aber ich habe ein Juwel verwendet)
  • 9V Batterien x2
  • 9V Batterie-Header x2
  • Festgelelektroden (Elektrodenauswahl wird in Schritt 5 besprochen)
  • Potentiometer
  • Isolierter Draht
  • Abisolierzangen
  • Lötkolben + Lötzinn
  • Krokodilklemmen (mit befestigten Drähten - bei Bedarf einige anlöten)
  • Heißkleber (um Drähte zu stabilisieren, die hin und her gebogen würden)
  • Arduino (so ziemlich alles funktioniert, aber ich habe ein Arduino Uno verwendet)

SEHR ZU EMPFEHLEN: Oszilloskop, Multimeter und Funktionsgenerator. Prüfen Sie Ihre Ausgänge, anstatt sich nur auf meine Widerstandswerte zu verlassen!

Schritt 2: Physiologischer Hintergrund und die Notwendigkeit eines Kreislaufs

Physiologischer Hintergrund und die Notwendigkeit eines Kreislaufs
Physiologischer Hintergrund und die Notwendigkeit eines Kreislaufs

Kurzer Haftungsausschluss: Ich bin keineswegs ein medizinischer Experte auf diesem Gebiet, aber ich habe das, was ich im Unterricht/von Google gelernt habe, unten zusammengestellt und vereinfacht, mit Links zum Weiterlesen, wenn Sie möchten. Außerdem ist dieser Link bei weitem der beste Überblick über das Thema, den ich gefunden habe - einschließlich alternativer Techniken.

EOG (Elektrookulographie) arbeitet am korneo-retinalen Dipol. Die Hornhaut (Vorderseite des Auges) ist leicht positiv geladen und die Netzhaut (Rückseite des Auges) ist leicht negativ geladen. Wenn Sie Elektroden an den Schläfen anbringen und Ihren Stromkreis an Ihrer Stirn erden (hilft, Ihre Messwerte zu stabilisieren und einige 60-Hz-Interferenzen zu beseitigen), können Sie etwa 1-10 mV Spannungsunterschiede für horizontale Augenbewegungen messen (siehe Bild oben). Platzieren Sie für vertikale Augenbewegungen stattdessen Elektroden über und unter Ihrem Auge. In diesem Artikel finden Sie eine gute Lektüre darüber, wie der Körper mit Elektrizität interagiert – großartige Informationen zur Hautimpedanz usw. EOGs werden häufig zur Diagnose von ophthalmologischen Erkrankungen wie Katarakt, Refraktionsfehlern oder Makuladegeneration verwendet. Es gibt auch Anwendungen in der augengesteuerten Robotik, bei denen einfache Aufgaben mit einer.. Augenbewegung erledigt werden können.

Um diese Signale auszulesen, d. h. die Spannungsdifferenz zwischen den Elektroden zu berechnen, bauen wir einen wichtigen Chip namens Instrumentenverstärker in unsere Schaltung ein. Dieser Instrumentenverstärker besteht aus Spannungsfolgern, einem nicht invertierenden Verstärker und einem Differenzverstärker. Wenn Sie nicht viel über Operationsverstärker wissen, lesen Sie dies bitte für einen Crashkurs - im Wesentlichen nehmen sie eine Eingangsspannung, skalieren sie und geben die resultierende Spannung über ihre Stromschienen aus. Die Integration aller Widerstände zwischen den einzelnen Stufen hilft bei Toleranzfehlern: Normalerweise haben Widerstände 5-10% Toleranz in den Werten, und die reguläre Schaltung (nicht vollständig in einen Instrumentenverstärker integriert) würde für ein gutes CMMR stark auf die Genauigkeit angewiesen sein (siehe nächster Schritt).). Die Spannungsfolger sind für eine hohe Eingangsimpedanz (besprochen im obigen Absatz - wichtig, um Patienten zu verletzen), der nicht invertierende Verstärker soll eine hohe Verstärkung des Signals gewährleisten (mehr zur Verstärkung im nächsten Schritt) und der Differenzverstärker nimmt die Differenz auf zwischen den Eingängen (subtrahiert die Werte von den Elektroden). Diese sollen so viel Gleichtaktrauschen/Interferenzen wie möglich (mehr zur Signalverarbeitung, siehe nächster Schritt) für biomedizinische Signale, die reich an Fremdartefakten sind, zerkleinern.

Die Elektroden sind einer gewissen Hautimpedanz ausgesetzt, da das Gewebe und das Fett Ihrer Haut die direkte Messung von Spannungen behindern, was eine Signalverstärkung und -filterung erforderlich macht. Hier, hier und hier sind einige Artikel, in denen Forscher versucht haben, diese Impedanz zu quantifizieren. Diese physiologische Größe wird üblicherweise als 51-kOhm-Widerstand parallel zu einem 47-nF-Kondensator modelliert, obwohl es viele Variationen und Kombinationen gibt. Haut an verschiedenen Stellen kann unterschiedliche Impedanzen haben, insbesondere wenn man die unterschiedlichen Dicken und Mengen benachbarter Muskeln berücksichtigt. Auch die Impedanz ändert sich mit der Vorbereitung der Haut auf Elektroden: Eine gründliche Reinigung mit Wasser und Seife wird generell empfohlen, um eine ausgezeichnete Haftung und Konsistenz zu gewährleisten, und es gibt sogar spezielle Gele für Elektroden, wenn Sie wirklich Perfektion wünschen. Ein wichtiger Hinweis ist, dass sich die Impedanz mit der Frequenz ändert (Eigenschaft von Kondensatoren), sodass Sie Ihre Signalbandbreite kennen müssen, um die Impedanz vorherzusagen. Und ja, die Schätzung der Impedanz ist für die Rauschanpassung wichtig – siehe späterer Schritt für weitere Informationen dazu.

Schritt 3: Signalverarbeitung: Warum und wie?

Signalverarbeitung: Warum und wie?
Signalverarbeitung: Warum und wie?

Warum können Sie nicht einfach die Spannungsdifferenz von 1-10 mV als sofortigen Ausgang verwenden, um LEDs zu steuern? Nun, es gibt viele Gründe, Signale zu filtern und zu verstärken:

  • Viele ADCs (Analog-Digital-Wandler - nehmen Ihren analogen Eingang und digitalisieren ihn zum Lesen und Speichern von Daten auf dem Computer) können solche kleinen Änderungen einfach nicht erkennen. Zum Beispiel ist der ADC des Arduino Uno speziell ein 10-Bit-ADC mit 5V-Ausgang, was bedeutet, dass er 0-5V-Eingangsspannungen abbildet (außerhalb des Bereichs liegende Werte werden "rail", was bedeutet, dass niedrigere Werte als 0 V und höhere Werte gelesen werden als 5V) auf ganzzahlige Werte zwischen 0 und 1023. 10mV ist in diesem 5V-Bereich so klein. 5mV Wechsel auf 10mV im Gegensatz zu 2V Wechsel auf 4V). Stellen Sie es sich wie ein winziges Bild auf Ihrem Computer vor: Die Details können durch Ihre Pixel perfekt definiert sein, aber Sie können Formen nur unterscheiden, wenn Sie das Bild vergrößern.

    Beachten Sie, dass es besser ist, mehr Bits für Ihren ADC zu haben, da Sie das Quantisierungsrauschen minimieren können, indem Sie Ihr kontinuierliches Signal in diskrete, digitalisierte Werte umwandeln. Um zu berechnen, wie viele Bits Sie für eine Beibehaltung des Eingangs-SNR von ~96 % benötigen, verwenden Sie als Faustregel N = SNR (in dB)/6. Sie sollten jedoch auch Ihre Brieftasche im Auge behalten: Wenn Sie mehr Bits haben möchten, müssen Sie bereit sein, mehr Geld auszugeben

  • Rauschen und Interferenzen (Rauschen = zufällige Artefakte, die Ihre Signale gezackt statt glatt machen vs. Interferenzen = nicht zufällig, sinusförmige Artefakte von benachbarten Signalen von Funkwellen usw.) plagen alle im Alltag gemessenen Signale.

    • Die bekannteste ist die 60-Hz-Interferenz (50 Hz, wenn Sie sich in Europa befinden und keine in Russland, da sie Gleichstrom im Gegensatz zu Wechselstrom für die Steckdosenleistung verwenden …), die als Netzfrequenz von den elektromagnetischen Wechselstromfeldern von Steckdosen bezeichnet wird. Stromleitungen führen AC-Hochspannung von elektrischen Generatoren in Wohngebiete, wo Transformatoren die Spannung auf den Standard von ~120 V in amerikanischen Steckdosen herabsetzen. Die Wechselspannung führt zu diesem ständigen Bad aus 60Hz-Störungen in unserer Umgebung, die alle Arten von Signalen stören und herausgefiltert werden müssen.
    • 60-Hz-Interferenzen werden allgemein als Gleichtaktstörungen bezeichnet, da sie in beiden Eingängen (+ und -) von Operationsverstärkern auftreten. Nun haben Operationsverstärker etwas namens Common Mode Rejection Ratio (CMRR), um Gleichtaktartefakte zu reduzieren, aber (korrigieren Sie mich, wenn ich falsch liege!) Dies ist hauptsächlich gut für Gleichtaktrauschen (zufällig: Rauschen statt nicht zufällig: Interferenz).. Um 60Hz loszuwerden, kann man mit Bandsperrfiltern diese gezielt aus dem Frequenzspektrum entfernen, aber dann läuft man auch Gefahr, tatsächliche Daten zu entfernen. Im besten Fall können Sie einen Tiefpassfilter verwenden, um nur einen Frequenzbereich unter 60 Hz zu halten, sodass alles mit höheren Frequenzen herausgefiltert wird. Das habe ich für das EOG gemacht: Die erwartete Bandbreite meines Signals betrug 0-10 Hz (schnelle Augenbewegungen vernachlässigen - wollte in unserer vereinfachten Version nicht damit umgehen), also habe ich Frequenzen über 10 Hz mit einem Tiefpassfilter entfernt.

      • 60Hz können unsere Signale durch kapazitive Kopplung und induktive Kopplung verfälschen. Kapazitive Kopplung (hier auf Kondensatoren abgelesen) tritt auf, wenn Luft als Dielektrikum für Wechselstromsignale zwischen benachbarten Stromkreisen dient. Die induktive Kopplung kommt vom Faradayschen Gesetz, wenn Strom in einem Magnetfeld fließt. Es gibt viele Tricks, um die Kopplung zu überwinden: Sie können beispielsweise einen geerdeten Schirm als eine Art Faraday-Käfig verwenden. Das Verdrillen/Verflechten von Drähten, wenn möglich, verringert die Fläche, die für die induktive Kopplung zur Verfügung steht, um Störungen zu verursachen. Das Kürzen von Drähten und das Verringern der Gesamtgröße Ihrer Schaltung haben aus dem gleichen Grund auch den gleichen Effekt. Es hilft auch, sich bei Operationsverstärkerschienen auf Batteriestrom zu verlassen, anstatt sie an eine Steckdose anzuschließen, da die Batterien eine Gleichstromquelle ohne Sinusschwingung bieten. Lesen Sie hier noch viel mehr!
      • Tiefpassfilter beseitigen auch viel Rauschen, da zufälliges Rauschen durch hohe Frequenzen repräsentiert wird. Viele Rauschen sind weißes Rauschen, was bedeutet, dass Rauschen für alle Frequenzen vorhanden ist. Wenn Sie also Ihre Signalbandbreite so weit wie möglich begrenzen, können Sie den Anteil dieses Rauschens in Ihrem Signal begrenzen.

        Einige Tiefpassfilter werden Anti-Aliasing-Filter genannt, weil sie Aliasing verhindern: Wenn Sinuskurven unterabgetastet werden, werden sie möglicherweise als eine andere Frequenz erkannt als sie tatsächlich ist. Sie sollten immer daran denken, das Abtasttheorem von Nyquist zu befolgen (Signale mit 2x höherer Frequenz abtasten: benötigen eine Abtastfrequenz von > 2 Hz für eine erwartete Sinuswelle von 1 Hz usw.). In diesem EOG-Fall musste ich mir keine Sorgen um Nyquist machen, da mein Signal hauptsächlich im 10-Hz-Bereich liegen sollte und mein Arduino-ADC mit 10 kHz abtastet - mehr als schnell genug, um alles zu erfassen

    • Es gibt auch kleine Tricks, um Geräusche loszuwerden. Eine besteht darin, eine Sternmasse zu verwenden, damit alle Teile Ihrer Schaltkreise genau die gleiche Referenz haben. Andernfalls kann sich das, was ein Teil "Masse" nennt, von einem anderen Teil aufgrund des leichten Widerstands in den Drähten unterscheiden, was sich zu Inkonsistenzen summiert. Das Anlöten an Protoboard anstelle des Klebens an Steckbrettern reduziert auch etwas Lärm und schafft sichere Verbindungen, denen Sie im Gegensatz zum Einpressen vertrauen können.

Es gibt viele andere Möglichkeiten, Rauschen und Interferenzen zu unterdrücken (siehe hier und hier), aber Sie können einen Kurs dazu belegen oder Google für weitere Informationen verwenden: Kommen wir zur eigentlichen Schaltung!

Schritt 4: So funktioniert die Schaltung

So funktioniert die Schaltung
So funktioniert die Schaltung

Lassen Sie sich nicht vom Schaltplan einschüchtern: Hier ist eine grobe Aufschlüsselung, wie alles funktioniert: (siehe auch den vorherigen Schritt für einige Erklärungen)

  • Ganz links haben wir die Elektroden. Eine wird an der linken Schläfe befestigt, eine andere an der rechten Schläfe und die dritte Elektrode wird an der Stirn geerdet. Diese Erdung stabilisiert das Signal, so dass es weniger Drift gibt und auch einige der 60-Hz-Störungen beseitigt werden.
  • Als nächstes kommt der Instrumentenverstärker. Gehen Sie zwei Schritte zurück, um zu erklären, was die Spannungsdifferenz erzeugt. Die Gleichung zum Ändern der Verstärkung des Verstärkers befindet sich auf Seite 7 des Datenblatts [G = 1+(50kOhm/Rg) wobei Rg an den Pins 1 und 8] des Verstärkers angeschlossen ist. Für meine Schaltung habe ich mit Rg = 100Ohm eine Verstärkung von 500 eingestellt.
  • Nachdem der Instrumentenverstärker die 500x verstärkte Spannungsdifferenz ausgibt, gibt es einen RC-Tiefpassfilter erster Ordnung, der aus einem Widerstand R_filter und einem Kondensator C_filter besteht. Der Tiefpassfilter verhindert Anti-Aliasing (kein Problem für mich, da ich von Nyquist mindestens 20 Hz für eine erwartete Bandbreite von 10 Hz abtasten muss und der Arduino ADC mit 10 kHz abtastet - mehr als genug) und auch Rauschen ausschneidet auf allen Frequenzen, die ich nicht brauche. Das RC-System funktioniert, weil Kondensatoren hohe Frequenzen leicht durchlassen, aber niedrigere Frequenzen blockieren (Impedanz Z = 1/(2*pi*f)) und die Erzeugung eines Spannungsteilers mit der Spannung am Kondensator zu einem Filter führt, der nur niedrigere Frequenzen durchlässt bis [Cutoff für die 3dB-Intensität wird durch die Formel f_c = 1/(2*pi*RC)] bestimmt. Ich habe die R- und C-Werte meines Filters angepasst, um Signale von mehr als ~ 10 Hz abzuschneiden, da das biologische Signal für EOGs in diesem Bereich erwartet wird. Ursprünglich habe ich nach 20 Hz abgeschnitten, aber nach dem Experimentieren funktionierten 10 Hz genauso gut, also habe ich mich für die kleinere Bandbreite entschieden (eine kleinere Bandbreite ist besser, um alles Unnötige herauszuschneiden, nur für den Fall).
  • Mit diesem gefilterten Signal habe ich die Ausgabe mit einem Oszilloskop gemessen, um meinen Wertebereich von links und rechts zu sehen (die beiden Extreme meines Bereichs). Das brachte mich auf etwa 2-4 V (weil die Verstärkung des Instrumentierungsverstärkers 500x für einen Bereich von ~ 4-8 mV betrug), wenn mein Ziel 5 V beträgt (voller Bereich des Arduino ADC). Dieser Bereich variierte stark (je nachdem, wie gut die Person die Haut zuvor gewaschen hat usw.), sodass ich mit meinem zweiten nicht invertierenden Verstärker nicht so viel Verstärkung haben wollte. Am Ende habe ich es so eingestellt, dass es nur eine Verstärkung von etwa 1,3 hat (stellen Sie R1 und R2 in der Schaltung ein, da die Verstärkung des Verstärkers = 1 + R2 / R1 ist). Sie müssen Ihren eigenen Ausgang überprüfen und von dort aus anpassen, damit Sie nicht über 5 V gehen! Verwenden Sie nicht nur meine Widerstandswerte.
  • Dieses Signal kann jetzt zum Lesen in den Arduino-Analogpin eingespeist werden, ABER der Arduino ADC akzeptiert keine negativen Eingänge! Sie müssen Ihr Signal nach oben verschieben, damit der Bereich 0-5 V im Gegensatz zu -2,5 V bis 2,5 V beträgt. Eine Möglichkeit, dies zu beheben, besteht darin, die Masse Ihrer Platine an den 3,3-V-Pin des Arduino anzuschließen: Dies verschiebt Ihr Signal um 3,3 V (mehr als 2,5 V optimal, aber es funktioniert). Mein Bereich war wirklich wackelig, also entwarf ich eine variable Offsetspannung: Auf diese Weise konnte ich das Potentiometer drehen, um den Bereich auf 0-5 V zu zentrieren. Es ist im Wesentlichen ein variabler Spannungsteiler, der die +/- 9 V-Stromschienen verwendet, sodass ich die Schaltungsmasse auf einen beliebigen Wert von -9 bis 9 V legen und somit mein Signal um 9 V nach oben oder unten verschieben kann.

Schritt 5: Komponenten und Werte auswählen

Komponenten und Werte kommissionieren
Komponenten und Werte kommissionieren

Wie wählen wir mit der erklärten Schaltung aus, welche (Elektrode, Operationsverstärker) verwendet werden soll?

  • Als Sensor haben die Festgelelektroden eine hohe Eingangsimpedanz und eine niedrige Ausgangsimpedanz: Dies bedeutet im Wesentlichen, dass Strom leicht stromabwärts zum Rest des Stromkreises durchfließen kann (niedrige Ausgangsimpedanz), aber er hätte Probleme, stromaufwärts zurück zu Ihren Schläfen zu gelangen (hohe Eingangsimpedanz). Dies verhindert, dass der Benutzer durch hohe Ströme oder Spannungen im Rest Ihres Stromkreises verletzt wird; Tatsächlich verfügen viele Systeme über einen sogenannten Patientenschutzwiderstand für zusätzlichen Schutz für alle Fälle.

    • Es gibt viele verschiedene Elektrodentypen. Die meisten Leute empfehlen Ag/AgCl-Festgelelektroden zur Verwendung in EKG/EOG/usw.-Anwendungen. In diesem Sinne müssen Sie den Quellenwiderstand dieser Elektroden nachschlagen (für meine Hinweise zur Hautimpedanz zwei Schritte zurückgehen) und ihn an den Rauschwiderstand anpassen (Rauschspannung in V/sqrt(Hz) geteilt durch Rauschstrom in A/sqrt(Hz) - siehe Datenblätter der Operationsverstärker) Ihrer Operationsverstärker - so wählen Sie den richtigen Instrumentierungsverstärker für Ihr Gerät aus. Dies wird als Rauschanpassung bezeichnet, und Erklärungen, warum die Anpassung des Quellenwiderstands Rs an den Rauschwiderstand Rn funktioniert, finden Sie online wie hier. Für meinen INA111, den ich gewählt habe, kann der Rn anhand der Rauschspannung und des Rauschstroms des Datenblatts berechnet werden (Screenshot oben).

      • Es gibt VIELE Artikel, die die Elektrodenleistung bewerten, und keine Elektrode ist für alle Zwecke die beste: Probieren Sie es zum Beispiel hier aus. Die Impedanz ändert sich auch für verschiedene Bandbreiten, wie in den Datenblättern der Operationsverstärker widergespiegelt (einige Datenblätter enthalten Kurven oder Tabellen bei unterschiedlichen Frequenzen). Recherchieren Sie, aber denken Sie daran, Ihren Geldbeutel im Auge zu behalten. Es ist schön zu wissen, welche Elektroden / Operationsverstärker am besten sind, aber es nützt nichts, wenn Sie es sich nicht leisten können. Sie benötigen mindestens ~50 Elektroden zum Testen, nicht nur 3 für den einmaligen Gebrauch.

        • Für eine optimale Rauschanpassung sollte nicht nur Rn ~= Rs: Sie möchten auch, dass die Rauschspannung * Rauschstrom (Pn) so gering wie möglich ist. Dies wird als wichtiger angesehen, als Rn ~= Rs zu machen, da Sie Rs und Rn bei Bedarf mithilfe von Transformatoren anpassen können.

          Einschränkungen bei Transformatoren (korrigieren Sie mich, wenn falsch): Sie können etwas sperrig und daher nicht optimal für Geräte sein, die klein sein müssen. Sie bauen auch Wärme auf, sodass Kühlkörper oder eine hervorragende Belüftung erforderlich sind

        • Rauschen passt nur zu Ihrem ersten anfänglichen Verstärker; Der zweite Verstärker hat keinen so großen Einfluss, daher reicht jeder Operationsverstärker.

Schritt 6: Aufbau der Schaltung

Aufbau der Schaltung
Aufbau der Schaltung
Aufbau der Schaltung
Aufbau der Schaltung
Aufbau der Schaltung
Aufbau der Schaltung

Verwenden Sie das obige Fritzing-Diagramm, um die Schaltung zu erstellen (die zweite Kopie beschreibt, worauf sich jedes Teil im Schaltplan aus dem vorherigen Schritt bezieht). Wenn Sie Hilfe bei der Identifizierung der LEDs im Diagramm benötigen, verwenden Sie diesen Widerstands-Farbcode-Rechner, aber der Rg des Instrumentierungsverstärkers beträgt 100 Ohm, der R_filter ist 1,5 MOhm, der C_filter ist 0,1 uF, R1 des nicht invertierenden Verstärkers ist der 10 kOhm. R2 ist 33kOhm und der Widerstand für das Potentiometer ist 1kOhm (Potentiometer variiert von 0 bis 20kOhm). Denken Sie daran, Ihre Widerstandswerte nach Bedarf zu ändern, um die Verstärkungen anzupassen!

Bearbeiten: Es liegt ein Fehler im versetzten Bodenteil vor. Löschen Sie das linke schwarze Kabel. Der Widerstand sollte wie abgebildet mit dem roten Draht an die Stromschiene angeschlossen werden, aber auch an den zweiten Pin, nicht den ersten, des Potentiometers. Der erste Pin des Potentiometers sollte mit dem 5V-Pin des Arduino verbunden werden. Das orangefarbene Kabel, das die Offset-Masse ist, sollte an den zweiten Pin angeschlossen werden, nicht an den ersten.

Ich habe viel über den Offset-Boden diskutiert. Im Diagramm sehen Sie, dass die Arduino-Masse mit der Masse des Steckbretts verbunden ist. Das ist in dem Szenario, dass Sie Ihren Boden nicht ändern müssen. Wenn Ihr Signal außerhalb des Bereichs liegt und Sie Ihre Masse verschieben müssen, versuchen Sie zuerst, die Arduino-Masse mit dem 3,3-V-Pin des Arduino zu verbinden und Ihr Signal anzuzeigen. Andernfalls versuchen Sie, den orangefarbenen Draht im Potentiometer-Setup (Offset-Masse) an den GND-Pin des Arduino anzuschließen.

SICHERHEITSHINWEIS: Halten Sie die Batterien beim Löten NICHT drin und legen oder löten Sie die Batterien NICHT verkehrt herum an. Ihre Schaltung fängt an zu rauchen, Kondensatoren werden durchbrennen und das Steckbrett könnte auch beschädigt werden. Als Faustregel gilt, verwenden Sie die Batterien nur, wenn Sie die Schaltung verwenden möchten; andernfalls nehmen Sie sie ab (das Hinzufügen eines Kippschalters zum einfachen Abklemmen der Batterien wäre auch eine gute Idee).

Beachten Sie, dass Sie die Schaltung Stück für Stück (überprüfen Sie jede Stufe!) und auf einem Steckbrett aufbauen sollten, bevor Sie an ein Protoboard löten. Die erste zu überprüfende Stufe ist der Instrumentenverstärker: Befestigen Sie alle Schienen (Löten in den Batteriehaltern), Rg usw. und verwenden Sie ein Oszilloskop am Ausgangspin. Verwenden Sie für den Anfang einen Funktionsgenerator mit einer 1-Hz-Sinuswelle mit einer Amplitude von 5 mV (oder der niedrigsten, die Ihr Generator erreichen wird). Dies dient nur dazu, zu überprüfen, ob der Instrumentenverstärker ordnungsgemäß funktioniert und Ihr Rg Ihre Zielverstärkung liefert.

Als nächstes überprüfen Sie Ihren Tiefpassfilter. Fügen Sie diesen Teil der Schaltung hinzu und überprüfen Sie Ihre Wellenform: Sie sollte genau gleich aussehen, aber weniger Rauschen (gezackt - siehe die letzten beiden Bilder oben). Lassen Sie uns Ihre endgültige Ausgabe jetzt mit einem Oszilloskop mit Ihren Elektroden statt mit einem Funktionsgenerator prüfen…

Schritt 7: Testschaltung mit einem Menschen

Schaltung mit einem Menschen testen
Schaltung mit einem Menschen testen
Schaltung mit einem Menschen testen
Schaltung mit einem Menschen testen
Schaltung mit einem Menschen testen
Schaltung mit einem Menschen testen

Legen Sie wieder Elektroden an Ihre linke und rechte Schläfe und befestigen Sie ein Erdungskabel an einer Elektrode auf Ihrer Stirn. Erst danach Batterien einlegen -- bei Kribbeln SOFORT entfernen und Anschlüsse nochmals prüfen!!! Überprüfen Sie nun Ihren Wertebereich, wenn Sie nach links vs. rechts schauen, und stellen Sie R1/R2 des nicht invertierenden Verstärkers ein, wie vor zwei Schritten erklärt - denken Sie daran, dass das Ziel ein 5-V-Bereich ist! Siehe Bilder oben für Hinweise, worauf Sie achten müssen.

Wenn Sie mit allen Widerstandswerten zufrieden sind, löten Sie alles auf ein Protoboard. Löten ist nicht unbedingt erforderlich, bietet jedoch mehr Stabilität gegenüber einfachen Pressverbindungen und beseitigt die Unsicherheit, dass die Schaltung nicht funktioniert, nur weil Sie sie nicht fest genug in ein Steckbrett gedrückt haben.

Schritt 8: Arduino-Code

Alle Codes am Ende dieses Schrittes angehängt!

Jetzt, da Sie einen 5-V-Bereich haben, müssen Sie sicherstellen, dass er innerhalb von 0-5 V statt -1 V bis 4 V usw. liegt. Verbinden Sie entweder die Masse mit dem 3,3-V-Pin des Arduino oder die Offset-Massespannung (orangefarbener Draht oben) an die Masseschiene und verbinden Sie dann einen Draht von der Masseschiene mit dem GND-Pin des Arduino (dies dient dazu, das Signal nach oben oder unten zu verschieben, damit Sie in den Bereich von 0-5 V fallen). Sie müssen herumspielen: Vergessen Sie nicht, Ihre Ausgabe zu überprüfen, wenn Sie unsicher sind!

Nun zur Kalibrierung: Sie möchten, dass das Licht die Farbe für verschiedene Augenpositionen ändert (ganz links schauen vs. nicht ganz links..). Dafür brauchen Sie Werte und Bereiche: Führen Sie EOG-calibration-numbers.ino zum Arduino mit allem, was richtig angeschlossen ist (beenden Sie die Verbindungen zum Arduino und zum Neopixel gemäß meinem Fritzing-Diagramm). Nicht unbedingt notwendig, aber führen Sie auch den bioe.py-Code aus, den ich habe - dies gibt eine Textdatei auf Ihrem Desktop aus, damit Sie alle Werte aufzeichnen können, während Sie nach links oder rechts schauen (Python-Code wurde aus diesem Beispiel angepasst). Wie ich das gemacht habe, suchte ich für 8 Schläge nach links, dann nach rechts, dann nach oben, dann nach unten und wiederhole es für die spätere Mittelung (siehe output_2.pdf für ein Protokoll, das ich aufbewahrt habe). Drücken Sie Strg+C, um das Beenden zu erzwingen, wenn Sie zufrieden sind. Mit diesen Werten können Sie dann die Bereiche der Animationen in meinem BioE101_EOG-neopixel.ino-Code anpassen. Für mich hatte ich eine Regenbogenanimation, wenn ich geradeaus schaute, blau für ganz links, grün für leicht links, lila für leicht rechts und rot für ganz rechts.

Schritt 9: Zukünftige Schritte

Voila; etwas, das Sie nur mit Ihren Augen kontrollieren können. Es gibt noch viel zu optimieren, bevor es ins Krankenhaus kommt, aber das ist für einen anderen Tag: Die Grundkonzepte sind jetzt zumindest verständlicher. Eine Sache, die ich zurückgehen und ändern möchte, ist, meinen Gain für den Instrumentenverstärker auf 500 einzustellen: Rückblickend war das wahrscheinlich zu viel, weil mein Signal danach bereits 2-4 V betrug und ich mich schwer getan habe, das nicht invertierende zu verwenden Verstärker, um meine Reichweite perfekt anzupassen…

Es ist schwer, Konsistenz zu erreichen, da sich das Signal bei verschiedenen Bedingungen SEHR SEHR ändert:

  • andere Person
  • Lichtverhältnisse
  • Hautvorbereitung (Gele, Waschen usw.)

aber trotzdem bin ich mit meinem letzten Video-Leistungsnachweis sehr zufrieden (um 3 Uhr morgens aufgenommen, weil dann alles auf magische Weise anfängt zu funktionieren).

Ich weiß, dass ein Großteil dieses Tutorials verwirrend erscheinen kann (ja, die Lernkurve war auch für mich schwierig), also stellen Sie bitte unten Fragen und ich werde mein Bestes tun, um sie zu beantworten. Genießen!

Unberührbare Herausforderung
Unberührbare Herausforderung
Unberührbare Herausforderung
Unberührbare Herausforderung

Zweiter in der Unberührbaren Herausforderung

Empfohlen: