Cuprins:

Controlul luminilor cu ochii: 9 pași (cu imagini)
Controlul luminilor cu ochii: 9 pași (cu imagini)

Video: Controlul luminilor cu ochii: 9 pași (cu imagini)

Video: Controlul luminilor cu ochii: 9 pași (cu imagini)
Video: Ce înseamna semnul tau din nastere 2024, Noiembrie
Anonim
Controlul luminilor cu ochii tăi
Controlul luminilor cu ochii tăi
Controlul luminilor cu ochii tăi
Controlul luminilor cu ochii tăi

În acest semestru, la facultate, am urmat o clasă numită Instrumentație în biomedicină în care am învățat elementele de bază ale procesării semnalului pentru aplicații medicale. Pentru proiectul final al clasei, echipa mea a lucrat la tehnologia EOG (electrooculografie). În esență, electrozii atașați la templele cuiva trimit o diferență de tensiune (bazată pe dipolul corneo-retinal) către un circuit conceput pentru a filtra și amplifica semnalul. Semnalul este alimentat către un ADC (convertor analog-digital - în cazul meu, ADC-ul unui Arduino Uno) și folosit pentru a schimba culorile unei bijuterii neopixel.

Acest tutorial este o modalitate pentru mine de a înregistra ceea ce am învățat și, de asemenea, de a împărtăși cititorului obișnuit modul în care semnalele sunt izolate de corpul uman (așa că fiți atenți: este plin de detalii suplimentare!). Acest circuit poate fi de fapt utilizat, cu câteva modificări minore, pentru a impulsiona impulsurile electrice ale inimii ca formă de undă EKG și multe altele! Deși cu siguranță nu este nici pe departe atât de avansată și de perfecționată ca mașinile pe care le-ați găsi într-un spital, această lampă controlată de poziția ochilor este excelentă pentru o înțelegere și o privire inițială.

Notă: Nu sunt expert în procesarea semnalului, deci dacă există erori sau dacă aveți sugestii de îmbunătățire, vă rugăm să ne anunțați! Mai am multe de învățat, așa că comentariile sunt apreciate. De asemenea, multe dintre lucrările pe care le refer în link-uri de-a lungul acestui tutorial necesită acces academic pe care îl am prin amabilitatea universității mele; scuze în avans pentru cei care nu vor avea acces.

Pasul 1: Materiale

  • protoboard
  • rezistențe (100, 1k, 10k, 33k, 1M + 0,5M)
  • condensator (0.1uF)
  • instrumentar amplificator (INA111 în cazul meu, dar există un cuplu care ar trebui să funcționeze relativ bine)
  • op amplificator (oricare - mi s-a întâmplat să am un LM324N)
  • neopixel (orice funcționează, dar am folosit o bijuterie)
  • Baterii de 9V x2
  • Anteturi baterie 9V x2
  • electrozi cu gel solid (selectarea electrozilor este discutată în pasul 5)
  • potențiometru
  • fir izolat
  • stripuri de sârmă
  • fier de lipit + lipit
  • cleme de aligator (cu fire atașate - lipiți câteva dacă este necesar)
  • lipici fierbinte (pentru a stabiliza firele care ar fi îndoite înainte și înapoi)
  • Arduino (destul de mult bordează orice funcționează, dar am folosit un Arduino Uno)

RECOMANDĂ: osciloscop, multimetru și generator de funcții. Sondați ieșirile dvs. mai degrabă decât să vă bazați doar pe valorile rezistenței mele!

Pasul 2: Fundal fiziologic și necesitatea unui circuit

Contextul fiziologic și necesitatea unui circuit
Contextul fiziologic și necesitatea unui circuit

Declinare de responsabilitate rapidă: nu sunt în niciun caz un expert medical în acest domeniu, dar am compilat și simplificat ceea ce am învățat în clasă / de la Google de mai jos, cu linkuri pentru lectură ulterioară, dacă doriți. De asemenea, acest link este de departe cea mai bună imagine de ansamblu asupra subiectului pe care l-am găsit - include tehnici alternative.

EOG (electro-oculografie) funcționează pe dipolul corneo-retinian. Corneea (partea din față a ochiului) este ușor încărcată pozitiv, iar retina (partea din spate a ochiului) este ușor încărcată negativ. Când aplicați electrozi pe tâmple și vă împământați circuitul pe frunte (vă ajută să vă stabilizați citirile și să scăpați de o interferență de 60Hz), puteți măsura diferențele de tensiune de aproximativ 1-10mV pentru mișcările orizontale ale ochilor (a se vedea imaginea de mai sus). Pentru mișcări verticale ale ochilor, plasați electrozii deasupra și sub ochi. Consultați acest articol pentru o lectură bună despre modul în care corpul interacționează cu electricitatea - informații excelente despre impedanța pielii, etc. Există, de asemenea, aplicații în robotica controlată de ochi, în care sarcinile simple pot fi efectuate cu o simplă lovitură de.. ochi.

Pentru a citi aceste semnale, adică a calcula diferența de tensiune între electrozi, încorporăm un circuit important numit amplificator de instrumentație în circuitul nostru. Acest amplificator de instrumente este format din adepți de tensiune, un amplificator fără inversare și un amplificator diferențial. Dacă nu știți prea multe despre amplificatoarele de operare, vă rugăm să citiți acest lucru pentru un curs accidentat - în esență, acestea iau o tensiune de intrare, o scalează și emit tensiunea rezultată folosind șinele sale de alimentare. Integrarea tuturor rezistențelor între fiecare etapă ajută la erori de toleranță: în mod normal, rezistențele au o toleranță de 5-10% în valori, iar circuitul regulat (care nu este complet integrat într-un amplificator de instrumentație) se va baza puternic pe acuratețe pentru un CMMR bun (vezi pasul următor). Adepții de tensiune sunt pentru impedanță mare de intrare (discutat în paragraful de mai sus - major pentru prevenirea rănirii pacientului), amplificatorul care nu inversează este de a asigura un câștig ridicat al semnalului (mai multe despre amplificare în pasul următor), iar amplificatorul diferențial ia diferența între intrări (scade valorile din electrozi). Acestea sunt concepute pentru a zdrobi cât mai mult posibil zgomot / interferență în mod comun (pentru mai multe despre procesarea semnalului, vezi pasul următor) pentru semnalele biomedicale, care sunt pline de artefacte străine.

Electrozii se confruntă cu o anumită impedanță a pielii, deoarece țesuturile și grăsimile pielii obstrucționează măsurarea directă a tensiunilor, ceea ce duce la necesitatea amplificării și filtrării semnalului. Iată, aici și aici sunt câteva articole în care cercetătorii au încercat să cuantifice această impedanță. Această cantitate fiziologică este modelată în mod obișnuit ca un rezistor de 51kOhm în paralel cu un condensator de 47nF, deși există multe variații și combinații. Pielea din diferite locații poate avea impedanțe diferite, mai ales atunci când luați în considerare diferite grosimi și cantități de mușchi adiacent. Impedanța se schimbă, de asemenea, cu cât de bine este pregătită pielea pentru electrozi: curățarea temeinică cu apă și săpun este sugerată, în general, pentru a asigura o aderență și consistență excelente și există chiar și geluri de specialitate pentru electrozi, dacă doriți cu adevărat perfecțiunea. O notă esențială este că impedanța se schimbă cu frecvența (caracteristică condensatoarelor), deci trebuie să cunoașteți lățimea de bandă a semnalului pentru a prezice impedanța. Și da, estimarea impedanței este importantă pentru potrivirea zgomotului - consultați pasul ulterior pentru mai multe informații despre acest lucru.

Pasul 3: Procesarea semnalului: De ce și cum?

Prelucrarea semnalului: de ce și cum?
Prelucrarea semnalului: de ce și cum?

Acum, de ce nu puteți folosi doar diferența de tensiune 1-10mV ca ieșire imediată pentru a controla LED-urile? Ei bine, există o mulțime de motive pentru filtrarea și amplificarea semnalelor:

  • Multe ADC-uri (convertoare analog-digitale - iau intrarea analogică și le digitalizează pentru citirea și stocarea datelor pe computer) pur și simplu nu pot detecta modificări atât de mici. De exemplu, ADC-ul Arduino Uno este în mod specific un ADC de 10 biți cu ieșire de 5V, ceea ce înseamnă că mapează tensiuni de intrare 0-5V (valorile din interval vor fi „feroviare”, ceea ce înseamnă că valorile mai mici vor fi citite ca 0V și valorile superioare citite ca 5V) la valori între 0 și 1023. 10mV este atât de mic în acea gamă de 5V, deci dacă puteți amplifica semnalul la gama completă de 5V, modificările mici vor fi mai ușor de detectat deoarece vor fi reflectate de modificări cantitative mai mari (5mV se schimbă la 10mV spre deosebire de 2V se schimbă la 4V). Gândiți-vă la ea ca la o imagine minusculă pe computer: detaliile ar putea fi perfect definite de pixelii dvs., dar nu veți putea diferenția formele decât dacă extindeți imaginea.

    Rețineți că este mai bine să aveți mai mulți biți pentru ADC, deoarece puteți reduce la minimum zgomotul de cuantificare de la transformarea semnalului continuu la valori discrete, digitalizate. Pentru a calcula câți biți aveți nevoie pentru păstrarea SNR de ~ 96%, utilizați N = SNR (în dB) / 6 ca regulă generală. Totuși, doriți să vă păstrați portofelul în minte: dacă doriți mai mulți biți, trebuie să fiți dispus să vindeți mai mulți bani

  • Zgomotul și interferențele (zgomot = artefacte aleatorii care vă fac semnalele zimțate în loc de netede vs interferențe = non-aleatorii, artefacte sinusoidale de la semnale adiacente din unde radio etc.) afectează toate semnalele măsurate din viața de zi cu zi.

    • Cea mai faimoasă este interferența de 60Hz (50Hz dacă sunteți în Europa și niciuna în Rusia, deoarece utilizează curent continuu spre deosebire de curent alternativ pentru priză …), care se numește frecvență de utilitate din câmpurile electromagnetice de curent alternativ ale prizelor. Liniile electrice transportă tensiune înaltă alternativă de la generatoarele electrice la zonele rezidențiale, unde transformatoarele reduc tensiunea la standardul de ~ 120V în prizele americane. Tensiunea alternativă duce la această baie constantă de interferență de 60Hz în împrejurimile noastre, care interferează cu toate tipurile de semnale și trebuie filtrată.
    • Interferența de 60Hz este denumită în mod obișnuit interferență în modul comun, deoarece apare în ambele intrări (+ și -) la amplificatori op. Acum, amplificatoarele de operare au ceva numit raportul de respingere a modului comun (CMRR) pentru a reduce artefactele modului comun, dar (corectează-mă dacă greșesc!) Acest lucru este în principal bun pentru zgomotele în modul obișnuit (aleatoriu: zgomot în loc de non-aleatoriu: interferență). Pentru a scăpa de 60Hz, filtrele de bandstop pot fi folosite pentru a-l elimina selectiv din spectrul de frecvență, dar riscați, de asemenea, să eliminați datele reale. În cel mai bun caz, puteți utiliza un filtru trece jos pentru a păstra doar o gamă de frecvențe mai mică de 60Hz, astfel încât tot ce are frecvențe mai mari este filtrat. Asta am făcut pentru EOG: lățimea de bandă așteptată a semnalului meu a fost de 0-10Hz (neglijând mișcările rapide ale ochilor - nu am vrut să mă ocup de el în versiunea noastră simplificată), așa că am eliminat frecvențe mai mari de 10Hz cu un filtru low-pass.

      • 60Hz ne pot corupe semnalele prin cuplare capacitivă și cuplare inductivă. Cuplarea capacitivă (citiți aici condensatoarele) are loc atunci când aerul acționează ca dielectric pentru semnalele de curent alternativ care trebuie efectuate între circuitele adiacente. Cuplarea inductivă provine din legea lui Faraday pe măsură ce rulați curent într-un câmp magnetic. Există o mulțime de trucuri pentru a depăși cuplarea: puteți folosi un scut împământat ca un fel de cușcă Faraday, de exemplu. Răsucirea / împletirea firelor atunci când este posibil scade suprafața disponibilă pentru a interfera cuplajul inductiv. Scurtarea firelor și reducerea dimensiunii generale a circuitului dvs. au, de asemenea, același efect din același motiv. Bazându-vă pe puterea bateriei pentru șinele amplificatorului op, spre deosebire de conectarea la o priză, vă ajută, de asemenea, deoarece bateriile furnizează o sursă de curent continuu fără oscilație sinusoidală. Citiți mai multe aici!
      • De asemenea, filtrele de trecere joasă scapă de mult zgomot, deoarece zgomotul aleatoriu este reprezentat de frecvențe înalte. O mulțime de zgomote sunt zgomotul alb, ceea ce înseamnă că zgomotul este prezent pentru toate frecvențele, astfel încât limitarea lățimii de bandă a semnalului cât mai mult posibil ajută la limitarea cantității din acel zgomot prezent în semnal.

        Unele filtre de trecere joasă sunt numite filtre anti-aliasing, deoarece acestea împiedică aliasing-ul: atunci când sinusoidele sunt sub eșantionate, pot fi detectate cu o frecvență diferită de cele de fapt. Trebuie să vă amintiți întotdeauna să urmați teorema de eșantionare a lui Nyquist (semnalele de eșantionare la o frecvență de 2x mai mare: aveți nevoie de o frecvență de eșantionare> 2Hz pentru o undă sinusoidală de 1Hz, etc.). În acest caz EOG, nu a trebuit să-mi fac griji în legătură cu Nyquist, deoarece semnalul meu era de așteptat să fie în principal în intervalul 10Hz, iar eșantioanele mele Arduino ADC la 10 kHz - mai mult decât suficient de rapid pentru a prinde totul

    • Există, de asemenea, mici trucuri pentru a scăpa de zgomot. Una este să folosiți o masă stelară, astfel încât toate părțile circuitelor dvs. să aibă exact aceeași referință. În caz contrar, ceea ce o parte numește „masă” poate diferi de o altă parte datorită rezistenței ușoare a firelor, care se adaugă în neconcordanțe. Lipirea pe protoboard în loc de lipirea cu panouri de reducere reduce, de asemenea, ceva zgomot și creează conexiuni sigure în care puteți avea încredere, spre deosebire de inserarea prin apăsare.

Există o mulțime de alte modalități de a suprima zgomotul și interferențele (vezi aici și aici), dar poți lua o cursă despre asta sau Google pentru mai multe informații: să trecem la circuitul real!

Pasul 4: Cum funcționează circuitul

Cum funcționează circuitul
Cum funcționează circuitul

Nu vă lăsați intimidați de schema circuitului: iată o defalcare aproximativă a modului în care funcționează totul: (consultați înapoi pasul anterior pentru câteva explicații)

  • În extrema stângă avem electrozii. Unul este atașat pe tâmpla stângă, altul pe tâmpla dreaptă, iar al treilea electrod este împământat pe frunte. Această împământare stabilizează semnalul, astfel încât există mai puțină derivare și, de asemenea, scapă de o parte din interferența de 60Hz.
  • Următorul este amplificatorul de instrumentație. Mergeți înapoi cu doi pași pentru o explicație a ceea ce face pentru a genera diferența de tensiune. Ecuația pentru schimbarea câștigului amplificatorului este la pagina 7 a fișei tehnice [G = 1+ (50kOhm / Rg) unde Rg este conectat pe pinii 1 și 8 ai amplificatorului]. Pentru circuitul meu, m-am adaptat la un câștig de 500 folosind Rg = 100Ohm.
  • După ce amplificatorul de instrumentare produce diferența de tensiune amplificată de 500x, există un filtru trece jos de ordinul întâi, care constă dintr-un rezistor R_filter și condensator C_filter. Filtrul de trecere jos previne anti-aliasing (nu este o preocupare pentru mine, deși, deși Nyquist, trebuie să probez cel puțin 20Hz pentru o lățime de bandă de 10Hz, iar probele Arduino ADC la 10 kHz - mai mult decât suficient) și, de asemenea, elimină zgomotul la toate frecvențele de care nu am nevoie. Sistemul RC funcționează deoarece condensatorii permit frecvențe înalte prin ușurință, dar obstrucționează frecvențe mai mici (impedanță Z = 1 / (2 * pi * f)), iar crearea unui divizor de tensiune cu tensiunea pe condensator rezultă într-un filtru care permite doar frecvențe mai mici prin [limita pentru intensitatea 3dB este guvernată de formula f_c = 1 / (2 * pi * RC)]. Am ajustat valorile R și C ale filtrului pentru a întrerupe semnalele mai mari de ~ 10Hz, deoarece semnalul biologic pentru EOG este de așteptat în acest interval. Inițial am întrerupt după 20Hz, dar după experimentare 10Hz a funcționat la fel de bine, așa că am mers cu lățimea de bandă mai mică (lățimea de bandă mai mică este mai bine să decupez orice lucru inutil, pentru orice eventualitate).
  • Cu acest semnal filtrat, am măsurat ieșirea cu un osciloscop pentru a vedea gama mea de valori de la stânga și dreapta (cele două extreme ale gamei mele). Asta m-a dus la aproximativ 2-4V (deoarece câștigul amplificatorului de instrumentare a fost de 500x pentru o gamă de ~ 4-8mV), când ținta mea este de 5V (gama completă a Arduino ADC). Această gamă a variat foarte mult (în funcție de cât de bine persoana a spălat pielea în prealabil, etc), așa că nu am vrut să câștig atât de mult cu al doilea amplificator fără inversare. Am ajuns să-l reglez pentru a avea un câștig de numai aproximativ 1,3 (reglați R1 și R2 în circuit deoarece câștigul amplificatorului = 1 + R2 / R1). Va trebui să vă propuneți propria ieșire și să vă ajustați de acolo, astfel încât să nu depășiți 5V! Nu folosiți doar valorile rezistenței mele.
  • Acest semnal poate fi introdus acum în pinul analogic Arduino pentru citire DAR Arduino ADC nu acceptă intrări negative! Va trebui să schimbați semnalul în sus, astfel încât intervalul să fie de 0-5V, spre deosebire de -2,5V la 2,5V. O modalitate de a remedia acest lucru este de a atașa solul plăcii de circuite la pinul de 3,3 V al Arduino: acest lucru vă schimbă semnalul cu 3,3 V (mai mult de 2,5 V optim, dar funcționează). Gama mea a fost foarte ciudată, așa că am proiectat o tensiune de offset variabilă: în acest fel, aș putea roti potențiometrul pentru a centra gama la 0-5V. Este în esență un divizor de tensiune variabilă care folosește șinele de alimentare +/- 9V, astfel încât să pot atașa masa la circuit la orice valoare de la -9 la 9V și astfel să-mi schimb semnalul în sus sau în jos de 9V.

Pasul 5: Alegerea componentelor și a valorilor

Alegerea componentelor și valorilor
Alegerea componentelor și valorilor

Cu circuitul explicat, cum alegem care dintre ele (electrod, amplificator op) să folosim?

  • Ca senzor, electrozii cu gel solid au impedanță de intrare ridicată și impedanță de ieșire scăzută: ceea ce înseamnă în esență că curentul poate trece cu ușurință în aval către restul circuitului (impedanță de ieșire redusă), dar ar avea probleme să treacă în amonte înapoi la tâmple (impedanță mare de intrare). Acest lucru împiedică utilizatorul să fie rănit de curenți sau tensiuni mari în restul circuitului; de fapt, multe sisteme au ceva numit rezistor de protecție a pacientului pentru protecție suplimentară, pentru orice eventualitate.

    • Există multe tipuri diferite de electrozi. Majoritatea oamenilor sugerează electrozi cu gel solid Ag / AgCl pentru utilizare în aplicații EKG / EOG / etc. Având în vedere acest lucru, trebuie să căutați rezistența sursei acestor electrozi (mergeți cu doi pași înapoi pentru notele mele despre impedanța pielii) și să o potriviți cu rezistența la zgomot (tensiunea de zgomot în V / sqrt (Hz) împărțită la curentul de zgomot în A / sqrt (Hz) - vezi fișele tehnice ale amplificatoarelor op) ale amplificatoarelor op. Aceasta se numește potrivirea zgomotului și explicațiile de ce potrivirea rezistenței sursei Rs cu rezistența la zgomot funcționează Rn pot fi găsite online ca aici. Pentru INA111 pe care l-am ales, Rn poate fi calculat folosind tensiunea de zgomot și curentul de zgomot din foaia de date (captură de ecran de mai sus).

      • Există o mulțime de articole care evaluează performanța electrodului și niciun electrod nu este cel mai bun în toate scopurile: încercați aici, de exemplu. Impedanța se modifică, de asemenea, pentru diferite lățimi de bandă, astfel cum se reflectă în fișele de date ale amplificatorului operațional (unele foi de date vor avea curbe sau tabele la frecvențe diferite). Faceți cercetările, dar nu uitați să vă țineți cont de portofel. Este plăcut să știți ce electrozi / amplificatori op sunt cei mai buni, dar nu are rost dacă nu vă puteți permite. Veți avea nevoie de ~ 50 de electrozi cel puțin pentru testare, nu doar 3 pentru o singură utilizare.

        • Pentru potrivirea optimă a zgomotului, nu numai că Rn ~ = Rs: de asemenea, doriți ca tensiunea de zgomot * curentul de zgomot (Pn) să fie cât mai mic posibil. Acest lucru este considerat mai important decât realizarea Rn ~ = R, deoarece puteți regla Rs și Rn folosind transformatoare, dacă este necesar.

          Avertismente cu transformatoare (corectează-mă dacă greșesc): pot fi oarecum voluminoase și, prin urmare, nu sunt optime pentru dispozitivele care trebuie să fie mici. De asemenea, acumulează căldură, astfel încât sunt necesare chiuvete sau o ventilație excelentă

        • Zgomotul se potrivește numai cu primul dvs. amplificator inițial; al doilea amplificator nu afectează la fel de mult, așa că orice amplificator de operare va avea efect.

Pasul 6: Construirea circuitului

Construirea circuitului
Construirea circuitului
Construirea circuitului
Construirea circuitului
Construirea circuitului
Construirea circuitului

Utilizați diagrama fritzing de mai sus pentru a construi circuitul (a doua copie prezintă la ce se referă fiecare parte din diagrama circuitului de la pasul anterior). Dacă aveți nevoie de ajutor pentru identificarea LED-urilor din diagramă, utilizați acest calculator de cod de culoare al rezistorului, dar Rg-ul amplificatorului de instrumentare este 100Ohm, R_filterul este 1,5MOhm, C_filterul este 0,1uF, R1 al amplificatorului fără inversare este 10kOhm, R2 este 33kOhm, iar rezistența pentru potențiometru este 1kOhm (potențiometrul variază de la 0 la 20kOhm). Nu uitați să vă schimbați valorile rezistenței după cum este necesar pentru a regla câștigurile!

Editare: există o eroare în porțiunea offset a solului. Ștergeți firul negru din stânga. Rezistența trebuie conectată cu firul roșu la șina de alimentare așa cum se arată, dar și la al doilea pin, nu mai întâi, al potențiometrului. Primul pin al potențiometrului ar trebui să fie conectat la pinul de 5V al Arduino. Sârmă portocalie, care este masa offset, ar trebui conectată la al doilea pin, nu la primul.

Am discutat mult despre terenul offset. În diagramă puteți vedea că solul Arduino este afișat ca fiind conectat la solul panoului. Asta este în scenariul în care nu este nevoie să vă schimbați terenul. Dacă semnalul dvs. este în afara razei de acțiune și trebuie să vă schimbați solul, încercați mai întâi să conectați masa Arduino la pinul de 3,3 V al Arduino și să vizualizați semnalul. În caz contrar, încercați să conectați firul portocaliu în potențiometrul configurat (masă offset) la pinul GND al Arduino.

NOTĂ DE SIGURANȚĂ: NU păstrați bateriile înăuntru când lipiți și NU NU puneți sau lipiți bateriile pe spate. Circuitul dvs. va începe să fumeze, condensatorii vor sufla și placa de pană ar putea fi deteriorată. De regulă, utilizați bateriile numai atunci când doriți să utilizați circuitul; în caz contrar, scoateți-le (adăugarea unui comutator cu clapetă pentru a deconecta cu ușurință bateriile ar fi și o idee bună).

Rețineți că ar trebui să construiți circuitul bucată cu bucată (verificați fiecare treaptă!) Și pe o placă înainte de a lipi la o protoboardă. Prima etapă de verificat este amplificatorul de instrumentație: atașați toate șinele (lipire în suporturile bateriei), Rg, etc. și utilizați un osciloscop pe pinul de ieșire. Pentru început, utilizați un generator de funcții cu o undă sinusoidală de 1Hz cu amplitudine de 5mV (sau cel mai scăzut nivel al generatorului). Aceasta este doar pentru a verifica dacă amplificatorul de instrumentație funcționează corect și Rg-ul dvs. vă oferă câștigul țintă.

Apoi, verificați filtrul de trecere jos. Adăugați acea porțiune a circuitului și verificați forma de undă: ar trebui să arate exact la fel, dar mai puțin zgomot (zimțat - vezi ultimele două imagini de mai sus). Să analizăm ieșirea finală cu un osciloscop cu electrozi în loc de un generator de funcții acum …

Pasul 7: Testarea circuitului cu un om

Circuit de testare cu un om
Circuit de testare cu un om
Circuit de testare cu un om
Circuit de testare cu un om
Circuit de testare cu un om
Circuit de testare cu un om

Din nou, puneți electrozi la tâmplele stânga și dreapta și atașați un fir de împământare la un electrod de pe frunte. Abia după aceea trebuie să adăugați baterii - dacă apare furnicături, îndepărtați IMEDIAT și verificați conexiunile !!! Acum verificați gama de valori atunci când priviți la stânga față la dreapta și reglați R1 / R2 al amplificatorului fără inversare, așa cum am explicat acum doi pași - amintiți-vă că ținta este un interval de 5V! Vedeți imaginile de mai sus pentru note despre ce trebuie să aveți în vedere.

Când sunteți mulțumit de toate valorile rezistenței, lipiți totul la o protoboardă. Lipirea nu este strict necesară, dar oferă mai multă stabilitate față de îmbinările simple de presare și elimină incertitudinea circuitului care nu funcționează pur și simplu pentru că nu le-ați apăsat suficient de tare într-o placă.

Pasul 8: Cod Arduino

Toate codurile atașate în partea de jos a acestui pas!

Acum, că aveți o gamă de 5V, trebuie să vă asigurați că se încadrează în intervalul 0-5V în loc de -1V la 4V etc. Fie atașați masă la pinul de 3,3V al Arduino sau atașați tensiunea de împământare offset (fir portocaliu deasupra) la șina de la sol și apoi conectați un fir de la șina de la sol la pinul GND al Arduino (aceasta este pentru a muta semnalul în sus sau în jos, astfel încât să vă încadrați în intervalul 0-5V). Va trebui să vă jucați: nu uitați să vă extindeți rezultatele ori de câte ori sunteți incert!

Acum, pentru calibrare: doriți ca lumina să schimbe culorile pentru diferite poziții ale ochilor (arătând la stânga vs. nu la extrem de stânga..). Pentru aceasta aveți nevoie de valori și intervale: rulați EOG-calibration-numbers.ino la Arduino cu totul conectat corect (terminați conexiunile la Arduino și neopixel conform schemei mele fritzing). Nu este foarte necesar, dar rulați și codul bioe.py pe care îl am - acesta va afișa un fișier text pe desktop, astfel încât să puteți înregistra toate valorile pe măsură ce arătați la stânga sau la dreapta (codul python a fost adaptat din acest exemplu). Cum am făcut acest lucru a fost să mă uit la stânga pentru 8 bătăi, apoi la dreapta, apoi în sus, apoi în jos și repetați pentru a face media mai târziu (consultați output_2.pdf pentru un jurnal pe care l-am păstrat). Apăsați ctrl + C pentru a forța ieșirea când sunteți mulțumit. Folosind aceste valori, puteți regla intervalele animațiilor din codul meu BioE101_EOG-neopixel.ino. Pentru mine, am avut o animație curcubeu când m-am uitat drept înainte, albastru pentru stânga, verde pentru stânga ușoară, violet pentru dreapta ușoară și roșu pentru extrema dreaptă.

Pasul 9: Pași viitori

Voila; ceva ce poți controla doar cu ochii. Există multe lucruri de optimizat înainte de a putea ajunge la un spital, dar asta este pentru o altă zi: conceptele de bază sunt cel puțin mai ușor de înțeles acum. Un lucru pe care aș vrea să mă întorc și să-l schimb este să-mi reglez câștigul la 500 pentru amplificatorul de instrumentație: uitându-mă înapoi, probabil că a fost prea mult pentru că semnalul meu ulterior era deja de 2-4V și mi-a fost greu să folosesc non-inversarea amplificator pentru a-mi regla perfect gama …

Este greu să obții consistență, deoarece semnalul se schimbă atât de mult pentru diferite condiții:

  • persoană diferită
  • condiții de iluminare
  • pregătirea pielii (geluri, spălare etc.)

dar chiar și așa, sunt destul de mulțumit de dovada mea finală de performanță video (luată la 3 dimineața, pentru că atunci totul începe să funcționeze în mod magic).

Știu că o mulțime din acest tutorial poate părea confuz (da, și curba de învățare a fost dificilă pentru mine), așa că vă rog să nu ezitați să puneți întrebări mai jos și voi face tot posibilul să răspund. Bucurați-vă!

Provocare de neatins
Provocare de neatins
Provocare de neatins
Provocare de neatins

Locul doi în Provocarea de neatins

Recomandat: