Controlando as luzes com seus olhos: 9 etapas (com fotos)
Controlando as luzes com seus olhos: 9 etapas (com fotos)
Anonim
Controlando as luzes com seus olhos
Controlando as luzes com seus olhos
Controlando as luzes com seus olhos
Controlando as luzes com seus olhos

Neste semestre, na faculdade, fiz uma aula chamada Instrumentação em Biomedicina, na qual aprendi o básico do processamento de sinais para aplicações médicas. Para o projeto final da aula, minha equipe trabalhou na tecnologia EOG (eletrooculografia). Essencialmente, os eletrodos presos às têmporas de alguém enviam uma diferença de voltagem (com base no dipolo córneo-retinal) para um circuito projetado para filtrar e amplificar o sinal. O sinal é enviado a um ADC (conversor analógico para digital - no meu caso, o ADC de um Arduino Uno) e usado para alterar as cores de uma joia de neopixel.

Este tutorial é uma forma de registrar o que aprendi e também de compartilhar com o leitor comum como os sinais são isolados do corpo humano (então fique atento: está cheio de detalhes extras!). Este circuito pode realmente ser usado, com algumas pequenas alterações, para impulsos elétricos do coração motor como uma forma de onda de EKG e muito mais! Embora certamente não seja tão avançada e aperfeiçoada quanto as máquinas que você encontraria em um hospital, esta lâmpada com controle da posição dos olhos é ótima para uma compreensão inicial e um vislumbre.

Nota: Não sou especialista em processamento de sinais, então se houver algum erro ou se você tiver sugestões de melhorias, por favor me avise! Eu ainda tenho muito a aprender, então comentários são bem-vindos. Além disso, muitos dos artigos aos quais faço referência nos links ao longo deste tutorial exigem acesso acadêmico, cortesia da minha universidade; desculpas antecipadamente para aqueles que não terão acesso.

Etapa 1: Materiais

  • protoboard
  • resistores (100, 1k, 10k, 33k, 1M + 0,5M)
  • capacitor (0,1uF)
  • amplificador de instrumentação (INA111 no meu caso, mas há um par que deve funcionar relativamente bem)
  • amplificador operacional (qualquer - aconteceu de eu ter um LM324N)
  • neopixel (funciona, mas usei uma joia)
  • Baterias de 9 V x 2
  • Conectores de bateria 9V x2
  • eletrodos de gel sólido (a seleção do eletrodo é discutida na etapa 5)
  • potenciômetro
  • fio isolado
  • descascadores de arame
  • ferro de solda + solda
  • pinças de crocodilo (com fios conectados - soldar alguns se necessário)
  • cola quente (para estabilizar os fios que seriam dobrados para frente e para trás)
  • Arduino (praticamente qualquer trabalho, mas usei um Arduino Uno)

ALTAMENTE RECOMENDADO: osciloscópio, multímetro e gerador de funções. Teste suas saídas ao invés de apenas confiar nos valores do meu resistor!

Etapa 2: Antecedentes Fisiológicos e a Necessidade de um Circuito

Antecedentes fisiológicos e a necessidade de um circuito
Antecedentes fisiológicos e a necessidade de um circuito

Aviso rápido: Não sou de forma alguma um especialista médico neste campo, mas compilei e simplifiquei o que aprendi nas aulas / no Googling abaixo, com links para leituras adicionais, se desejar. Além disso, este link é de longe a melhor visão geral do assunto que encontrei - inclui técnicas alternativas.

EOG (eletro-oculografia) atua no dipolo córneo-retinal. A córnea (parte da frente do olho) está levemente carregada positivamente e a retina (parte de trás do olho) está levemente carregada negativamente. Ao aplicar eletrodos nas têmporas e aterrar o circuito em sua testa (ajuda a estabilizar suas leituras e se livrar de algumas interferências de 60 Hz), você pode medir diferenças de voltagem em torno de ~ 1-10 mV para movimentos oculares horizontais (veja a imagem acima). Para movimentos oculares verticais, coloque eletrodos acima e abaixo do olho. Veja este artigo para uma boa leitura sobre como o corpo interage com a eletricidade - ótimas informações sobre a impedância da pele, etc. Os EOGs são comumente usados para diagnosticar doenças oftalmológicas como catarata, erros refrativos ou degeneração macular. Existem também aplicações em robótica controlada pelos olhos, nas quais tarefas simples podem ser realizadas com um movimento dos olhos.

Para ler esses sinais, ou seja, calcular a diferença de voltagem entre os eletrodos, incorporamos um chip importante chamado amplificador de instrumentação em nosso circuito. Este amplificador de instrumentação consiste em seguidores de voltagem, um amplificador não inversor e um amplificador diferencial. Se você não sabe muito sobre amplificadores operacionais, leia isto para um curso intensivo - essencialmente, eles pegam uma tensão de entrada, escalam-a e geram a tensão resultante usando seus trilhos de alimentação. A integração de todos os resistores entre cada estágio ajuda com erros de tolerância: normalmente os resistores têm tolerância de 5-10% em valores, e o circuito regular (não totalmente integrado em um amplificador de instrumentação) dependeria fortemente da precisão para um bom CMMR (veja a próxima etapa) Os seguidores de tensão são para alta impedância de entrada (discutida no parágrafo acima - principal para prevenir danos ao paciente), o amplificador não inversor é para garantir alto ganho do sinal (mais sobre amplificação na próxima etapa) e o amplificador diferencial leva a diferença entre as entradas (subtrai os valores dos eletrodos). Eles são projetados para suprimir o máximo possível de ruído / interferência de modo comum (para obter mais informações sobre processamento de sinal, consulte a próxima etapa) para sinais biomédicos, que estão repletos de artefatos estranhos.

Os eletrodos enfrentam alguma impedância da pele, uma vez que os tecidos e a gordura da pele obstruem a medição direta das tensões, levando à necessidade de amplificação e filtragem do sinal. Aqui, aqui e aqui estão alguns artigos nos quais os pesquisadores tentaram quantificar essa impedância. Essa quantidade fisiológica é comumente modelada como um resistor de 51kOhm em paralelo com um capacitor de 47nF, embora haja muitas variações e combinações. A pele em locais diferentes pode ter impedâncias diferentes, especialmente quando você considera as diferentes espessuras e quantidades de músculos adjacentes. A impedância também muda com o quão bem sua pele está preparada para eletrodos: uma limpeza completa com água e sabão é geralmente sugerida para garantir excelente adesão e consistência, e existem até géis especiais para eletrodos se você realmente deseja a perfeição. Uma observação importante é que a impedância muda com a frequência (característica dos capacitores), então você precisa saber a largura de banda do seu sinal para prever a impedância. E sim, estimar a impedância É importante para a correspondência de ruído - consulte a etapa posterior para obter mais informações sobre isso.

Etapa 3: Processamento de sinal: por que e como?

Processamento de sinais: por que e como?
Processamento de sinais: por que e como?

Agora, por que você não pode simplesmente usar a diferença de tensão de 1-10 mV como uma saída imediata para controlar os LEDs? Bem, existem muitos motivos para filtrar e amplificar os sinais:

  • Muitos ADCs (conversores analógico-digital - pegue sua entrada analógica e digitalize-a para leitura e armazenamento de dados no computador) simplesmente não consegue detectar essas pequenas mudanças. Por exemplo, o ADC do Arduino Uno é especificamente um ADC de 10 bits com saída de 5 V, o que significa que mapeia tensões de entrada de 0 a 5 V (valores fora da faixa serão "ferrados", o que significa que valores mais baixos serão lidos como 0 V e valores mais altos lidos como 5V) para valores inteiros entre 0 e 1023. 10mV é tão pequeno na faixa de 5V, então se você pode amplificar seu sinal para a faixa total de 5V, pequenas mudanças serão mais facilmente detectáveis porque serão refletidas por mudanças quantitativas maiores (Alteração de 5mV para 10mV em oposição à alteração de 2V para 4V). Pense nisso como uma pequena imagem em seu computador: os detalhes podem ser perfeitamente definidos por seus pixels, mas você não será capaz de diferenciar as formas a menos que expanda a imagem.

    Observe que ter mais bits para seu ADC é melhor porque você pode minimizar o ruído de quantização de transformar seu sinal contínuo em valores discretos digitalizados. Para calcular quantos bits você precisa para retenção de ~ 96% do SNR de entrada, use N = SNR (em dB) / 6 como regra geral. No entanto, você também deseja manter sua carteira em mente: se quiser mais bits, você precisa estar disposto a desembolsar mais dinheiro

  • Ruído e interferência (ruído = artefatos aleatórios que tornam seus sinais irregulares em vez de suaves vs interferência = não aleatórios, artefatos sinusoidais de sinais adjacentes de ondas de rádio, etc.) afetam todos os sinais medidos na vida cotidiana.

    • O mais famoso é a interferência de 60 Hz (50 Hz se você estiver na Europa e nenhum na Rússia porque eles usam DC em vez de AC para a energia da tomada …), que é chamada de frequência da rede elétrica dos campos eletromagnéticos CA das tomadas. As linhas de energia conduzem a alta tensão CA de geradores elétricos para áreas residenciais, onde os transformadores reduzem a tensão para o padrão ~ 120 V nas tomadas elétricas americanas. A tensão alternada leva a esse banho constante de interferência de 60 Hz em nosso entorno, que interfere em todos os tipos de sinais e precisa ser filtrada.
    • A interferência de 60 Hz é comumente chamada de interferência de modo comum porque aparece em ambas as entradas (+ e -) para amplificadores operacionais. Agora, os amplificadores operacionais têm algo chamado de taxa de rejeição de modo comum (CMRR) para reduzir artefatos de modo comum, mas (corrija-me se eu estiver errado!) Isso é bom principalmente para ruídos de modo comum (aleatório: ruído em vez de não aleatório: interferência). Para se livrar de 60 Hz, filtros de parada de banda podem ser usados para removê-lo seletivamente do espectro de frequência, mas você também corre o risco de remover dados reais. Na melhor das hipóteses, você pode usar um filtro passa-baixas para manter apenas uma faixa de frequências inferior a 60 Hz, de forma que tudo com frequências mais altas seja filtrado. Isso é o que eu fiz para o EOG: a largura de banda esperada do meu sinal era de 0-10 Hz (negligenciando os movimentos rápidos dos olhos - não queria lidar com isso em nossa versão simplificada), então removi frequências maiores que 10 Hz com um filtro passa-baixo.

      • 60 Hz pode corromper nossos sinais por meio de acoplamento capacitivo e acoplamento indutivo. O acoplamento capacitivo (leia sobre os capacitores aqui) ocorre quando o ar atua como um dielétrico para que os sinais CA sejam conduzidos entre os circuitos adjacentes. O acoplamento indutivo vem da lei de Faraday, conforme você executa a corrente em um campo magnético. Existem muitos truques para superar o acoplamento: você pode usar um escudo aterrado como uma espécie de gaiola de Faraday, por exemplo. A torção / trança dos fios quando possível diminui a área disponível para o acoplamento indutivo interferir. Encurtar os fios e diminuir o tamanho geral do circuito também tem o mesmo efeito pelo mesmo motivo. Contar com a energia da bateria para rails do amplificador operacional em vez de conectar a uma tomada também ajuda, porque as baterias fornecem uma fonte CC sem oscilação senoidal. Leia muito mais aqui!
      • Os filtros passa-baixas também eliminam muito ruído, uma vez que o ruído aleatório é representado por altas frequências. Muitos ruídos são ruído branco, o que significa que o ruído está presente para todas as frequências, portanto, limitar a largura de banda do sinal tanto quanto possível ajuda a limitar a quantidade desse ruído presente no sinal.

        Alguns filtros passa-baixas são chamados de filtros anti-aliasing porque evitam o aliasing: quando as sinusóides são sub amostradas, elas podem ser detectadas como uma frequência diferente do que realmente são. Você deve sempre se lembrar de seguir o teorema de amostragem de Nyquist (sinais de amostragem em frequência 2x mais alta: é necessária uma frequência de amostragem de> 2 Hz para uma onda senoidal esperada de 1 Hz, etc). Neste caso de EOG, eu não precisei me preocupar com Nyquist porque meu sinal deveria estar principalmente na faixa de 10 Hz, e meu Arduino ADC amostras em 10 kHz - mais do que rápido o suficiente para capturar tudo

    • Existem também pequenos truques para se livrar do ruído. Uma é usar um aterramento em estrela para que todas as partes de seus circuitos tenham exatamente a mesma referência. Caso contrário, o que uma parte chama de "aterramento" pode ser diferente de outra parte devido à ligeira resistência dos fios, o que resulta em inconsistências. Soldar no protoboard em vez de colar nas placas de ensaio também reduz alguns ruídos e cria conexões seguras nas quais você pode confiar, em oposição à inserção de encaixe por pressão.

Existem muitas outras maneiras de suprimir ruídos e interferências (veja aqui e aqui), mas você pode fazer uma aula sobre isso ou no Google para obter mais informações: vamos passar para o circuito real!

Etapa 4: Como funciona o circuito

Como funciona o circuito
Como funciona o circuito

Não se deixe intimidar pelo diagrama de circuito: aqui está uma análise aproximada de como tudo funciona: (consulte a etapa anterior para obter algumas explicações também)

  • Na extrema esquerda, temos os eletrodos. Um é colocado na têmpora esquerda, outro na têmpora direita e o terceiro eletrodo é aterrado na testa. Esse aterramento estabiliza o sinal para que haja menos desvio e também elimina parte da interferência de 60Hz.
  • O próximo é o amplificador de instrumentação. Volte duas etapas para obter uma explicação do que isso faz para gerar a diferença de voltagem. A equação para alterar o ganho do amplificador está na página 7 da planilha de dados [G = 1+ (50kOhm / Rg) onde Rg está conectado nos pinos 1 e 8 do amplificador]. Para o meu circuito, ajustei para um ganho de 500 usando Rg = 100Ohm.
  • Depois que o amplificador de instrumentação produz a diferença de tensão amplificada 500x, há um filtro passa-baixo RC de primeira ordem, que consiste em um resistor R_filter e um capacitor C_filter. O filtro passa-baixo evita o anti-aliasing (embora não seja uma preocupação para mim porque, por Nyquist, eu preciso amostrar pelo menos 20 Hz para uma largura de banda esperada de 10 Hz e o Arduino ADC faz a amostragem em 10 kHz - mais do que suficiente) e também elimina o ruído em todas as frequências que eu não preciso. O sistema RC funciona porque os capacitores permitem altas frequências facilmente, mas obstruem as frequências mais baixas (impedância Z = 1 / (2 * pi * f)), e criar um divisor de tensão com a tensão através do capacitor resulta em um filtro que permite apenas frequências mais baixas por meio de [corte para intensidade de 3dB é governado pela fórmula f_c = 1 / (2 * pi * RC)]. Eu ajustei os valores R e C do meu filtro para cortar sinais maiores que ~ 10 Hz porque o sinal biológico para EOGs é esperado nessa faixa. Originalmente eu cortei após 20 Hz, mas após a experimentação 10 Hz funcionou tão bem, então optei por uma largura de banda menor (largura de banda menor é melhor cortar qualquer coisa desnecessária, apenas no caso).
  • Com esse sinal filtrado, medi a saída com um osciloscópio para ver minha faixa de valores olhando para a esquerda e para a direita (os dois extremos de minha faixa). Isso me levou a cerca de 2-4 V (porque o ganho do amplificador de instrumentação foi 500x para faixa de ~ 4-8 mV), quando meu alvo é 5 V (faixa completa do Arduino ADC). Essa faixa variava muito (com base em quão bem a pessoa lavou a pele antes, etc), então eu não queria ter tanto ganho com meu segundo amplificador não inversor. Acabei ajustando para ter um ganho de apenas cerca de 1,3 (ajuste R1 e R2 no circuito porque ganho do amplificador = 1 + R2 / R1). Você precisará definir o escopo de sua própria saída e ajustar a partir daí para não ultrapassar os 5V! Não use apenas os valores do meu resistor.
  • Este sinal agora pode ser alimentado no pino analógico do Arduino para leitura, MAS o ADC do Arduino não aceita entradas negativas! Você precisará aumentar o sinal para que a faixa seja de 0-5 V em oposição a -2,5 V a 2,5 V. Uma maneira de consertar isso é conectar o aterramento da placa de circuito ao pino de 3,3 V do Arduino: isso aumenta o sinal em 3,3 V (mais de 2,5 V ideal, mas funciona). Meu intervalo estava realmente instável, então projetei uma tensão de deslocamento variável: dessa forma, eu poderia girar o potenciômetro para centralizar o intervalo em 0-5V. É essencialmente um divisor de tensão variável usando os barramentos de alimentação de +/- 9 V para que eu pudesse conectar o aterramento do circuito a qualquer valor de -9 a 9 V e, assim, mudar meu sinal para cima ou para baixo em 9 V.

Etapa 5: Seleção de componentes e valores

Seleção de componentes e valores
Seleção de componentes e valores

Com o circuito explicado, como escolhemos qual (eletrodo, amplificador operacional) usar?

  • Como um sensor, os eletrodos de gel sólido têm alta impedância de entrada e baixa impedância de saída: o que isso significa essencialmente é que a corrente pode passar facilmente a jusante para o resto do circuito (baixa impedância de saída), mas teria problemas para passar a montante de volta para suas têmporas (alta impedância de entrada). Isso evita que o usuário seja ferido por altas correntes ou tensões no resto do circuito; na verdade, muitos sistemas têm algo chamado resistor de proteção do paciente para proteção adicional, apenas para garantir.

    • Existem muitos tipos diferentes de eletrodos. A maioria das pessoas sugere eletrodos de gel sólido Ag / AgCl para uso em aplicações de EKG / EOG / etc. Com isso em mente, você precisa pesquisar a resistência da fonte desses eletrodos (volte duas etapas para ver minhas notas sobre a impedância da pele) e combiná-la com a resistência ao ruído (tensão de ruído em V / sqrt (Hz) dividido pela corrente de ruído em A / sqrt (Hz) - veja as folhas de dados dos amplificadores operacionais) de seus amplificadores operacionais - é assim que você escolhe o amplificador de instrumentação correto para o seu dispositivo. Isso é chamado de correspondência de ruído, e explicações de por que a resistência de fonte Rs funciona com a resistência de ruído Rn podem ser encontradas online como aqui. Para o meu INA111 que escolhi, o Rn pode ser calculado usando a tensão de ruído e a corrente de ruído da folha de dados (captura de tela acima).

      • Existem MUITOS artigos avaliando o desempenho do eletrodo, e nenhum eletrodo é o melhor para todos os fins: tente aqui, por exemplo. A impedância também muda para diferentes larguras de banda, conforme refletido nas planilhas de dados do amplificador operacional (algumas planilhas de dados terão curvas ou tabelas em frequências diferentes). Faça sua pesquisa, mas lembre-se de manter sua carteira em mente. É bom saber quais eletrodos / amplificadores operacionais são melhores, mas não adianta se você não puder pagar. Você precisará de aproximadamente 50 eletrodos pelo menos para o teste, não apenas 3 para um uso único.

        • Para uma combinação ideal de ruído, não deve apenas Rn ~ = Rs: você também deseja que a tensão de ruído * a corrente de ruído (Pn) seja o mais baixa possível. Isso é considerado mais importante do que fazer Rn ~ = Rs porque você pode ajustar Rs e Rn usando transformadores, se necessário.

          Advertências com transformadores (corrija-me se estiver errado): eles podem ser um pouco volumosos e, portanto, não são ideais para dispositivos que precisam ser pequenos. Eles também acumulam calor, portanto, dissipadores de calor ou ventilação excelente são necessários

        • Correspondência de ruído apenas para seu primeiro amplificador inicial; o segundo amplificador não afeta tanto, então qualquer amplificador operacional fará.

Etapa 6: Construindo o Circuito

Construindo o Circuito
Construindo o Circuito
Construindo o Circuito
Construindo o Circuito
Construindo o Circuito
Construindo o Circuito

Use o diagrama fritzing acima para construir o circuito (a segunda cópia descreve a que cada parte se refere no diagrama de circuito da etapa anterior). Se precisar de ajuda para identificar os LEDs no diagrama, use esta calculadora de código de cores do resistor, mas o Rg do amplificador de instrumentação é 100Ohm, o R_filter é 1,5MOhm, o C_filter é 0,1uF, R1 do amplificador não inversor é 10kOhm, R2 é 33kOhm, e o resistor para o potenciômetro é 1kOhm (o potenciômetro varia de 0 a 20kOhm). Lembre-se de alterar os valores do resistor conforme necessário para ajustar os ganhos!

Editar: há um erro na parte do solo deslocada. Exclua o fio preto esquerdo. O resistor deve ser conectado com o fio vermelho ao barramento de alimentação conforme mostrado, mas também ao segundo pino, não o primeiro, do potenciômetro. O primeiro pino do potenciômetro deve ser conectado ao pino 5V do Arduino. O fio laranja que é o terra deslocado deve ser conectado ao segundo pino, não ao primeiro.

Discuti muito o campo de compensação. No diagrama, você pode ver que o aterramento do Arduino é mostrado como conectado ao aterramento da placa de ensaio. É nesse cenário que você não precisa mudar de terreno. Se o seu sinal estiver fora do alcance e você precisar mudar o seu solo, primeiro tente conectar o aterramento do Arduino ao pino de 3,3 V do Arduino e visualize o seu sinal. Caso contrário, tente conectar o fio laranja na configuração do potenciômetro (terra compensada) ao pino GND do Arduino.

NOTA DE SEGURANÇA: NÃO guarde as baterias durante a soldagem e NÃO coloque ou solde as baterias ao contrário. Seu circuito começará a soltar fumaça, os capacitores explodirão e a placa de ensaio pode ser danificada também. Como regra geral, use as baterias apenas quando quiser usar o circuito; caso contrário, retire-os (adicionar um interruptor para desconectar facilmente as baterias também seria uma boa ideia).

Observe que você deve construir o circuito peça por peça (verifique cada estágio!) E em uma placa de ensaio antes de soldar a um protoboard. O primeiro estágio a verificar é o amplificador de instrumentação: conecte todos os trilhos (solda nos porta-baterias), Rg, etc. e use um osciloscópio no pino de saída. Para começar, use um gerador de função com uma onda senoidal de 1 Hz com amplitude de 5 mV (ou o mais baixo que seu gerador irá atingir). Isso é apenas para verificar se o amplificador de instrumentação está funcionando corretamente e seu Rg está fornecendo o ganho desejado.

Em seguida, verifique seu filtro passa-baixo. Adicione essa parte do circuito e verifique sua forma de onda: ela deve ser exatamente igual, mas com menos ruído (irregular - veja as duas últimas imagens acima). Vamos testar sua saída final com um osciloscópio com seus eletrodos em vez de um gerador de função agora …

Etapa 7: Teste de Circuito com um Humano

Circuito de teste com um humano
Circuito de teste com um humano
Circuito de teste com um humano
Circuito de teste com um humano
Circuito de teste com um humano
Circuito de teste com um humano

Novamente, coloque eletrodos em suas têmporas esquerda e direita e prenda um fio terra a um eletrodo em sua testa. Só depois disso você deve adicionar as baterias - se ocorrer algum formigamento, remova IMEDIATAMENTE e verifique as conexões !!! Agora verifique sua faixa de valores ao olhar para a esquerda e para a direita e ajuste R1 / R2 do amplificador não-inversor, conforme explicado há duas etapas - lembre-se de que o alvo é uma faixa de 5V! Veja as fotos acima para obter notas sobre o que procurar.

Quando estiver satisfeito com todos os valores do resistor, solde tudo em um protoboard. Soldar não é estritamente necessário, mas fornece mais estabilidade em relação a juntas simples de encaixe por pressão e remove a incerteza do circuito não funcionar simplesmente porque você não os pressionou em uma placa de ensaio com força suficiente.

Etapa 8: Código Arduino

Todo o código anexado na parte inferior desta etapa!

Agora que você tem uma faixa de 5 V, você precisa ter certeza de que cai entre 0-5 V em vez de -1 V a 4 V, etc. Conecte o aterramento ao pino de 3,3 V do Arduino ou conecte a tensão de aterramento compensada (fio laranja acima) ao trilho de aterramento e, em seguida, conecte um fio do trilho de aterramento ao pino GND do Arduino (isso é para mudar o sinal para cima ou para baixo para que você fique na faixa de 0-5 V). Você terá que brincar: não se esqueça de avaliar sua produção sempre que tiver dúvidas!

Agora, para a calibração: você deseja que a luz mude de cor para diferentes posições dos olhos (olhando para a extrema esquerda vs. não tão distante para a esquerda..). Para isso, você precisa de valores e intervalos: execute EOG-calibração-numbers.ino no Arduino com tudo conectado corretamente (finalize as conexões com o Arduino e o neopixel de acordo com meu diagrama fritzing). Não é super necessário, mas também execute o código bioe.py que tenho - isso gerará um arquivo de texto em sua área de trabalho para que você possa registrar todos os valores conforme olha para a esquerda ou para a direita (o código python foi adaptado deste exemplo). Como fiz isso, olhei para a esquerda por 8 batidas, depois para a direita, depois para cima, para baixo e repita para calcular a média mais tarde (consulte output_2.pdf para um registro que mantive). Pressione ctrl + C para forçar o encerramento quando estiver satisfeito. Usando esses valores, você pode ajustar os intervalos das animações em meu código BioE101_EOG-neopixel.ino. Para mim, eu tinha uma animação de arco-íris quando olhei para frente, azul para extrema esquerda, verde para leve esquerda, roxo para leve direita e vermelho para extrema direita.

Etapa 9: Etapas Futuras

Voila; algo que você pode controlar apenas com os olhos. Há muito o que otimizar antes que ele chegue ao hospital, mas isso fica para outro dia: os conceitos básicos estão pelo menos mais fáceis de entender agora. Uma coisa que eu gostaria de voltar e mudar é ajustar meu ganho para 500 para o amplificador de instrumentação: olhando para trás, isso provavelmente foi demais porque meu sinal depois já era de 2-4V e eu tive dificuldade em usar o não-inversor amplificador para ajustar meu alcance perfeitamente …

É difícil obter consistência porque o sinal muda MUITO para diferentes condições:

  • Pessoas diferentes
  • condições de iluminação
  • preparação da pele (géis, lavagem, etc)

mas, mesmo assim, estou bastante satisfeito com a minha prova final de desempenho em vídeo (tirada às 3 da manhã porque é quando tudo começa a funcionar magicamente).

Eu sei que muito deste tutorial pode parecer confuso (sim, a curva de aprendizado foi difícil para mim também), então fique à vontade para fazer as perguntas abaixo e eu farei o meu melhor para responder. Aproveitar!

Desafio Intocável
Desafio Intocável
Desafio Intocável
Desafio Intocável

Vice-campeão no Desafio Intocável

Recomendado: