Kazalo:

Upravljanje luči z očmi: 9 korakov (s slikami)
Upravljanje luči z očmi: 9 korakov (s slikami)

Video: Upravljanje luči z očmi: 9 korakov (s slikami)

Video: Upravljanje luči z očmi: 9 korakov (s slikami)
Video: Цигун для начинающих. Для суставов, позвоночника и восстановления энергии. 2024, November
Anonim
Upravljanje luči z očmi
Upravljanje luči z očmi
Upravljanje luči z očmi
Upravljanje luči z očmi

Ta semester na fakulteti sem opravil tečaj Instrumentation in Biomedicine, kjer sem se naučil osnov obdelave signalov za medicinske aplikacije. Za zaključni projekt razreda je moja ekipa delala na tehnologiji EOG (elektrookulografija). V bistvu elektrode, pritrjene na nečije templje, pošiljajo razliko napetosti (na osnovi korneo-retinalnega dipola) v vezje, namenjeno filtriranju in ojačanju signala. Signal se dovaja v ADC (analogno-digitalni pretvornik-v mojem primeru ADC Arduino Uno) in se uporablja za spreminjanje barv neopikselnega dragulja.

Ta vadnica je zame način, da zabeležim, kar sem se naučil, in tudi z rednim bralcem delim, kako so signali ločeni od človeškega telesa (zato bodite pozorni: polno je dodatnih podrobnosti!). To vezje je mogoče z nekaj manjšimi spremembami dejansko uporabiti za električne impulze srčnih motorjev kot valovno obliko EKG in še veliko več! Čeprav zagotovo ni tako napreden in izpopolnjen kot stroji, ki bi jih našli v bolnišnici, je ta svetilka z nadzorom položaja oči odlična za začetno razumevanje in vpogled.

Opomba: Nisem strokovnjak za obdelavo signalov, zato mi v primeru napak ali predlogov za izboljšave sporočite! Še veliko se moram naučiti, zato so komentarji cenjeni. Poleg tega mnogi prispevki, na katere se sklicujem v povezavah v tej vadnici, zahtevajo akademski dostop do moje univerze; vnaprej se opravičujem tistim, ki nimajo dostopa.

1. korak: Materiali

  • protoboard
  • upori (100, 1k, 10k, 33k, 1M + 0,5M)
  • kondenzator (0,1uF)
  • instrumentacijski ojačevalnik (INA111 v mojem primeru, vendar obstaja par, ki bi moral delovati relativno dobro)
  • op amp (kateri koli - slučajno sem imel LM324N)
  • neopixel (vse deluje, vendar sem uporabil dragulj)
  • 9V baterije x2
  • 9V glave akumulatorja x2
  • elektrode s trdnim gelom (izbira elektrod je obravnavana v 5. koraku)
  • potenciometer
  • izolirana žica
  • odstranjevalci žice
  • spajkalnik + spajkanje
  • sponke iz aligatorja (s pritrjenimi žicami - po potrebi jih spajkajte)
  • vroče lepilo (za stabilizacijo žic, ki bi bile upognjene naprej in nazaj)
  • Arduino (skoraj vse deluje, vendar sem uporabil Arduino Uno)

VELIKO PRIPOROČAMO: osciloskop, multimeter in funkcijski generator. Preizkusite svoje izhode in se ne zanašajte samo na vrednosti upora!

2. korak: Psihološko ozadje in potreba po vezju

Psihološko ozadje in potreba po vezju
Psihološko ozadje in potreba po vezju

Hitra zavrnitev odgovornosti: nikakor nisem zdravstveni strokovnjak na tem področju, vendar sem spodaj sestavil in poenostavil, kar sem se naučil v razredu/od Googla, s povezavami za nadaljnje branje, če želite. Prav tako je ta povezava daleč najboljši pregled teme, ki sem jo našel - vključuje alternativne tehnike.

EOG (elektro-okulografija) deluje na korneo-retinalnem dipolu. Roženica (prednji del očesa) je rahlo pozitivno nabita, mrežnica (zadnji del očesa) pa rahlo negativno nabita. Ko na templje nanesete elektrode in ozemljite vezje na čelo (pomaga stabilizirati odčitke in se znebiti nekaterih 60Hz motenj), lahko izmerite približno ~ 1-10mV razlike napetosti za vodoravna gibanja oči (glejte zgornjo sliko). Za navpično gibanje oči namesto tega namestite elektrode nad in pod očesom. Oglejte si ta članek za dobro branje o tem, kako telo komunicira z elektriko - odlične informacije o impedanci kože itd. EOG se običajno uporabljajo za diagnosticiranje oftalmoloških bolezni, kot so katarakta, refrakcijske napake ali makularna degeneracija. Obstajajo tudi aplikacije v robotiki z nadzorom oči, v kateri je mogoče preproste naloge opraviti s potego.. oči.

Za branje teh signalov, to je izračun napetostne razlike med elektrodami, v svoje vezje vključimo pomemben čip, imenovan instrumentacijski ojačevalnik. Ta instrumentni ojačevalnik je sestavljen iz sledilnikov napetosti, neinvertirajočega ojačevalnika in diferencialnega ojačevalnika. Če o op ojačevalnikih ne veste veliko, preberite to za hitri tečaj - v bistvu vzamejo vhodno napetost, jo lestvico in iz nje izpeljejo nastalo napetost z uporabo svojih tirnic. Integracija vseh uporov med posameznimi stopnjami pomaga pri tolerančnih napakah: običajno imajo upori vrednosti 5-10% toleranc, običajno vezje (ki ni v celoti integrirano v instrumentacijski ojačevalnik) pa bi se za dobro CMMR močno oprlo na natančnost (glej naslednji korak). Sledilniki napetosti so za visoko vhodno impedanco (obravnavano v zgornjem odstavku - najpomembnejše za preprečevanje škode pacientu), neinvertirni ojačevalnik mora zagotoviti visoko ojačanje signala (več o ojačitvi v naslednjem koraku), diferenčni ojačevalnik pa upošteva razliko med vhodi (odšteje vrednosti od elektrod). Ti so zasnovani tako, da uničijo čim več hrupa/motenj v običajnem načinu (za več informacij o obdelavi signala glejte naslednji korak) za biomedicinske signale, ki so polni tujih artefaktov.

Elektrode se soočajo z neko impedanco kože, saj tkiva in maščobe vaše kože ovirajo neposredno merjenje napetosti, kar vodi v potrebo po ojačanju in filtriranju signala. Tukaj, tukaj in tukaj je nekaj člankov, v katerih so raziskovalci poskušali količinsko opredeliti to impedanco. Ta fiziološka količina se običajno modelira kot upor 51 kOhm vzporedno s 47nF kondenzatorjem, čeprav obstaja veliko različic in kombinacij. Koža na različnih lokacijah ima lahko različne impedance, zlasti če upoštevate različne debeline in količine sosednjih mišic. Impedanca se spreminja tudi glede na to, kako dobro je vaša koža pripravljena na elektrode: na splošno je priporočljivo temeljito čiščenje z milom in vodo, da zagotovite odlično oprijemljivost in konsistenco, če želite resnično popolnost, pa obstajajo celo posebni geli za elektrode. Ključna opomba je, da se impedanca spreminja s frekvenco (značilnost kondenzatorjev), zato morate poznati napoved pasovne širine signala, da lahko napovedujete impedanco. In ja, ocena impedance je pomembna za ujemanje hrupa - za več informacij o tem glejte naslednji korak.

3. korak: Obdelava signala: zakaj in kako?

Obdelava signala: zakaj in kako?
Obdelava signala: zakaj in kako?

Zakaj ne morete preprosto uporabiti napetostne razlike 1-10mV kot takojšnji izhod za krmiljenje LED? No, obstaja veliko razlogov za filtriranje in ojačanje signalov:

  • Mnogi ADC-ji (analogno-digitalni pretvorniki-vzemite analogni vhod in jih digitalizirajte za branje in shranjevanje podatkov v računalniku) preprosto ne zaznajo tako majhnih sprememb. Na primer, ADC Arduino Uno je posebej 10-bitni ADC z izhodom 5V, kar pomeni, da preslika vhodne napetosti 0-5V (vrednosti izven območja se bodo "raztezale", kar pomeni, da se bodo nižje vrednosti brale kot 0V, višje vrednosti pa bodo brane kot 5V) na celoštevilske vrednosti med 0 in 1023. 10mV je v tem območju 5V tako majhno, da lahko, če lahko svoj signal okrepite v celotno območje 5V, majhne spremembe lažje zaznate, ker se bodo odražale z večjimi količinskimi spremembami (5mV spremenite na 10mV v nasprotju z 2V spremembo na 4V). Zamislite si to kot majhno sliko v računalniku: podrobnosti so lahko popolnoma določene s slikovnimi pikami, vendar oblik ne boste mogli razlikovati, če slike ne razširite.

    Upoštevajte, da je za ADC bolje imeti več bitov, saj lahko kvantizacijski hrup zmanjšate tako, da neprekinjeni signal spremenite v diskretne, digitalizirane vrednosti. Če želite izračunati, koliko bitov potrebujete za ~ 96% ohranjanje vhodnega SNR, uporabite N = SNR (v dB)/6 kot pravilo. Ne pozabite pa tudi na svojo denarnico: če želite več kosov, morate biti pripravljeni dati več denarja

  • Hrup in motnje (šum = naključni artefakti, zaradi katerih so vaši signali neravni, namesto gladkih vs motnje = naključni, sinusni artefakti iz sosednjih signalov radijskih valov itd.) Pestijo vse signale, merjene iz vsakdanjega življenja.

    • Najbolj znana je 60 Hz motenj (50 Hz, če ste v Evropi in nobene v Rusiji, ker za vtičnico uporabljajo enosmerni tok, v nasprotju z izmeničnim …), ki se imenuje komunalna frekvenca iz elektromagnetnih polj električnih vtičnic. Daljnovodi prenašajo visokonapetostno izmenično napetost od električnih generatorjev do stanovanjskih območij, kjer transformatorji znižajo napetost na standardnih ~ 120V v ameriških vtičnicah. Izmenična napetost vodi v to konstantno kopel 60 Hz motenj v naši okolici, ki moti vse vrste signalov in jo je treba filtrirati.
    • 60 Hz motnje se običajno imenujejo motnje v skupnem načinu, ker se pojavljajo na obeh vhodih (+ in -) op ojačevalnikov. Zdaj imajo operacijski ojačevalci nekaj, kar se imenuje razmerje zavrnitve skupnega načina (CMRR) za zmanjšanje artefaktov v skupnem načinu, vendar (popravi me, če se motim!) Je to dobro predvsem za šume v običajnem načinu (naključno: šum namesto nenaključnih: motnje). Če se želite znebiti 60Hz, lahko uporabite filtre za zaustavitev pasov, da jih selektivno odstranite iz frekvenčnega spektra, potem pa tvegate tudi odstranitev dejanskih podatkov. V najboljšem primeru lahko uporabite nizkoprepustni filter, da ohranite le frekvenčni razpon, nižji od 60 Hz, tako da se filtrira vse z višjimi frekvencami. To sem naredil za EOG: pričakovana pasovna širina mojega signala je bila 0-10Hz (zanemarjanje hitrih gibov oči-v naši poenostavljeni različici se tega nisem hotel ukvarjati), zato sem z nizkoprepustnim filtrom odstranil frekvence večje od 10Hz.

      • 60Hz lahko poškoduje naše signale prek kapacitivne in induktivne sklopke. Kapacitivna sklopka (preberite tukaj o kondenzatorjih) se pojavi, ko zrak deluje kot dielektrik za izmenične signale, ki se izvajajo med sosednjimi vezji. Induktivna sklopka izhaja iz Faradayjevega zakona, ko teče tok v magnetnem polju. Obstaja veliko trikov za premagovanje spenjanja: lahko uporabite ozemljen ščit kot nekakšno Faradayjevo kletko, na primer. Zvijanje/pletenje žic, kadar je to mogoče, zmanjša površino, ki je na voljo za motenje induktivne sklopke. Skrajšanje žic in zmanjšanje celotne velikosti vašega vezja imata enak učinek iz istega razloga. Zanašanje na moč akumulatorja za op ojačevalne tirnice in ne na priključitev na električno vtičnico pomaga tudi zato, ker baterije zagotavljajo enosmerni vir brez sinusnega nihanja. Preberite veliko več tukaj!
      • Nizkoprepustni filtri se znebijo tudi veliko hrupa, saj so naključni šumi predstavljeni z visokimi frekvencami. Veliko šumov je beli šum, kar pomeni, da je hrup prisoten na vseh frekvencah, zato omejevanje pasovne širine vašega signala v največji možni meri pomaga pri omejevanju količine tega šuma v vašem signalu.

        Nekateri nizkoprepustni filtri se imenujejo filtri proti uravnavanju, ker preprečujejo vzdevke: ko so sinusoidi premalo vzorčeni, jih je mogoče zaznati kot drugačno frekvenco, kot so v resnici. Vedno se spomnite, da sledite Nyquistovemu izreku o vzorčenju (vzorčni signali pri 2x višji frekvenci: potrebujete frekvenco vzorčenja> 2Hz za pričakovani 1Hz sinusni val itd.). V tem primeru EOG mi ni bilo treba skrbeti za Nyquist, ker je bil moj signal v glavnem v območju 10Hz, moji vzorci Arduino ADC pri 10 kHz - več kot dovolj hitri, da vse ujamem

    • Obstajajo tudi majhni triki, kako se znebiti hrupa. Eden je, da uporabite zvezdno ozemljitev, tako da imajo vsi deli vaših vezij enako referenco. V nasprotnem primeru se lahko tisto, kar en del imenuje "ozemljitev", razlikuje od drugega zaradi rahlega upora v žicah, kar se povečuje v nedoslednosti. Spajkanje na protoboard, namesto da bi se držali ploščic, prav tako zmanjša nekaj hrupa in ustvari varne povezave, ki jim lahko zaupate v nasprotju z vstavljanjem po pritisku.

Obstaja veliko drugih načinov za zatiranje hrupa in motenj (glejte tukaj in tukaj), vendar se lahko za več informacij udeležite tečaja ali Googla: pojdimo na dejansko vezje!

4. korak: Kako deluje vezje

Kako deluje vezje
Kako deluje vezje

Naj vas shema vezja ne ustraši: tukaj je groba razčlenitev, kako vse deluje: (za nekaj razlag glejte tudi prejšnji korak)

  • Skrajno levo imamo elektrode. Ena je pritrjena na levi tempelj, druga na desni, tretja elektroda pa je ozemljena na čelo. Ta ozemljitev stabilizira signal, zato je manjše drsenje in se znebi tudi nekaterih 60Hz motenj.
  • Naslednji je instrumentni ojačevalnik. Vrnite se dva koraka nazaj za razlago, kaj počne za ustvarjanje razlike napetosti. Enačba za spreminjanje ojačanja ojačevalnika je na strani 7 podatkovnega lista [G = 1+ (50 kOhm/Rg), kjer je Rg priključen na zatiči 1 in 8 ojačevalnika. Za svoje vezje sem se prilagodil na dobiček 500 z uporabo Rg = 100Ohm.
  • Ko instrumentni ojačevalnik odda 500-kratno povečano napetostno razliko, je nizkoprepustni filter RC prvega reda, ki je sestavljen iz upora R_filter in kondenzatorja C_filter. Nizkoprepustni filter preprečuje izravnavo (vendar me ne skrbi, ker moram pri Nyquistu vzorčiti vsaj 20 Hz za pričakovano pasovno širino 10 Hz, vzorce Arduino ADC pri 10 kHz-več kot dovolj) in tudi odstranijo šum na vseh frekvencah, ki jih ne potrebujem. Sistem RC deluje, ker kondenzatorji zlahka omogočajo visoke frekvence, vendar ovirajo nižje frekvence (impedanca Z = 1/(2*pi*f)), ustvarjanje delilnika napetosti z napetostjo na kondenzatorju pa povzroči filter, ki dopušča le nižje frekvence do [mejno vrednost za jakost 3dB ureja formula f_c = 1/(2*pi*RC)]. Vrednosti R in C mojega filtra sem prilagodil tako, da sem odrezal signale, višje od ~ 10Hz, ker se v tem območju pričakuje biološki signal za EOG. Sprva sem prekinil po 20 Hz, po eksperimentiranju pa je 10 Hz delovalo enako dobro, zato sem se odločil za manjšo pasovno širino (manjša pasovna širina je za vsak primer bolje izrezati vse nepotrebno).
  • S tem filtriranim signalom sem izmeril izhod z osciloskopom, da sem videl svoj razpon vrednosti od pogleda levo in desno (dve skrajnosti mojega območja). To me je pripeljalo do približno 2-4V (ker je bil ojačevalnik ojačevalnega instrumenta 500x za območje ~ 4-8mV), ko je moj cilj 5V (celoten razpon Arduino ADC). Ta razpon se je zelo razlikoval (glede na to, kako dobro si je oseba predhodno umila kožo itd.), Zato z drugim neinvertirajočim ojačevalnikom nisem želel imeti toliko dobička. Na koncu sem ga prilagodil tako, da je dobiček le približno 1,3 (prilagodimo R1 in R2 v vezju, ker je ojačanje ojačevalnika = 1+R2/R1). Morali boste razširiti svoj izhod in od tam prilagoditi, da ne boste presegli 5V! Ne uporabljajte samo vrednosti upora.
  • Ta signal se lahko zdaj vnese v analogni pin Arduino za branje, vendar ADC Arduino ne sprejema negativnih vhodov! Signal boste morali premakniti navzgor, tako da bo območje 0-5V v nasprotju z -2.5V do 2.5V. Eden od načinov, da to odpravite, je, da ozemljitev vašega vezja pritrdite na 3,3 V pin Arduina: to premakne vaš signal navzgor za 3,3 V (več kot 2,5 V optimalno, vendar deluje). Moj razpon je bil res neverjeten, zato sem zasnoval spremenljivo napetost odmika: na ta način sem lahko zavrtel potenciometer, da bi območje centriral na 0-5V. To je v bistvu spremenljivi delilnik napetosti z uporabo napajalnih tirnic +/- 9V, tako da lahko pritrdim ozemljitveno vezje na poljubno vrednost od -9 do 9V in tako prestavim signal navzgor ali navzdol za 9V.

5. korak: Izbira komponent in vrednosti

Nabiranje komponent in vrednosti
Nabiranje komponent in vrednosti

Kako bomo s pojasnjenim vezjem izbrali katero (elektrodo, op ojačevalnik) uporabiti?

  • Kot senzor imajo elektrode s trdnim gelom visoko vhodno impedanco in nizko izhodno impedanco: to v bistvu pomeni, da lahko tok zlahka preide navzdol do preostalega tokokroga (nizka izhodna impedanca), vendar bi imel težave pri prehodu nazaj proti vašim templjem (visoka vhodna impedanca). To preprečuje, da bi se uporabnik poškodoval zaradi visokih tokov ali napetosti v preostalem delu vašega vezja; pravzaprav imajo številni sistemi za vsak primer nekaj, kar se imenuje zaščitni upor za bolnike.

    • Obstaja veliko različnih vrst elektrod. Večina ljudi predlaga elektrode iz trdnega gela Ag/AgCl za uporabo v aplikacijah EKG/EOG/itd. Glede na to morate poiskati izvorno odpornost teh elektrod (pojdite dva koraka nazaj za moje opombe o impedanci kože) in jo prilagodite odpornosti proti hrupu (napetost hrupa v V/sqrt (Hz), deljena s hrupnim tokom v A/sqrt (Hz) - oglejte si podatkovne liste op ojačevalnikov) vaših op ojačevalnikov - tako izberete pravi ojačevalnik instrumentov za svojo napravo. To se imenuje ujemanje hrupa, razlage, zakaj ujemanje odpornosti vira R z odpornostjo proti hrupu Rn pa najdete na spletu, kot tukaj. Za moj INA111, ki sem ga izbral, je mogoče Rn izračunati z uporabo napetosti hrupa in toka hrupa na podatkovnem listu (posnetek zaslona zgoraj).

      • Obstaja veliko člankov, ki ocenjujejo delovanje elektrod, in nobena elektroda ni najboljša za vse namene: poskusite na primer tukaj. Impedanca se spreminja tudi za različne pasovne širine, kar se odraža v podatkovnih listih za ojačevalnik (nekateri podatkovni listi imajo krivulje ali tabele na različnih frekvencah). Raziščite, vendar ne pozabite imeti denarnice v mislih. Lepo je vedeti, katere elektrode/op ojačevalniki so najboljši, vendar je neuporabno, če si tega ne morete privoščiti. Za testiranje boste potrebovali vsaj 50 elektrod, ne le 3 za enkratno uporabo.

        • Za optimalno ujemanje hrupa ne samo, da je Rn ~ = Rs: želite tudi, da je napetost hrupa * tok hrupa (Pn) čim nižji. To velja za pomembnejše od izdelave Rn ~ = Rs, ker lahko po potrebi prilagodite Rs in Rn s pomočjo transformatorjev.

          Opozorila s transformatorji (popravite me, če se motim): lahko so nekoliko obsežni in zato niso optimalni za naprave, ki morajo biti majhne. Prav tako ustvarjajo toploto, zato so potrebni hladilniki ali odlično prezračevanje

        • Hrup se ujema samo z vašim prvim začetnim ojačevalnikom; drugi ojačevalnik ne vpliva tako močno, zato bo ustrezal kateri koli op.

6. korak: Izdelava vezja

Gradnja vezja
Gradnja vezja
Gradnja vezja
Gradnja vezja
Gradnja vezja
Gradnja vezja

Za izgradnjo vezja uporabite zgornji diagram fritzinga (druga kopija opisuje, na kaj se vsak del nanaša v shemi vezja iz prejšnjega koraka). Če potrebujete pomoč pri prepoznavanju LED na diagramu, uporabite ta kalkulator barvne kode upora, vendar je Rg ojačevalnika instrumenta 100Ohm, R_filter 1,5MOhm, C_filter 0,1uF, R1 neinvertirajočega ojačevalnika je 10kOhm, R2 je 33kOhm, upor potenciometra pa 1kOhm (potenciometer se spreminja od 0 do 20kOhm). Ne pozabite po potrebi spremeniti vrednosti upora za prilagoditev dobičkov!

Edit: prišlo je do napake v delu offset ground. Izbrišite levo črno žico. Upor je treba z rdečo žico priključiti na napajalno tirnico, kot je prikazano, pa tudi na drugi zatič potenciometra, ne prvi. Prvi zatič potenciometra je treba priključiti na 5V pin Arduina. Oranžno žico, ki je odmaknjena ozemljitev, je treba priključiti na drugi zatič, ne na prvega.

Veliko sem razpravljal o offset terenu. Na diagramu lahko vidite, da je ozemljitev Arduino prikazana kot povezana z maso plošče. To je v scenariju, da vam ni treba premikati. Če je vaš signal izven dosega in morate premakniti ozemljitev, najprej poskusite priključiti ozemljitev Arduino na 3,3 V priključek Arduina in si oglejte signal. V nasprotnem primeru oranžno žico priključite v potenciometru (odmik tal) na pin GND Arduina.

VARNOSTNO OPOZORILO: Pri spajkanju NE držite baterij v notranjosti in NE NE postavljajte ali spajkajte baterij nazaj. Vaše vezje se bo začelo kaditi, kondenzatorji bodo pregoreli in lahko se poškoduje tudi plošča. Splošno pravilo je, da baterije uporabljate le, če želite uporabiti vezje; v nasprotnem primeru jih odstranite (dodajanje preklopnega stikala za enostavno odklop baterij bi bilo tudi dobro).

Upoštevajte, da morate vezje sestaviti kos po kos (preverite vsako stopnjo!) In na plošči, preden ga spajkate na proto ploščo. Prva stopnja, ki jo je treba preveriti, je instrumentni ojačevalnik: pritrdite vse tirnice (spajkajte v držalih za baterije), Rg itd. In uporabite osciloskop na izhodnem zatiču. Za začetek uporabite funkcijski generator z 1Hz sinusnim valom z amplitudo 5mV (ali najnižjo vrednost vašega generatorja). To je samo zato, da preverite, ali instrumentni ojačevalnik deluje pravilno in ali vaš Rg zagotavlja vaš ciljni dobiček.

Nato preverite nizkoprepustni filter. Dodajte ta del vezja in preverite svojo valovno obliko: videti mora popolnoma enako, vendar z manj hrupa (nazobčano - glej zadnji dve sliki zgoraj). Preiskusimo vaš končni rezultat z osciloskopom z elektrodami namesto s funkcijskim generatorjem …

7. korak: Preizkusite vezje s človekom

Preskusno vezje s človekom
Preskusno vezje s človekom
Preskusno vezje s človekom
Preskusno vezje s človekom
Preskusno vezje s človekom
Preskusno vezje s človekom

Ponovno postavite elektrode na levo in desno templje in ozemljitveno žico pritrdite na elektrodo na čelu. Šele potem dodajte baterije - če pride do mravljinčenja, TAKOJ odstranite in dvakrat preverite povezave !!! Zdaj, ko pogledate levo proti desni, preverite svoj obseg vrednosti in prilagodite R1/R2 neinvertirajočega ojačevalnika, kot je bilo razloženo pred dvema korakoma-ne pozabite, da je cilj območje 5V! Oglejte si zgornje slike za opombe, na kaj morate biti pozorni.

Ko ste zadovoljni z vsemi vrednostmi upora, spajkajte vse na protoboard. Spajkanje ni nujno potrebno, vendar zagotavlja večjo stabilnost pri preprostih spojih s stiskalnico in odpravlja negotovost, da vezje ne deluje preprosto zato, ker jih niste dovolj močno pritisnili na ploščo.

8. korak: Arduino koda

Vsa koda je priložena na dnu tega koraka!

Zdaj, ko imate 5 -voltni razpon, se morate prepričati, da pade znotraj 0-5V namesto od -1V do 4V itd. Ali priključite ozemljitev na 3, 3V nožico Arduina ali priključite offset ozemljitveno napetost (oranžna žica zgoraj) na ozemljitveno tirnico in nato priključite žico z ozemljitvene tirnice na pin GND Arduina (to je za premik signala navzgor ali navzdol, tako da padete v območje 0-5V). Morali se boste poigrati: ne pozabite razširiti obsega, kadar je negotovo!

Zdaj za kalibracijo: želite, da svetloba spremeni barve za različne položaje oči (gleda skrajno levo in ne tako levo..). Za to potrebujete vrednosti in obsege: zaženite EOG-calibration-numbers.ino na Arduino z vsem, kar je pravilno priključeno (dokončajte povezave z Arduinom in neopixelom v skladu z mojim diagramom fritzinga). Ni nujno, ampak zaženite tudi kodo bioe.py, ki jo imam - to bo na namizje prikazalo besedilno datoteko, tako da boste lahko zabeležili vse vrednosti, kot gledate levo ali desno (koda python je bila prilagojena iz tega primera). Kako sem to naredil, sem pogledal levo za 8 utripov, nato desno, nato navzgor, nato navzdol in pozneje ponovil za povprečje (glej output_2.pdf za en dnevnik, ki sem ga vodil). Pritisnite ctrl+C, da prisilno zapustite, ko ste zadovoljni. S temi vrednostmi lahko nato prilagodite obseg animacij v moji kodi BioE101_EOG-neopixel.ino. Pri meni sem imel mavrično animacijo, ko sem pogledal naravnost naprej, modro za skrajno levo, zeleno za rahlo levo, vijolično za rahlo desno in rdečo za skrajno desno.

9. korak: Prihodnji koraki

Voila; nekaj, kar lahko nadzorujete samo z očmi. Preden pride v bolnišnico, je treba še veliko optimizirati, a to je za drug dan: osnovne koncepte je zdaj vsaj lažje razumeti. Ena stvar, ki bi se jo rad vrnil in spremenil, je prilagoditev mojega dobička na 500 za ojačevalnik instrumentacije: če pogledam nazaj, je bilo to verjetno preveč, ker je bil moj signal že 2-4V in sem imel težave pri uporabi neinvertirajočega ojačevalnik za popolno prilagoditev mojega dosega …

Težko je doseči doslednost, ker se signal TAKO spremeni za različne pogoje:

  • druga oseba
  • svetlobni pogoji
  • priprava kože (geli, umivanje itd.)

ampak kljub temu sem zelo zadovoljen s svojim zadnjim video dokazom uspešnosti (posnet ob 3h zjutraj, ker takrat vse čarobno začne delovati).

Vem, da se lahko veliko teh vadnic zdi zmedeno (ja, krivulja učenja je bila tudi zame težka), zato vas prosim, da spodaj postavite vprašanja in potrudil se bom odgovoriti. Uživajte!

Nedotakljivi izziv
Nedotakljivi izziv
Nedotakljivi izziv
Nedotakljivi izziv

Drugo mesto na izzivu Nedotakljivi

Priporočena: