Índice:

EEG AD8232 Fase 2: 5 etapas (com imagens)
EEG AD8232 Fase 2: 5 etapas (com imagens)

Vídeo: EEG AD8232 Fase 2: 5 etapas (com imagens)

Vídeo: EEG AD8232 Fase 2: 5 etapas (com imagens)
Vídeo: Как проверить генератор. За 3 минуты, БЕЗ ПРИБОРОВ и умений. 2024, Novembro
Anonim
EEG AD8232 Fase 2
EEG AD8232 Fase 2
EEG AD8232 Fase 2
EEG AD8232 Fase 2
EEG AD8232 Fase 2
EEG AD8232 Fase 2

Então, este Lazy Old Geek (L. O. G.) construiu um EEG:

www.instructables.com/id/EEG-AD8232-Phase-…

Parece funcionar bem, mas uma das coisas que não gosto é de estar conectado a um computador. Eu uso isso como desculpa para não fazer nenhum teste. Outra preocupação que tenho é que parece que estou recebendo algum ruído da linha de alimentação CA no meu sinal.

Durante alguns testes anteriores, vi um pico misterioso de 40 Hz que parece desaparecer quando eu desconecto o USB e o executo com bateria. Veja fotos.

De qualquer forma, fiz alguns testes com os módulos Bluetooth HC05 e HC06 e consegui fazê-los funcionar:

www.instructables.com/id/OldMan-and-Blueto…

Como mencionado, colega Instructabler, lingib lançou seu monitor de EEG:

www.instructables.com/id/Mind-Control-3-EE…

Ele escreve um código muito melhor do que eu e também desenvolveu um código de processamento, portanto, este projeto é baseado em seu monitor de EEG. Para a Fase 2, quero fazer um monitor de EEG alimentado por bateria. (Vou tentar entrar no concurso movido a bateria)

Etapa 1: Projetar Módulo Sem Fio

Módulo sem fio de design
Módulo sem fio de design
Módulo sem fio de design
Módulo sem fio de design
Módulo sem fio de design
Módulo sem fio de design

Para o microcontrolador, usarei um Micro Pro de 3,3 V. Este Arduino é um dispositivo de 3,3 V, portanto, é compatível com o AD8232. A versão Sparkfun usa um regulador de tensão MIC5219 de 3,3 V.

Como bateria, usarei uma bateria recarregável velha que por acaso tenho. Esta é uma bateria recarregável de lítio provavelmente projetada para um smartphone.

Conforme discutido mais tarde, descobri que o AliExpress Micro Pro usa um regulador de tensão XC6204 em vez do MIC5219.

Portanto, meu design é um pouco limítrofe. As baterias de lítio são normalmente de 3,5 a 4,2 V, dependendo da carga. O XC6204 alega uma queda típica de 200mV com uma carga de até 100mA. Portanto, o pior cenário possível em carga total com bateria de 3,5 V, a saída do regulador seria de cerca de 3,3 V. Isso deve ser bom, mas esteja ciente dos possíveis problemas.

Outros componentes são o AD8232 modificado da Fase 1 e um HC05 modificado para o módulo Bluetooth de 3,3 V conforme discutido em:

www.instructables.com/id/OldMan-and-Blueto…

Por conveniência, usei Eagle Cadsoft e fiz um PCB usando este método:

www.instructables.com/id/Vinyl-Sticker-PCB…

Arquivos esquemáticos e Eagle são anexados.

Eu medi o consumo de energia: era 58mA. Ao mesmo tempo, eu testei esta bateria para uma capacidade de 1750mA horas, o que dá um tempo de execução de cerca de 30 horas com uma carga.

Para o conector da bateria, usei um conector JST2.0 de 2 pinos para que ele combinasse com o meu Adafruit M4 Express. Muitas dessas baterias têm três contatos, mas basta medir com um multímetro para cerca de 4V e soldar os fios à bateria. Usei cola quente para selar e apoiar a conexão.

AVISO: Alguns conectores JST2.0 têm os fios vermelho e preto invertidos do Adafruit.

Também adicionei um conector JST2.0 a um carregador de bateria de lítio. Ver foto.

Etapa 2: embalagem e esboço

Embalagem e esboço
Embalagem e esboço
Embalagem e esboço
Embalagem e esboço
Embalagem e esboço
Embalagem e esboço

Para ser útil para mim, meu EEG precisa ser portátil. Eu tinha uma bolsinha para outro projeto. Costurei um velcro nas costas. Costurei uma tira de braço com o outro velcro e um pouco de elástico, medido para caber no meu braço. O EEG vai para o bolso e é preso à braçadeira. Veja fotos.

Para tornar a faixa de cabeça mais fácil de usar, (em vez de soldar) peguei um extensor de cabo de áudio de 3,5 mm, cortei uma extremidade e conectei aos sensores da faixa de cabeça e ao aterramento do ouvido. Isso se conectará ao módulo AD8232.

DICA: presumi que o conector seria como um cabo de áudio padrão com o esquerdo na ponta, o direito no meio e o terra inferior. Isso não é correto para o AD8232, então tive que religá-lo, veja a imagem.

O HC05 original tem pinos que saem paralelos ao PCB. Para torná-lo mais plano, endireitei-os para que fiquem em ângulos retos com o PCB, veja a imagem. Embora os pinos desiguais não sejam intencionais, eles fazem uma conexão elétrica melhor.

A próxima foto mostra o EEG wireless montado, a seguir como ele irá para o bolso, que terá velcro para a braçadeira.

Algumas fotos mostram como tudo está conectado.

O esboço do Arduino está anexado, fix_FFT_EEG_wireless.ino

Isso é baseado no código lingib com algumas linhas adicionadas para comunicações HC05.

Etapa 3: Estação Base

Estação base
Estação base
Estação base
Estação base
Estação base
Estação base

Portanto, este EEG Wireless funcionará com um dos meus adaptadores CP2102-HC06 para exibir dados em tempo real em um PC usando Processing de:

www.instructables.com/id/Mind-Control-3-EE…

Meus pensamentos: então as ondas cerebrais representam o que seu cérebro está fazendo. Então, se eu estou olhando para o que minhas ondas cerebrais estão fazendo na tela do computador, o processo de olhar para a tela e pensar sobre ela afetará meu EEG. Então, eu queria a opção de gravar meu EEG sem precisar visualizá-los. Decidi registrar os dados com carimbo de data / hora em um cartão micro SD para que eu possa fazer algumas análises off-line.

O conceito é, por exemplo, se estou testando como algumas batidas binaurais afetam minhas ondas cerebrais, posso anotar quando e quais batidas estou ouvindo e, mais tarde, olhar meus dados de EEG para ver se há alguns efeitos durante e após esse período de tempo.

Isso usará uma estação base, basicamente outro Micro Pro com um HC06 para receber dados do EEG sem fio, um DS3231 RTC para registrar a hora e um adaptador de cartão microSD para salvar os dados com carimbo de data / hora em um cartão microSD. É basicamente como meu termômetro infravermelho:

www.instructables.com/id/IR-Thermometer-fo…

Na verdade, vou deixar a opção de usar um termômetro infravermelho e DHT22 (temperatura e umidade) no PCB.

Aqui estão os principais componentes:

3,3 V Micro Pro Arduino

DS3231 RTC (modificado)

(adição futura de temperatura DHT22 / UR)

HC06

(futura adição MLX90614 IR Temp Sensor)

Adaptador de cartão microSD 5V

Consumo de energia:

Como há muitos sensores anexados a este Micro Pro, vou prestar um pouco de atenção à corrente.

O regulador de tensão do Micro Pro está alimentando todos os sensores.

(O Sparkfun Micro Pro possui um regulador MIC5219 de 3,3 V que pode fornecer 500 mA de corrente.)

O AliExpress 3.3v Micro Pro que comprei aparentemente tem um regulador Torex XC6204B. Isso é sugerido pela marcação que mal consigo ler, mas parece 4B2X.

O 4B significa XC6204B, o 2 significa saída de 3,3V.

Pelo que eu posso dizer, o XC6204B produz no máximo 150mA (muito menos do que o MIC5219 500mA). No entanto.

Não consigo encontrar nenhum dado sobre o consumo de corrente ociosa do 3.3V Micro Pro. Então decidi medir alguns:

3,3 V Pro Micro 11,2 mA

3,3V L. O. G. Binaural bate 20mA

3.3 V sem fio EEG 58mA

A corrente máxima da folha de dados do DS3231 em 3 V é 200uA ou 0,2mA.

A corrente máxima da folha de dados DHT22 é 2,5 mA.

O HC06 é 8,5mA no modo ativo (40mA no modo de emparelhamento)

A folha de dados do MLX90614, não tenho certeza, parece que a corrente máxima é 52mA.

Então, somar todos eles dá cerca de 85mA, o que não é muito menos que 150mA. Mas deve ficar tudo bem.

O adaptador de cartão microSD é alimentado pelo pino RAW 5V.

Anexei um esquema da estação base. O protoboard que estou usando e o esboço a seguir não incluem o termômetro DHT22 ou IR.

Etapa 4: esboço

Esboço
Esboço

Basicamente, o esboço recebe os dados enviados pelo EEG HC05 sem fio através do HC06 vinculado, ele envia os dados pela porta USB no mesmo formato que o EEG sem fio para que possam ser lidos por EEG_Monitor_2 (Processamento) e exibidos.

Ele também obtém a hora e a data do DS3231 RTC e estampa a data e a hora dos dados e os grava em um cartão microSD no formato CSV (valores separados por vírgula).

PROBLEMA1: O EEG sem fio estava enviando dados Bluetooth para meu HC06 a 115, 200 baud. Aparentemente, meu HC06 não consegue se comunicar corretamente nessa velocidade porque estava vendo lixo. Bem, eu brinquei com isso, finalmente consegui fazer funcionar definindo o HC05 e o HC06 para 19, 200 baud.

PROBLEMA2: O horário de verão tem sido um problema para mim. Encontrei o seguinte por JChristensen:

forum.arduino.cc/index.php?topic=96891.0

github.com/JChristensen/Timezone

Para usar isso, primeiro você deve definir o RTC para UTC (Coordinated Universal Time), que é a hora de Greenwich, na Inglaterra. Bem, eu não sabia fazer isso, mas encontrei este artigo:

www.justavapor.com/archives/2482

Reescrito para o horário das montanhas (anexo) UTCtoRTC.ino

Isso configura o DS3231 para o horário UTC, 6 horas depois do horário das montanhas.

Então, incorporei o fuso horário ao meu Sketch. Para ser honesto, eu não testei, apenas presumindo que funcione.

PROBLEMA 3: Um dos problemas com o Bluetooth (e a maioria das outras comunicações seriais) é que ele é assíncrono. Isso significa que você realmente não sabe quando os dados começaram e você pode estar olhando no meio de um fluxo de dados.

Então, o que fiz foi iniciar cada pacote de dados com um '$' e procurar por isso na minha estação base. Uma maneira melhor de fazer isso é chamada de handshaking, em que o remetente envia alguns dados e espera que o destinatário envie uma confirmação de recebimento. Para este propósito, não estou preocupado se perco um pacote de vez em quando.

Sketch está anexado, basecode.ino

Etapa 5: Conclusões

Conclusões
Conclusões
Conclusões
Conclusões

Infelizmente, desde que comecei este projeto, perdi minha capacidade de realmente me concentrar nos projetos. Eu queria fazer alguns testes reais com este EEG, especialmente com batidas binaurais. Talvez algum dia.

Mas acho que forneci informações suficientes para que outros construam este projeto.

Eu estava no processo de desenvolvimento de código de 5 bandas. A ideia era exibir as cinco bandas de ondas cerebrais, delta, teta, alfa, beta e gama. Acho que o esboço da banda base funciona, não acho que o fix_FFT funcione para o Processing, mas anexei-o para aqueles que possam estar interessados.

Recomendado: