Sommario:

Controllare le luci con gli occhi: 9 passaggi (con immagini)
Controllare le luci con gli occhi: 9 passaggi (con immagini)

Video: Controllare le luci con gli occhi: 9 passaggi (con immagini)

Video: Controllare le luci con gli occhi: 9 passaggi (con immagini)
Video: 7 Cose che Possono Cambiarti il Colore degli Occhi 2024, Dicembre
Anonim
Controllare le luci con gli occhi
Controllare le luci con gli occhi
Controllare le luci con gli occhi
Controllare le luci con gli occhi

Questo semestre al college ho seguito un corso chiamato Instrumentation in Biomedicine in cui ho appreso le basi dell'elaborazione del segnale per applicazioni mediche. Per il progetto finale della classe, il mio team ha lavorato sulla tecnologia EOG (elettrooculografia). In sostanza, gli elettrodi attaccati alle tempie di qualcuno inviano una differenza di tensione (basata sul dipolo corneo-retinico) a un circuito progettato per filtrare e amplificare il segnale. Il segnale viene inviato a un ADC (convertitore analogico-digitale - nel mio caso, l'ADC di un Arduino Uno) e utilizzato per cambiare i colori di un gioiello di neopixel.

Questo tutorial è un modo per me di registrare ciò che ho imparato e anche di condividere con il lettore abituale come i segnali sono isolati dal corpo umano (quindi attenzione: è pieno di dettagli extra!). Questo circuito può effettivamente essere utilizzato, con alcune piccole modifiche, per gli impulsi elettrici dei cuori motori come una forma d'onda ECG e molto altro! Sebbene non sia certamente lontanamente avanzato e perfezionato come le macchine che potresti trovare in un ospedale, questa lampada a posizione oculare controllata è ottima per una comprensione iniziale e uno sguardo.

Nota: non sono un esperto nell'elaborazione del segnale quindi se ci sono errori o se avete suggerimenti per miglioramenti, fatemelo sapere! Ho ancora molto da imparare quindi il commento è apprezzato. Inoltre, molti dei documenti a cui faccio riferimento nei collegamenti in questo tutorial richiedono l'accesso accademico che ho per gentile concessione della mia università; scusate in anticipo per coloro che non avranno accesso.

Passaggio 1: materiali

  • scheda prototipi
  • resistori (100, 1k, 10k, 33k, 1M + 0,5M)
  • condensatore (0.1uF)
  • amplificatore per strumentazione (INA111 nel mio caso, ma ce n'è una coppia che dovrebbe funzionare relativamente bene)
  • amplificatore operazionale (qualsiasi - mi è capitato di avere un LM324N)
  • neopixel (qualsiasi funziona, ma ho usato un gioiello)
  • Batterie 9V x2
  • Intestazioni batteria 9V x2
  • elettrodi a gel solido (la selezione dell'elettrodo è discussa nel passaggio 5)
  • potenziometro
  • filo isolato
  • spelafili
  • saldatore + saldatura
  • clip a coccodrillo (con fili collegati - saldare alcuni se necessario)
  • colla a caldo (per stabilizzare i fili che verrebbero piegati avanti e indietro)
  • Arduino (praticamente a bordo funziona, ma ho usato un Arduino Uno)

VIVAMENTE CONSIGLIATO: oscilloscopio, multimetro e generatore di funzioni. Sonda le tue uscite piuttosto che fare affidamento solo sui valori dei miei resistori!

Fase 2: Contesto fisiologico e necessità di un circuito

Contesto fisiologico e necessità di un circuito
Contesto fisiologico e necessità di un circuito

Dichiarazione di non responsabilità rapida: non sono affatto un medico esperto in questo campo, ma ho compilato e semplificato ciò che ho imparato in classe/da Google di seguito, con collegamenti per ulteriori letture, se lo desideri. Inoltre, questo collegamento è di gran lunga la migliore panoramica dell'argomento che ho trovato - include tecniche alternative.

L'EOG (elettrooculografia) agisce sul dipolo corneo-retinico. La cornea (parte anteriore dell'occhio) è leggermente caricata positivamente e la retina (parte posteriore dell'occhio) è leggermente caricata negativamente. Quando applichi gli elettrodi sulle tempie e metti a terra il circuito sulla fronte (aiuta a stabilizzare le letture e ad eliminare alcune interferenze a 60 Hz), puoi misurare differenze di tensione di circa 1-10 mV per i movimenti oculari orizzontali (vedi l'immagine sopra). Per i movimenti oculari verticali, posizionare invece gli elettrodi sopra e sotto l'occhio. Vedi questo articolo per una buona lettura su come il corpo interagisce con l'elettricità: ottime informazioni sull'impedenza della pelle, ecc. Gli EOG sono comunemente usati per diagnosticare malattie oftalmologiche come cataratta, errori di rifrazione o degenerazione maculare. Ci sono anche applicazioni nella robotica controllata dagli occhi in cui semplici compiti possono essere eseguiti con un semplice movimento degli occhi.

Per leggere questi segnali, ovvero calcolare la differenza di tensione tra gli elettrodi, incorporiamo nel nostro circuito un importante chip chiamato amplificatore di strumentazione. Questo amplificatore per strumentazione è composto da inseguitori di tensione, un amplificatore non invertente e un amplificatore differenziale. Se non sai molto sugli amplificatori operazionali, leggi questo per un corso accelerato: in sostanza, prendono una tensione di ingresso, la ridimensionano e emettono la tensione risultante utilizzando le sue linee di alimentazione. L'integrazione di tutti i resistori tra ogni fase aiuta con gli errori di tolleranza: normalmente i resistori hanno una tolleranza del 5-10% nei valori e il circuito normale (non completamente integrato in un amplificatore per strumentazione) farebbe molto affidamento sulla precisione per un buon CMMR (vedi il passaggio successivo). I follower di tensione sono per l'alta impedenza di ingresso (discussa nel paragrafo precedente - importante per prevenire danni al paziente), l'amplificatore non invertente è quello di garantire un alto guadagno del segnale (più sull'amplificazione nel passaggio successivo) e l'amplificatore differenziale prende la differenza tra gli ingressi (sottrae i valori dagli elettrodi). Questi sono progettati per eliminare quanto più rumore/interferenza di modalità comune possibile (per ulteriori informazioni sull'elaborazione del segnale, vedere il passaggio successivo) per i segnali biomedici, che sono pieni di artefatti estranei.

Gli elettrodi affrontano una certa impedenza cutanea poiché i tessuti e il grasso della pelle ostruiscono la misurazione diretta delle tensioni, portando alla necessità di amplificazione e filtraggio del segnale. Qui, qui e qui ci sono alcuni articoli in cui i ricercatori hanno tentato di quantificare questa impedenza. Questa quantità fisiologica è comunemente modellata come un resistore da 51kOhm in parallelo con un condensatore da 47nF, sebbene ci siano molte varianti e combinazioni. La pelle in posizioni diverse può avere impedenze diverse, soprattutto se si considerano i diversi spessori e quantità di muscoli adiacenti. L'impedenza cambia anche con la preparazione della pelle per gli elettrodi: in genere si consiglia una pulizia accurata con acqua e sapone per garantire un'adesione e una consistenza eccellenti, e ci sono anche gel speciali per elettrodi se si desidera davvero la perfezione. Una nota chiave è che l'impedenza cambia con la frequenza (caratteristica dei condensatori), quindi è necessario conoscere la larghezza di banda del segnale per prevedere l'impedenza. E sì, la stima dell'impedenza È importante per la corrispondenza del rumore - vedere il passaggio successivo per maggiori informazioni su questo.

Passaggio 3: elaborazione del segnale: perché e come?

Elaborazione del segnale: perché e come?
Elaborazione del segnale: perché e come?

Ora, perché non puoi semplicemente usare la differenza di tensione di 1-10 mV come uscita immediata per controllare i LED? Bene, ci sono molte ragioni per filtrare e amplificare i segnali:

  • Molti ADC (convertitori da analogico a digitale - prendono il tuo ingresso analogico e lo digitalizzano per leggere e memorizzare i dati sul computer) semplicemente non sono in grado di rilevare cambiamenti così piccoli. Ad esempio, l'ADC di Arduino Uno è specificamente un ADC a 10 bit con uscita a 5 V, il che significa che mappa le tensioni di ingresso 0-5 V (i valori fuori intervallo verranno "tracciati", il che significa che i valori inferiori verranno letti come 0 V e i valori più alti verranno letti come 5V) a valori interi compresi tra 0 e 1023. 10mV è così piccolo in quell'intervallo di 5V, quindi se è possibile amplificare il segnale all'intero intervallo di 5V, piccoli cambiamenti saranno più facilmente rilevabili perché saranno riflessi da maggiori cambiamenti quantitativi (5mV cambia a 10mV invece di 2V cambia a 4V). Pensala come una piccola immagine sul tuo computer: i dettagli potrebbero essere perfettamente definiti dai tuoi pixel, ma non sarai in grado di differenziare le forme a meno che non espandi l'immagine.

    Nota che avere più bit per il tuo ADC è meglio perché puoi ridurre al minimo il rumore di quantizzazione dal trasformare il tuo segnale continuo in valori discreti e digitalizzati. Per calcolare quanti bit sono necessari per mantenere il ~96% di SNR in ingresso, utilizzare N = SNR (in dB)/6 come regola empirica. Tuttavia, devi anche tenere a mente il tuo portafoglio: se vuoi più bit, devi essere disposto a sborsare più soldi

  • Rumore e interferenza (rumore = artefatti casuali che rendono i tuoi segnali frastagliati anziché uniformi vs interferenza = non casuali, artefatti sinusoidali da segnali adiacenti provenienti da onde radio, ecc.) affliggono tutti i segnali misurati dalla vita quotidiana.

    • La più famosa è l'interferenza a 60 Hz (50 Hz se sei in Europa e nessuna in Russia perché usano la CC anziché la CA per l'alimentazione in uscita…), che è chiamata frequenza di utilità dai campi elettromagnetici CA delle prese di corrente. Le linee elettriche trasportano l'alta tensione CA dai generatori elettrici alle aree residenziali, dove i trasformatori riducono la tensione allo standard ~ 120 V nelle prese elettriche americane. La tensione alternata porta a questo bagno costante di interferenze a 60Hz nell'ambiente circostante, che interferisce con tutti i tipi di segnali e deve essere filtrato.
    • L'interferenza a 60 Hz è comunemente chiamata interferenza di modo comune perché appare in entrambi gli ingressi (+ e -) degli amplificatori operazionali. Ora, gli amplificatori operazionali hanno qualcosa chiamato rapporto di reiezione di modo comune (CMRR) per ridurre gli artefatti di modo comune, ma (correggimi se sbaglio!) Questo è principalmente un bene per i rumori di modo comune (casuale: rumore invece di non casuale: interferenza). Per eliminare i 60Hz, è possibile utilizzare i filtri bandstop per rimuoverli selettivamente dallo spettro di frequenza, ma poi si corre anche il rischio di rimuovere i dati effettivi. Nel migliore dei casi, puoi utilizzare un filtro passa basso per mantenere solo un intervallo di frequenze inferiore a 60 Hz, in modo che tutto ciò con frequenze più alte venga filtrato. Questo è quello che ho fatto per l'EOG: la larghezza di banda prevista del mio segnale era 0-10Hz (trascurando i rapidi movimenti oculari - non volevo affrontarlo nella nostra versione semplificata) quindi ho rimosso le frequenze maggiori di 10Hz con un filtro passa basso.

      • 60Hz possono corrompere i nostri segnali tramite accoppiamento capacitivo e accoppiamento induttivo. L'accoppiamento capacitivo (leggi qui sui condensatori) si verifica quando l'aria funge da dielettrico per i segnali CA da condurre tra circuiti adiacenti. L'accoppiamento induttivo deriva dalla legge di Faraday quando si esegue la corrente in un campo magnetico. Ci sono molti trucchi per superare l'accoppiamento: potresti usare uno scudo messo a terra come una sorta di gabbia di Faraday, per esempio. Quando possibile, attorcigliare/intrecciare i fili riduce l'area disponibile per l'interferenza dell'accoppiamento induttivo. Anche l'accorciamento dei cavi e la riduzione delle dimensioni complessive del circuito hanno lo stesso effetto per lo stesso motivo. Anche affidarsi all'alimentazione della batteria per i binari dell'amplificatore operazionale anziché collegarlo a una presa di corrente aiuta perché le batterie forniscono una sorgente CC senza oscillazioni sinusoidali. Leggi molto di più qui!
      • I filtri passa-basso eliminano anche molto rumore, poiché il rumore casuale è rappresentato da alte frequenze. Molti rumori sono rumore bianco, il che significa che il rumore è presente per tutte le frequenze, quindi limitare il più possibile la larghezza di banda del segnale aiuta a limitare la quantità di quel rumore presente nel segnale.

        Alcuni filtri passa basso sono chiamati filtri anti-aliasing perché impediscono l'aliasing: quando le sinusoidi sono sottocampionate, possono essere rilevate con una frequenza diversa da quella in cui sono effettivamente. Dovresti sempre ricordarti di seguire il teorema di campionamento di Nyquist (segnali di campionamento a frequenza 2 volte più alta: è necessaria una frequenza di campionamento di >2Hz per un'onda sinusoidale prevista di 1Hz, ecc.). In questo caso EOG, non dovevo preoccuparmi di Nyquist perché ci si aspettava che il mio segnale fosse principalmente nella gamma di 10Hz e il mio Arduino ADC campiona a 10kHz - più che abbastanza veloce da catturare tutto

    • Ci sono anche piccoli trucchi per eliminare il rumore. Uno è quello di usare una stella a terra in modo che tutte le parti dei tuoi circuiti abbiano lo stesso identico riferimento. Altrimenti, ciò che una parte chiama "terra" potrebbe differire da un'altra parte a causa della leggera resistenza nei fili, che si somma in incongruenze. Anche la saldatura alla scheda prototipi invece di attaccare con le breadboard riduce il rumore e crea connessioni sicure di cui ci si può fidare rispetto all'inserimento a pressione.

Ci sono molti altri modi per sopprimere il rumore e le interferenze (vedi qui e qui), ma puoi seguire un corso su quello o Google per maggiori informazioni: passiamo al circuito vero e proprio!

Passaggio 4: come funziona il circuito

Come funziona il circuito
Come funziona il circuito

Non lasciarti intimidire dallo schema elettrico: ecco una ripartizione approssimativa di come funziona tutto: (fare riferimento anche al passaggio precedente per alcune spiegazioni)

  • All'estrema sinistra abbiamo gli elettrodi. Uno è attaccato alla tempia sinistra, un altro alla tempia destra e il terzo elettrodo è collegato a terra sulla fronte. Questa messa a terra stabilizza il segnale in modo che ci sia meno deriva e elimina anche alcune delle interferenze a 60Hz.
  • Il prossimo è l'amplificatore per strumentazione. Torna indietro di due passaggi per una spiegazione di cosa fa per generare la differenza di tensione. L'equazione per modificare il guadagno dell'amplificatore è a pagina 7 della scheda tecnica [G = 1+(50kOhm/Rg) dove Rg è collegato sui pin 1 e 8 dell'amplificatore]. Per il mio circuito, ho regolato un guadagno di 500 usando Rg = 100 Ohm.
  • Dopo che l'amplificatore della strumentazione emette la differenza di tensione amplificata di 500 volte, c'è un filtro passa basso RC di primo ordine, che consiste in un resistore R_filter e un condensatore C_filter. Il filtro passa basso impedisce l'anti-aliasing (non è un problema per me però perché da Nyquist, ho bisogno di campionare almeno 20Hz per una larghezza di banda prevista di 10Hz e l'ADC di Arduino campiona a 10kHz - più che sufficiente) e taglia anche il rumore a tutte le frequenze di cui non ho bisogno. Il sistema RC funziona perché i condensatori consentono il passaggio delle alte frequenze facilmente ma ostruiscono le frequenze più basse (impedenza Z = 1/(2*pi*f)), e la creazione di un partitore di tensione con la tensione ai capi del condensatore si traduce in un filtro che consente solo frequenze inferiori attraverso [il taglio per l'intensità di 3dB è governato dalla formula f_c = 1/(2*pi*RC)]. Ho regolato i valori R e C del mio filtro per tagliare i segnali superiori a ~ 10Hz perché il segnale biologico per gli EOG è previsto in quell'intervallo. Inizialmente ho tagliato dopo 20Hz, ma dopo la sperimentazione 10Hz ha funzionato altrettanto bene, quindi sono andato con la larghezza di banda più piccola (la larghezza di banda più piccola è meglio eliminare tutto ciò che non è necessario, per ogni evenienza).
  • Con questo segnale filtrato, ho misurato l'uscita con un oscilloscopio per vedere la mia gamma di valori guardando a sinistra ea destra (i due estremi della mia gamma). Questo mi ha portato a circa 2-4 V (perché il guadagno dell'amplificatore della strumentazione era di 500 volte per un intervallo di ~ 4-8 mV), quando il mio obiettivo è 5 V (gamma completa dell'ADC Arduino). Questa gamma variava molto (in base a quanto bene la persona aveva lavato la pelle in anticipo, ecc.) Quindi non volevo avere così tanto guadagno con il mio secondo amplificatore non invertente. Ho finito per regolarlo per avere un guadagno di solo circa 1,3 (regolare R1 e R2 nel circuito perché il guadagno dell'amplificatore = 1 + R2 / R1). Dovrai misurare la tua uscita e regolare da lì in modo da non superare i 5V! Non usare solo i valori dei miei resistori.
  • Questo segnale può ora essere inserito nel pin analogico di Arduino per la lettura, MA l'ADC di Arduino non accetta ingressi negativi! Dovrai spostare il segnale verso l'alto in modo che l'intervallo sia 0-5 V anziché da -2,5 V a 2,5 V. Un modo per risolvere questo problema è collegare la massa del circuito al pin da 3,3 V dell'Arduino: questo aumenta il segnale di 3,3 V (più di 2,5 V ottimale ma funziona). La mia gamma era davvero traballante, quindi ho progettato una tensione di offset variabile: in questo modo, potevo ruotare il potenziometro per centrare la gamma su 0-5V. È essenzialmente un divisore di tensione variabile che utilizza i binari di alimentazione +/- 9 V in modo da poter collegare la massa del circuito a qualsiasi valore da -9 a 9 V e quindi spostare il segnale su o giù di 9 V.

Passaggio 5: selezione di componenti e valori

Scegliere componenti e valori
Scegliere componenti e valori

Con il circuito spiegato, come scegliamo quale (elettrodo, amplificatore operazionale) usare?

  • Come sensore, gli elettrodi in gel solido hanno un'alta impedenza di ingresso e una bassa impedenza di uscita: ciò significa essenzialmente che la corrente può facilmente passare a valle al resto del circuito (bassa impedenza di uscita) ma avrebbe problemi a tornare a monte alle tempie (alta impedenza di ingresso). Ciò impedisce all'utente di essere ferito da correnti o tensioni elevate nel resto del circuito; infatti, molti sistemi hanno qualcosa chiamato resistore di protezione del paziente per una protezione aggiuntiva, per ogni evenienza.

    • Esistono molti tipi diversi di elettrodi. La maggior parte delle persone suggerisce elettrodi in gel solido Ag/AgCl per l'uso in applicazioni EKG/EOG/ecc. Con questo in mente, è necessario cercare la resistenza della sorgente di questi elettrodi (fare due passi indietro per le mie note sull'impedenza della pelle) e abbinarla alla resistenza al rumore (tensione di rumore in V/sqrt(Hz) divisa per la corrente di rumore in A/sqrt(Hz) -- vedi le schede tecniche degli amplificatori operazionali) dei tuoi amplificatori operazionali -- ecco come scegli l'amplificatore per strumentazione corretto per il tuo dispositivo. Questo è chiamato adattamento del rumore e le spiegazioni del motivo per cui la corrispondenza della resistenza della sorgente Rs alla resistenza al rumore Rn funziona possono essere trovate online come qui. Per il mio INA111 che ho scelto, l'Rn può essere calcolato utilizzando la tensione di rumore e la corrente di rumore della scheda tecnica (schermata sopra).

      • Ci sono MOLTI articoli che valutano le prestazioni degli elettrodi e nessun elettrodo è il migliore per tutti gli scopi: prova qui, ad esempio. L'impedenza cambia anche per diverse larghezze di banda, come indicato nei fogli dati dell'amplificatore operazionale (alcuni fogli dati avranno curve o tabelle a frequenze diverse). Fai le tue ricerche ma ricorda di tenere a mente il tuo portafoglio. È bello sapere quali elettrodi/amplificatori operazionali sono i migliori, ma è inutile se non te lo puoi permettere. Avrai bisogno di almeno 50 elettrodi per i test, non solo 3 per un uso una tantum.

        • Per una corrispondenza ottimale del rumore, non solo Rn ~= Rs: vuoi anche che la tensione di rumore * la corrente di rumore (Pn) sia il più bassa possibile. Questo è considerato più importante che rendere Rn ~= Rs perché puoi regolare Rs e Rn usando i trasformatori se necessario.

          Avvertenze con i trasformatori (correggimi se sbaglio): possono essere un po' ingombranti e quindi non ottimali per dispositivi che devono essere piccoli. Inoltre accumulano calore, quindi sono necessari dissipatori di calore o un'eccellente ventilazione

        • Il rumore corrisponde solo al tuo primo amplificatore iniziale; il secondo amplificatore non influisce molto, quindi andrà bene qualsiasi amplificatore operazionale.

Passaggio 6: costruire il circuito

Costruire il circuito
Costruire il circuito
Costruire il circuito
Costruire il circuito
Costruire il circuito
Costruire il circuito

Usa il fritzing diagramma sopra per costruire il circuito (la seconda copia delinea a cosa si riferisce ciascuna parte nello schema del circuito del passaggio precedente). Se hai bisogno di aiuto per identificare i LED nel diagramma, usa questo calcolatore del codice colore del resistore, ma l'Rg dell'amplificatore della strumentazione è 100 Ohm, il filtro R è 1,5 MOhm, il filtro C è 0,1 uF, R1 dell'amplificatore non invertente è 10 kOhm, R2 è il 33kOhm e il resistore per il potenziometro è 1kOhm (il potenziometro varia da 0 a 20kOhm). Ricorda di modificare i valori del resistore secondo necessità per regolare i guadagni!

Modifica: c'è un errore nella porzione di terra dell'offset. Elimina il filo nero sinistro. La resistenza va collegata con il filo rosso alla sbarra di alimentazione come mostrato ma anche al secondo pin, non al primo, del potenziometro. Il primo pin del potenziometro deve essere collegato al pin 5V dell'Arduino. Il filo arancione che è la massa offset deve essere collegato al secondo pin, non al primo.

Ho discusso molto dell'offset. Nel diagramma puoi vedere che la massa di Arduino è mostrata come collegata alla massa della breadboard. Questo è nello scenario in cui non hai bisogno di cambiare terreno. Se il tuo segnale è fuori portata e devi spostare la massa, prova prima a collegare la massa di Arduino al pin da 3,3 V dell'Arduino e visualizzare il segnale. Altrimenti prova ad agganciare il filo arancione nel setup del potenziometro (offset ground) al pin GND dell'Arduino.

NOTA DI SICUREZZA: NON tenere le batterie all'interno durante la saldatura e NON inserire o saldare le batterie al contrario. Il tuo circuito inizierà a fumare, i condensatori si bruceranno e anche la breadboard potrebbe danneggiarsi. Come regola generale, utilizzare le batterie solo quando si desidera utilizzare il circuito; in caso contrario, toglili (anche l'aggiunta di un interruttore a levetta per scollegare facilmente le batterie sarebbe una buona idea).

Nota che dovresti costruire il circuito pezzo per pezzo (controlla ogni fase!) e su una breadboard prima di saldare a una scheda prototipi. La prima fase da controllare è l'amplificatore della strumentazione: collegare tutte le guide (saldatura nei portabatterie), Rg, ecc. e utilizzare un oscilloscopio sul pin di uscita. Per cominciare, usa un generatore di funzioni con un'onda sinusoidale di 1Hz con un'ampiezza di 5mV (o la più bassa che andrà il tuo generatore). Questo è solo per verificare che l'amplificatore della strumentazione funzioni correttamente e che il tuo Rg fornisca il guadagno target.

Quindi, controlla il tuo filtro passa basso. Aggiungi quella parte del circuito e controlla la tua forma d'onda: dovrebbe sembrare esattamente la stessa ma con meno rumore (frastagliata - vedi le ultime due immagini sopra). Proviamo ora il tuo output finale con un oscilloscopio con i tuoi elettrodi invece di un generatore di funzioni…

Passaggio 7: test del circuito con un essere umano

Circuito di prova con un essere umano
Circuito di prova con un essere umano
Circuito di prova con un essere umano
Circuito di prova con un essere umano
Circuito di prova con un essere umano
Circuito di prova con un essere umano

Ancora una volta, metti gli elettrodi alle tempie sinistra e destra e collega un filo di terra a un elettrodo sulla fronte. Solo dopo dovresti aggiungere le batterie: in caso di formicolio, rimuovi IMMEDIATAMENTE e ricontrolla i collegamenti!!! Ora controlla la tua gamma di valori quando guardi a sinistra ea destra e regola R1/R2 dell'amplificatore non invertente, come spiegato due passaggi fa - ricorda che l'obiettivo è un intervallo di 5V! Vedere le immagini sopra per le note su cosa cercare.

Quando sei soddisfatto di tutti i valori dei resistori, salda tutto su una scheda prototipi. La saldatura non è strettamente necessaria, ma fornisce maggiore stabilità su semplici giunti a pressione e rimuove l'incertezza del circuito che non funziona semplicemente perché non li hai premuti abbastanza forte in una breadboard.

Passaggio 8: codice Arduino

Tutto il codice allegato in fondo a questo passaggio!

Ora che hai un intervallo di 5 V, devi assicurarti che rientri tra 0-5 V anziché tra -1 V e 4 V, ecc. Collega la terra al pin da 3,3 V dell'Arduino o collega la tensione di terra di offset (filo arancione sopra) al binario di terra e quindi collegare un filo dal binario di terra al pin GND dell'Arduino (questo serve per spostare il segnale verso l'alto o verso il basso in modo da rientrare nell'intervallo 0-5V). Dovrai giocare un po': non dimenticare di esaminare la tua produzione ogni volta che sei incerto!

Ora per la calibrazione: vuoi che la luce cambi i colori per le diverse posizioni degli occhi (guardando all'estrema sinistra e non all'estrema sinistra…). Per questo hai bisogno di valori e intervalli: esegui EOG-calibration-numbers.ino su Arduino con tutto collegato correttamente (finisci le connessioni ad Arduino e neopixel secondo il mio schema fritzing). Non è super necessario, ma esegui anche il codice bioe.py che ho: questo genererà un file di testo sul desktop in modo da poter registrare tutti i valori mentre guardi a sinistra oa destra (il codice Python è stato adattato da questo esempio). Come ho fatto è stato guardare a sinistra per 8 battiti, poi a destra, poi su, poi giù e ripetere per fare la media in seguito (vedi output_2.pdf per un registro che ho tenuto). Premi ctrl+C per forzare l'uscita quando sei soddisfatto. Usando questi valori, puoi quindi regolare gli intervalli delle animazioni nel mio codice BioE101_EOG-neopixel.ino. Per me, ho avuto un'animazione arcobaleno quando ho guardato dritto davanti a me, blu per l'estrema sinistra, verde per leggermente a sinistra, viola per leggermente a destra e rosso per l'estrema destra.

Passaggio 9: passaggi futuri

Ecco; qualcosa che puoi controllare solo con i tuoi occhi. C'è molto da ottimizzare prima che possa arrivare in ospedale, ma questo è per un altro giorno: i concetti di base sono almeno più facili da capire ora. Una cosa che vorrei tornare indietro e cambiare è regolare il mio guadagno a 500 per l'amplificatore per strumentazione: guardando indietro, probabilmente era troppo perché il mio segnale dopo era già 2-4V e ho avuto difficoltà a usare il non invertente amplificatore per regolare perfettamente la mia gamma…

È difficile ottenere coerenza perché il segnale cambia MOLTO per condizioni diverse:

  • persona diversa
  • condizioni di luce
  • preparazione della pelle (gel, detersivo, ecc.)

ma anche così, sono abbastanza soddisfatto della mia prova video finale della performance (presa alle 3 del mattino perché è allora che tutto inizia magicamente a funzionare).

So che molti di questi tutorial possono sembrare confusi (sì, la curva di apprendimento è stata difficile anche per me) quindi sentiti libero di porre domande qui sotto e farò del mio meglio per rispondere. Divertiti!

Sfida intoccabile
Sfida intoccabile
Sfida intoccabile
Sfida intoccabile

Secondo classificato nella sfida degli intoccabili

Consigliato: