Indholdsfortegnelse:

Kontrol af lys med dine øjne: 9 trin (med billeder)
Kontrol af lys med dine øjne: 9 trin (med billeder)

Video: Kontrol af lys med dine øjne: 9 trin (med billeder)

Video: Kontrol af lys med dine øjne: 9 trin (med billeder)
Video: Derfor kan hestehuller være livsfarlige 2024, November
Anonim
Kontrol af lys med dine øjne
Kontrol af lys med dine øjne
Kontrol af lys med dine øjne
Kontrol af lys med dine øjne

Dette semester på college tog jeg en klasse kaldet Instrumentation in Biomedicine, hvor jeg lærte det grundlæggende i signalbehandling til medicinske applikationer. Til klassens afsluttende projekt arbejdede mit team på EOG (elektrookulografi) teknologi. I det væsentlige sender elektroder, der er knyttet til en persons templer, en spændingsforskel (baseret på corneo-retinal dipol) til et kredsløb designet til at filtrere og forstærke signalet. Signalet føres til en ADC (analog-til-digital konverter-i mit tilfælde ADC for en Arduino Uno) og bruges til at ændre farverne på en neopixel juvel.

Denne vejledning er en måde for mig at registrere, hvad jeg har lært, og også dele med den almindelige læser, hvordan signaler isoleres fra menneskekroppen (så advar: den er fuld af ekstra detaljer!). Dette kredsløb kan faktisk bruges med et par mindre ændringer til motorhjerters elektriske impulser som en EKG -kurve og meget mere! Selvom den bestemt ikke er nær så avanceret og perfektioneret som maskiner, du ville finde på et hospital, er denne øjenpositionskontrollerede lampe fantastisk til en første forståelse og et glimt.

Bemærk: Jeg er ingen ekspert i signalbehandling, så lad mig vide det, hvis der er fejl, eller hvis du har forslag til forbedringer. Jeg har stadig meget at lære, så kommentarer er værdsat. Mange af de papirer, jeg refererer til i links i hele denne vejledning, kræver også akademisk adgang, som jeg har høflighed af mit universitet; undskyld på forhånd for dem, der ikke har adgang.

Trin 1: Materialer

  • protoboard
  • modstande (100, 1k, 10k, 33k, 1M + 0,5M)
  • kondensator (0.1uF)
  • instrumenteringsforstærker (INA111 i mit tilfælde, men der er et par, der burde fungere relativt fint)
  • op -forstærker (enhver - jeg havde tilfældigvis en LM324N)
  • neopixel (alle værker, men jeg brugte en juvel)
  • 9V batterier x2
  • 9V batterihoveder x2
  • solide gelelektroder (valg af elektrode diskuteres i trin 5)
  • potentiometer
  • isoleret ledning
  • wire strippere
  • loddejern + lodde
  • krokodilleklip (med ledninger fastgjort - loddet evt. på)
  • varm lim (for at stabilisere ledninger, der ville blive bøjet frem og tilbage)
  • Arduino (stort set bord på ethvert værk, men jeg brugte en Arduino Uno)

ANBEFALES stærkt: oscilloskop, multimeter og funktionsgenerator. Probe dine output frem for bare at stole på mine modstandsværdier!

Trin 2: Fysiologisk baggrund og behovet for et kredsløb

Fysiologisk baggrund og behovet for et kredsløb
Fysiologisk baggrund og behovet for et kredsløb

Hurtig ansvarsfraskrivelse: Jeg er på ingen måde lægeekspert på dette område, men jeg har samlet og forenklet det, jeg har lært i klassen/fraGoogling herunder, med links til yderligere læsning, hvis du vil. Dette link er også langt det bedste overblik over det emne, jeg fandt - inkluderer alternative teknikker.

EOG (elektro-okulografi) virker på corneo-retinal dipol. Hornhinden (forsiden af øjet) er let positivt ladet, og nethinden (bagsiden af øjet) er lidt negativt ladet. Når du anvender elektroder på templerne og jorder dit kredsløb på din pande (hjælper med at stabilisere dine aflæsninger og slipper af med en interferens på 60 Hz), kan du måle omkring ~ 1-10mV spændingsforskelle ved vandrette øjenbevægelser (se billedet ovenfor). Ved lodrette øjenbevægelser skal elektroderne placeres over og under dit øje i stedet. Se denne artikel for at læse godt om, hvordan kroppen interagerer med elektricitet - god information om hudimpedans osv. EOG'er bruges ofte til diagnosticering af oftalmologiske sygdomme som grå stær, brydningsfejl eller makuladegeneration. Der er også applikationer inden for øjenstyret robotik, hvor enkle opgaver kan udføres med et enkelt blik.

For at læse disse signaler, dvs. beregne spændingsforskellen mellem elektroderne, inkorporerer vi en vigtig chip kaldet en instrumentforstærker i vores kredsløb. Denne instrumenteringsforstærker består af spændingsfølge, en ikke-inverterende forstærker og en differentialforstærker. Hvis du ikke ved meget om op -forstærkere, skal du læse dette for et crash -kursus - i det væsentlige tager de en indgangsspænding, skalerer den og afgiver den resulterende spænding ved hjælp af dens strømskinner. Integrationen af alle modstande mellem hvert trin hjælper med tolerancefejl: normalt har modstande 5-10% tolerance i værdier, og det almindelige kredsløb (ikke fuldt integreret i en instrumentforstærker) ville i høj grad stole på nøjagtighed for god CMMR (se næste trin). Spændingsfølgerne er for høj indgangsimpedans (diskuteret i ovenstående afsnit - vigtig for at forhindre skade på patienten), den ikke -inverterende forstærker skal sikre høj forstærkning af signalet (mere om forstærkning i næste trin), og differentialforstærkeren tager forskellen mellem indgangene (trækker værdierne fra elektroderne). Disse er designet til at knuse så meget almindelig tilstand støj/interferens som muligt (for mere om signalbehandling, se næste trin) for biomedicinske signaler, der er fyldt med fremmede artefakter.

Elektroderne er udsat for en vis hudimpedans, da din huds væv og fedt forhindrer den direkte måling af spændinger, hvilket fører til behovet for signalforstærkning og filtrering. Her, her og her er nogle artikler, hvor forskere har forsøgt at kvantificere denne impedans. Denne fysiologiske mængde er sædvanligvis modelleret som en 51kOhm modstand parallelt med en 47nF kondensator, selvom der er mange variationer og kombinationer. Hud forskellige steder kan have forskellige impedanser, især når man overvejer de forskellige tykkelser og mængder af tilstødende muskler. Impedans ændrer sig også med, hvor godt din hud er forberedt på elektroder: grundig rensning med sæbe og vand foreslås generelt for at sikre fremragende vedhæftning og konsistens, og der er endda specialgeler til elektroder, hvis du virkelig ønsker perfektion. En vigtig bemærkning er, at impedansen ændres med frekvensen (karakteristisk for kondensatorer), så du skal kende din signalbåndbredde for at forudsige impedans. Og ja, estimering af impedans ER vigtig for støjmatchning - se senere trin for mere information om dette.

Trin 3: Signalbehandling: Hvorfor og hvordan?

Signalbehandling: Hvorfor og hvordan?
Signalbehandling: Hvorfor og hvordan?

Hvorfor kan du nu ikke bare bruge 1-10mV spændingsforskellen som en umiddelbar udgang til at styre lysdioder? Der er mange grunde til at filtrere og forstærke signaler:

  • Mange ADC'er (analog-til-digital-konvertere-tag din analoge indgang og digitaliser dem til læsning og lagring af data på computeren) kan simpelthen ikke registrere så små ændringer. For eksempel er Arduino Unos ADC specifikt en 10-bit ADC med 5V udgang, hvilket betyder, at den kortlægger 0-5V indgangsspændinger (værdier uden for området vil "skinne", hvilket betyder, at lavere værdier vil blive læst som 0V og højere værdier læst som 5V) til heltalsværdier mellem 0 og 1023. 10mV er så lille i det 5V -område, så hvis du kan forstærke dit signal til det fulde 5V -område, vil små ændringer lettere kunne detekteres, fordi de vil blive afspejlet af større kvantitative ændringer (5mV ændring til 10mV i modsætning til 2V ændring til 4V). Tænk på det som et lille billede på din computer: detaljerne kan være perfekt defineret af dine pixels, men du vil ikke være i stand til at differentiere former, medmindre du udvider billedet.

    Bemærk, at det er bedre at have flere bits til din ADC, fordi du kan minimere kvantiseringsstøj fra at dreje dit kontinuerlige signal til diskrete, digitaliserede værdier. For at beregne, hvor mange bits du har brug for til ~ 96% fastholdelse af input SNR, skal du bruge N = SNR (i dB)/6 som tommelfingerregel. Du vil dog også huske din pengepung: Hvis du vil have flere bits, skal du være villig til at betale flere penge

  • Støj og interferens (støj = tilfældige artefakter, der gør dine signaler hakkede i stedet for glatte vs interferens = ikke -tilfældige, sinusformede artefakter fra tilstødende signaler fra radiobølger osv.) Plager alle signaler målt fra hverdagen.

    • Den mest berømte er 60Hz interferens (50Hz, hvis du er i Europa og ingen i Rusland, fordi de bruger jævnstrøm i modsætning til vekselstrøm til stikkontakt …), som kaldes forsyningsfrekvens fra vekselstrømens elektromagnetiske felter i stikkontakter. El -ledninger transporterer højspænding fra elektriske generatorer til boligområder, hvor transformere reducerer spændingen til standard ~ 120V i amerikanske stikkontakter. Vekselspændingen fører til dette konstante bad med 60Hz interferens i vores omgivelser, som forstyrrer alle typer signaler og skal filtreres fra.
    • 60Hz interferens kaldes almindeligvis common mode interferens, fordi den vises i begge dine input (+ og -) til op -ampere. Nu har op -forstærkere noget, der kaldes common mode rejection ratio (CMRR) for at reducere common mode -artefakter, men (ret mig, hvis jeg tager fejl!) Dette er hovedsageligt godt for almindelige mode -lyde (tilfældige: støj i stedet for ikke -tilfældige: interferens). For at slippe af med 60Hz kan bandstopfiltre bruges til selektivt at fjerne det fra frekvensspektret, men så risikerer du også at fjerne faktiske data. I bedste fald kan du bruge et lavpasfilter til kun at holde et frekvensområde lavere end 60Hz, så alt med højere frekvenser filtreres fra. Det var det, jeg gjorde for EOG: den forventede båndbredde på mit signal var 0-10Hz (forsømmelse af hurtige øjenbevægelser-ønskede ikke at håndtere det i vores forenklede version), så jeg fjernede frekvenser større end 10Hz med et lavpasfilter.

      • 60Hz kan ødelægge vores signaler via kapacitiv kobling og induktiv kobling. Kapacitiv kobling (læs op på kondensatorer her) opstår, når luft fungerer som et dielektrikum for vekselstrømssignaler, der skal ledes mellem tilstødende kredsløb. Induktiv kobling kommer fra Faradays lov, når du kører strøm i et magnetfelt. Der er mange tricks til at overvinde koblingen: du kan f.eks. Bruge et jordet skjold som et slags Faraday-bur. Vridning/fletning af ledninger reducerer, når det er muligt, det område, der er tilgængeligt for induktiv kobling til at forstyrre. Afkortning af ledninger og fald i den samlede størrelse af dit kredsløb har også den samme effekt af samme grund. At stole på batteristrøm til op amp -skinner i modsætning til tilslutning til en stikkontakt hjælper også, fordi batterierne giver en DC -kilde uden sinusformet svingning. Læs meget mere her!
      • Lavpasfiltre slipper også for meget støj, da tilfældig støj repræsenteres af høje frekvenser. Mange lyde er hvid støj, hvilket betyder, at der er støj for alle frekvenser, så at begrænse din signalbåndbredde så meget som muligt hjælper med at begrænse, hvor meget af den støj, der er til stede i dit signal.

        Nogle lavpasfiltre kaldes anti-aliasing filtre, fordi de forhindrer aliasing: når sinusoider er under stikprøver, kan de blive opdaget som en anden frekvens, så er de faktisk. Du skal altid huske at følge Nyquists sampling sætning (prøvesignaler ved 2x højere frekvens: har brug for en samplingsfrekvens på> 2Hz for en forventet 1Hz sinusbølge osv.). I dette EOG -tilfælde behøvede jeg ikke bekymre mig om Nyquist, fordi mit signal hovedsageligt forventedes at ligge i 10Hz -området, og mine Arduino ADC -prøver ved 10kHz - mere end hurtigt nok til at fange alt

    • Der er også små tricks til at slippe af med støj. Den ene er at bruge en stjernemaling, så alle dele af dine kredsløb har nøjagtig samme reference. Ellers kan det, som en del kalder "jord", afvige fra en anden del på grund af let modstand i ledninger, hvilket tilføjer sig i uoverensstemmelser. Lodning til protoboard i stedet for at klæbe med brødbrætter reducerer også en del støj og skaber sikre forbindelser, som du kan stole på i modsætning til indsættelse med prespasning.

Der er masser af andre måder at undertrykke støj og interferens (se her og her), men du kan tage et kursus på det eller Google for mere information: lad os gå videre til det faktiske kredsløb!

Trin 4: Sådan fungerer kredsløbet

Sådan fungerer kredsløbet
Sådan fungerer kredsløbet

Lad dig ikke skræmme af kredsløbsdiagrammet: her er en grov oversigt over, hvordan alt fungerer: (se også tilbage til det forrige trin for nogle forklaringer)

  • Yderst til venstre har vi elektroderne. En er fastgjort på venstre tempel, en anden på højre tempel, og tredje elektrode er jordet til panden. Denne jordforbindelse stabiliserer signalet, så der er mindre drift, og det slipper også for nogle af 60Hz -interferensen.
  • Næste er instrumenteringsforstærkeren. Gå to trin tilbage for en forklaring på, hvad det gør for at generere spændingsforskellen. Ligningen for at ændre forstærkerens forstærkning er på side 7 i databladet [G = 1+ (50kOhm/Rg), hvor Rg er forbundet på forstærkerens ben 1 og 8]. For mit kredsløb justerede jeg til en forstærkning på 500 ved at bruge Rg = 100Ohm.
  • Efter at instrumentationsforstærkeren udsender 500x forstærket spændingsforskel, er der et førsteordens RC lavpasfilter, som består af en modstand R_filter og kondensator C_filter. Lavpasfilteret forhindrer anti-aliasing (ingen bekymring for mig selv, fordi jeg ved Nyquist skal prøve mindst 20Hz for en forventet 10Hz båndbredde og Arduino ADC-prøver ved 10kHz-mere end nok) og også afbryder støj på alle de frekvenser, som jeg ikke har brug for. RC -systemet fungerer, fordi kondensatorer tillader høje frekvenser gennem let, men blokerer lavere frekvenser (impedans Z = 1/(2*pi*f)), og skaber en spændingsdeler med spændingen over kondensatoren resulterer i et filter, der kun tillader lavere frekvenser gennem [cutoff for 3dB intensitet styres af formlen f_c = 1/(2*pi*RC)]. Jeg justerede mit filters R- og C -værdier for at afbryde signaler højere end ~ 10Hz, fordi det biologiske signal for EOG'er forventes i dette område. Oprindeligt afbrød jeg efter 20Hz, men efter eksperimentering fungerede 10Hz lige så godt, så jeg gik med den mindre båndbredde (mindre båndbredde er bedre til at skære alt unødvendigt ud, for en sikkerheds skyld).
  • Med dette filtrerede signal målte jeg output med et oscilloskop for at se mit værdiområde fra at se til venstre og højre (de to yderpunkter i mit område). Det fik mig til omkring en 2-4V (fordi instrumentforstærkerforstærkning var 500x for et område på ~ 4-8mV), når mit mål er 5V (hele området for Arduino ADC). Dette område varierede meget (baseret på hvor godt personen vaskede huden på forhånd osv.), Så jeg ville ikke have så stor gevinst med min anden ikke-inverterende forstærker. Jeg endte med at justere den til kun at have en forstærkning på cirka 1,3 (juster R1 og R2 i kredsløbet, fordi forstærkerens forstærkning = 1+R2/R1). Du bliver nødt til at omfatte dit eget output og justere derfra, så du ikke går over 5V! Brug ikke bare mine modstandsværdier.
  • Dette signal kan nu føres ind i den analoge Arduino -pin til læsning, men Arduino ADC accepterer ikke negative indgange! Du skal flytte dit signal op, så området er 0-5V i modsætning til -2.5V til 2.5V. En måde at løse dette på er at fastgøre jorden på dit printkort til 3,3V -stiften på Arduino: dette skifter dit signal op med 3,3V (mere end 2,5V optimalt, men det virker). Mit område var virkelig vildt, så jeg designede en variabel offset-spænding: på den måde kunne jeg dreje potentiometeret for at centrere området til 0-5V. Det er i det væsentlige en variabel spændingsdeler ved hjælp af +/- 9V strømskinner, så jeg kunne fastgøre kredsløbets jord til en hvilken som helst værdi fra -9 til 9V og dermed flytte mit signal op eller ned 9V.

Trin 5: Valg af komponenter og værdier

Valg af komponenter og værdier
Valg af komponenter og værdier

Med kredsløbet forklaret, hvordan vælger vi hvilken (elektrode, op -forstærker), der skal bruges?

  • Som sensor har de solide gelelektroder høj indgangsimpedans og lav udgangsimpedans: hvad dette i det væsentlige betyder er, at strømmen let kan passere nedstrøms til resten af kredsløbet (lav udgangsimpedans), men ville have problemer med at passere opstrøms tilbage til dine tindinger (høj indgangsimpedans). Dette forhindrer brugeren i at blive skadet af høje strømme eller spændinger i resten af dit kredsløb; faktisk har mange systemer noget, der kaldes en patientbeskyttelsesmodstand for yderligere beskyttelse, bare for en sikkerheds skyld.

    • Der findes mange forskellige elektrodetyper. De fleste mennesker foreslår Ag/AgCl solide gelelektroder til brug i EKG/EOG/etc applikationer. Med dette i tankerne skal du slå disse elektroderes kildemodstand op (gå to skridt tilbage for mine noter om hudimpedans) og matche den med støjmodstanden (støjspænding i V/sqrt (Hz) divideret med støjstrøm i A/sqrt (Hz) - se datablade med op -forstærkere) for dine op -forstærkere - sådan vælger du den korrekte instrumentforstærker til din enhed. Dette kaldes støjmatchning, og forklaringer på hvorfor matchning af kildemodstand Rs til støjmodstand Rn -værker kan findes online som her. For min INA111, som jeg valgte, kan Rn beregnes ved hjælp af støjspændingen og støjstrømmen i databladet (skærmbillede ovenfor).

      • Der er MEGET artikler, der evaluerer elektrodeydelse, og ingen elektrode er den bedste til alle formål: Prøv f.eks. Her. Impedansen ændres også for forskellige båndbredder som afspejlet i op amp -databladene (nogle datablade vil have kurver eller tabeller ved forskellige frekvenser). Gør din research, men husk at huske din pengepung. Det er rart at vide, hvilke elektroder/op -forstærkere der er bedst, men det nytter ikke noget, hvis du ikke har råd. Du skal bruge ~ 50 elektroder mindst til test, ikke kun 3 til engangsbrug.

        • For optimal støjmatchning bør ikke kun Rn ~ = Rs: du vil også have støjspænding * støjstrøm (Pn) til at være så lav som muligt. Dette anses for vigtigere end at lave Rn ~ = Rs, fordi du kan justere Rs og Rn ved hjælp af transformere, hvis det er nødvendigt.

          Advarsler med transformere (ret mig hvis det er forkert): de kan være noget omfangsrige og dermed ikke optimale for enheder, der skal være små. De opbygger også varme, så varmelegemer eller fremragende ventilation er nødvendige

        • Støj matcher kun din første indledende forstærker; den anden forstærker påvirker ikke så meget, så enhver op -forstærker vil gøre det.

Trin 6: Opbygning af kredsløbet

Bygger kredsløbet
Bygger kredsløbet
Bygger kredsløbet
Bygger kredsløbet
Bygger kredsløbet
Bygger kredsløbet

Brug fritzing -diagrammet ovenfor til at bygge kredsløbet (anden kopi beskriver, hvad hver del refererer til i kredsløbsdiagrammet fra det foregående trin). Hvis du har brug for hjælp til at identificere lysdioderne i diagrammet, skal du bruge denne modstands farvekodeberegner, men Rg for instrumentforstærkeren er 100Ohm, R_filteret er 1,5MOhm, C_filteret er 0,1uF, R1 af den ikke -inverterende forstærker er 10kOhm, R2 er 33 kOhm, og modstanden for potentiometeret er 1 kOhm (potentiometer varierer fra 0 til 20 kOhm). Husk at ændre dine modstandsværdier efter behov for at justere gevinster!

Edit: der er en fejl i den forskudte jorddel. Slet den venstre sorte ledning. Modstanden skal forbindes med den røde ledning til strømskinnen som vist, men også til den anden pin, ikke den første, på potentiometeret. Første pin på potentiometeret skal tilsluttes 5V pin på Arduino. Orange ledning, der er den forskudte jord, skal tilsluttes den anden pin, ikke den første.

Jeg har diskuteret forskydningen meget. I diagrammet kan du se, at Arduino -jorden er vist som forbundet til brødbrættets jord. Det er i scenariet, at du ikke behøver at flytte jorden. Hvis dit signal er uden for rækkevidde, og du har brug for at skifte jord, skal du først prøve at forbinde Arduino -jorden til 3,3V -stiften på Arduino og se dit signal. Ellers kan du prøve at tilslutte den orange ledning i potentiometeret, der er oprettet (forskudt jord) til GND -stiften på Arduino.

SIKKERHEDSBEMÆRKNING: opbevar IKKE batterierne ved lodning, og lad IKKE IKKE batterierne sidde bagud. Dit kredsløb begynder at ryge, kondensatorer blæser, og brødbrættet kan også blive beskadiget. Som en tommelfingerregel skal du kun bruge batterierne, når du vil bruge kredsløbet; Ellers skal du tage dem af (det er også en god idé at tilføje en flipkontakt til let afbrydelse af batterierne).

Bemærk, at du skal bygge kredsløbet stykke for stykke (tjek hvert trin!) Og på et brødbræt, før du lodder til et protoboard. Første trin til kontrol er instrumenteringsforstærkeren: Sæt alle skinner (lodning i batteriholdere), Rg osv. Og brug et oscilloskop på udgangsstiften. Til at begynde med skal du bruge en funktionsgenerator med en 1Hz sinusbølge med 5mV amplitude (eller det laveste din generator vil gå). Dette er bare for at kontrollere, at instrumenteringsforstærkeren fungerer korrekt, og din Rg giver din målforøgelse.

Kontroller derefter dit lavpasfilter. Tilføj den del af kredsløbet og kontroller din bølgeform: den skal se nøjagtig den samme ud, men mindre støj (ujævn - se de sidste to billeder ovenfor). Lad os undersøge din endelige output med et oscilloskop med dine elektroder i stedet for en funktionsgenerator nu …

Trin 7: Testkredsløb med et menneske

Testkredsløb med et menneske
Testkredsløb med et menneske
Testkredsløb med et menneske
Testkredsløb med et menneske
Testkredsløb med et menneske
Testkredsløb med et menneske

Sæt igen elektroder ved dine venstre og højre templer, og fastgør en jordledning til en elektrode på din pande. Først derefter skal du tilføje batterier - hvis der opstår snurren, skal du straks fjerne og kontrollere forbindelserne !!! Kontroller nu dit værdiområde, når du ser til venstre mod højre, og juster R1/R2 for den ikke-inverterende forstærker, som forklaret for to trin siden-husk, at målet er et 5V-område! Se billederne ovenfor for noter om, hvad du skal passe på.

Når du er tilfreds med alle modstandsværdierne, loddes alt til et protoboard. Lodning er ikke strengt nødvendigt, men det giver mere stabilitet i forhold til simple prespasninger og fjerner usikkerheden om, at kredsløbet ikke fungerer, simpelthen fordi du ikke pressede dem hårdt nok ind i et brødbræt.

Trin 8: Arduino -kode

Al kode vedhæftet nederst i dette trin!

Nu hvor du har et 5V -område, skal du sikre dig, at det falder inden for 0-5V i stedet for -1V til 4V osv. Enten skal du tilslutte jorden til 3,3V -stiften på Arduino eller fastgøre den forskudte jordspænding (orange ledning ovenfor) til jordskinnen, og tilslut derefter en ledning fra jordskinnen til GND-stiften på Arduino (dette er for at flytte signalet op eller ned, så du falder inden for 0-5V-området). Du bliver nødt til at lege: glem ikke at omfatte dit output, når du er usikker!

Nu til kalibrering: du vil have lyset til at ændre farver for forskellige øjenpositioner (ser langt til venstre vs. ikke så langt til venstre..). Til det har du brug for værdier og intervaller: Kør EOG-kalibrering-numre.ino til Arduino med alt tilsluttet korrekt (afslut forbindelser til Arduino og neopixel i henhold til mit fritzing-diagram). Ikke super nødvendigt, men kør også den bioe.py -kode, jeg har - dette sender en tekstfil til dit skrivebord, så du kan registrere alle værdierne, når du ser til venstre eller højre (python -kode blev tilpasset fra dette eksempel). Hvordan jeg gjorde dette var at se til venstre for 8 slag, derefter til højre, derefter op, derefter ned og gentage for gennemsnit senere (se output_2.pdf for en log, jeg førte). Tryk på ctrl+C for at tvinge til at afslutte, når du er tilfreds. Ved hjælp af disse værdier kan du derefter justere animationsområdet i min BioE101_EOG-neopixel.ino-kode. For mig havde jeg en regnbue -animation, da jeg kiggede lige frem, blå for yderst til venstre, grøn for let til venstre, lilla for let til højre og rød for yderst til højre.

Trin 9: Fremtidige trin

Voila; noget du kan styre med bare dine øjne. Der er masser at optimere, før det kan komme til et hospital, men det er til en anden dag: de grundlæggende begreber er i hvert fald lettere at forstå nu. En ting, jeg gerne vil gå tilbage og ændre, er at justere min forstærkning til 500 for instrumentforstærkeren: Når jeg ser tilbage, var det sandsynligvis meget, fordi mit signal bagefter allerede var 2-4V, og jeg havde svært ved at bruge den ikke-inverterende forstærker for at justere mit område perfekt …

Det er svært at få konsistens, fordi signalet ændrer sig SÅ meget for forskellige forhold:

  • anderledes person
  • lysforhold
  • hudforberedelse (geler, vask osv.)

men alligevel er jeg ganske tilfreds med mit sidste videobevis af ydeevne (taget ved 3AM, fordi det er da alt magisk begynder at fungere).

Jeg ved, at meget af denne vejledning kan virke forvirrende (ja, indlæringskurven var også vanskelig for mig), så du er velkommen til at stille spørgsmål herunder, og jeg vil gøre mit bedste for at svare. God fornøjelse!

Urørlig udfordring
Urørlig udfordring
Uberørt udfordring
Uberørt udfordring

Runner Up i den urørlige udfordring

Anbefalede: