Este documento descreve um protótipo de equipamento para captação e registro de sinais em MEA (Microelectrode Array) com um único canal. O equipamento inclui um pré-amplificador, amplificador, filtros, conversor A/D e software para comunicação com o PC. O objetivo é fornecer um sistema de baixo custo e código aberto para pesquisa em neurociência.
Livro Vibrações Mecânicas - Rao Singiresu - 4ª Ed.pdf
Amplificador MEA 1 canal: estado atual e perspectivas
1. Equipamento para a captação e
Registro dos sinais em MEA: estado
atual e perspectivasatual e perspectivas
Francisco Fambrini
26/01/2015
2. Proposta deste protótipo de 1 canal
- 1 único canal de amplificador, com ganho ajustável entre 4 e 10.000 vezes
- 1 único canal de amostragem
- Taxa de Amostragem: 1 KHz (usando o MATLAB) ou até 200 KHz (ajustável
por software) usando-se o terminal de comunicação serial Hércules,
disponível gratuitamente em:
http://www.hw-group.com/products/hercules/index_en.html
- Todos os códigos-fonte abertos a todos os participantes (pode-se mexer à
vontade nos códigos). Códigos-fonte bastante simples, devido à presença
de um único canal.
- Um código-fonte para captação e registro de dados escrito em MATLAB,
capaz de registrar quanto tempo for necessário.
4. Pré-Amplificador
• Baseado no circuito integrado INA 333, do fabricante Texas Instruments.
• Ganho ajustável através de um potenciômetro, variando entre 2 e 101 vezes
• Opcionalmente, uma chave fixa o ganho no valor 11 vezes.
• Diagrama do pré-amplificador:
5. Amplificador e Filtros
• Baseado no c.i. TL084 da Texas Inst (4 amplificadores operacionais em 1 só chip).
• Ganho ajustável entre 2 e 101 vezes
• Frequencia de Corte do Filtro Passa-Baixas=2 KHz
• Frequencia de Corte do Filtro Passa-Altas=5 Hz
• Filtros de Primeira Ordem
Gain-Adjust 20k
C2 1n C4 33n
Te
st
Poi
nt
1 G=6 ate 101
G=1,8
+5
V
+5
V
-5V
-5VV3 2,5
V4 2,5
+
Input Signal 1
R2 1M
RG
+
-
V-
Ref
Out
V+
RG
U1 INA333
R1 2,2k
R3 2,2k
C1 1u
R5 100kR6 1k
C2 1n
C3 1u
R7
1M
R8 10k R9 15k
C4 33n
C5
22
0n
R10 100kR11 120k
Output
-
+
+3
2
1
4
11
U2 TL074
-
+
+3
2
1
4
11
U3 TLC074
C6 10n
P1 100k
R4 1k
Fambrini & Saito MEA Amplifier - 1 channel
1 polo - Fc=0,16Hz - High Pass
Filter
Low Pass Filter - 3 order
HeadStage Amplifier - G=1+
100K/Rg
6. Aspecto do Painel Frontal do Amplificador e Pré
Ganho do TL 084
Varia de 2 até 101 Varia de 2 até 101
Ganho do INA333
Ganho ajustável pelo potenciômetro
Ganho fixo = 11
7. Conversor A/D e comunicação USB
- Baseado no Microcontrolador ARM Córtex M4 modelo TM4C123G da Texas Inst.
- Foi utilizada uma placa Launchpad TIVA Stellaris, já faz a comunicação USB (tudo o
necessário). Programável com a Interface “ENERGIA”, semelhante ao Arduino.
- Entrada A0 (canal 0) do conversor AD: pino PE3 da Launchpad
- Conversor AD de 12 bits: 2^12 = 4096
- O sinal varia em números inteiros no intervalo entre 0 e 4095 (“valor lido”)
- Tensão de Referência do Conversor A/D: 3,3 volts
- Resolução do AD = 3300 mV / 4096 = 805,66 uV
- Equação de Conversão para ler a tensão real: Y = 0.8056 . (“valor lido”) [mV]- Equação de Conversão para ler a tensão real: Y = 0.8056 . (“valor lido”) [mV]
8. Software usado para programar a TIVA
• Foi usada a IDE Energia, que permite programar em C++ Wiring, mesma linguagem do
Arduino. Não é a melhor opção para programar. Não otimiza o código ASM gerado.
• A melhor opção seria programar o ARM usando-se linguagem Assembly, habilitar o DMA
(Direct Memory Acess) e carregar os dados em um buffer na memória RAM antes de enviar
por blocos para o PC.
• Assembly: linguagem dificil e trabalhosa, demanda muitas horas de trabalho.
9. Código usado no microcontrolador ARM
void setup() {
// inicia a comunicação serial 9600 bits por segundo:
Serial.begin(9600);
}
// loop infinito:// loop infinito:
void loop() {
// Lê a entrada analógica no pino A0
int sensorValue = analogRead(A0);
// print out the value you read:
Serial.println(sensorValue);
}
10. Características da IDE Energia
• Compilador e IDE são gratuitas: http://energia.nu/download/
Linguagem muito fácil de aprender e usar (C++ Wiring);
Mesma sintaxe e mesmas instruções do Arduino;
Desvantagens:
Código não é otimizado;
Não permite acesso ao DMA (Direct Memory Acess);
Funções são “caixas pretas”: não se tem acesso ao código-fonte dasFunções são “caixas pretas”: não se tem acesso ao código-fonte das
funções “built-in”
12. Amplificador de áudio
• Os sinais provenientes do Amplificador podem ser amplificados por um amplificador de áudio
(opcional) baseado no c.i. TODA 2002 e apilcados a um alto-falante, para se ter uma idéia dos
“barulhos produzidos pelos neurônios”. Pode-se “ouvir os neurônios da MEA” sehouver
interesse em sinais audíveis.
Amplificador de Audio
13. Software de Comunicação com o PC
Foi escrito um script bastante simples em MATLAB:
close all
clear all
clc
SerialPort='COM14'; % Seleciona a Porta USB na qual o Microcontrolador ARM Cortex M4 é conectado
N = 10000; % Numero de Amostras
KeepRunning = 1;
m=zeros(1,N);
while KeepRunning
s = serial(SerialPort);
set(s,'BaudRate',9600);
fopen(s);fopen(s);
KeepRunning = input( 'Digite 0--> Sair 1--> Prosseguir):'); %Permite Finalizar o programa
if(KeepRunning==0) end % encerra o loop de execução
for i = 1:N
datum = fscanf(s, '%s');
fprintf('%sn', datum);
if (length(datum) > 0)
m(i) = str2num(datum);
else
m(i) = 0;
end
end
14. Continuação do Script
% Fecha a Porta Serial
fclose(s);
delete(s);
clear s;
y = 0.8056 * m; %Multiplica pelo valor da Resolução: Res=0.805664 mV, para corrigir a escala
figure(1)
hLine = plot(y(1:end));
ylim([-3000 3000]); % Mede de -3000 mV até + 3000 mV
set(hLine,'YData',y);
title ('Registro de Sinais Eletricos em MEA - Francisco Fambrini')
xlabel('Numero da Amostra')
ylabel(' Tensão em mV');end
15. Problemas com o MATLAB
• Não se consegue sincronismo de dados em velocidades maiores do que 9600 bps
• Leitura muito limitada pela baixa velocidade de execução do Matlab
• Este script permite ler 300.000 amostras, a uma taxa de 1KHz, 5 minutos de gravação, mas
somente a 9600 bps de comunicação serial.
• Não permite mostrar o gráfico na tela em tempo real.
Após o registro dos dados, permite plotar o gráfico, conforme foto abaixo:
16. Outra proposta de software
1) Fazer a comunicação serial em 115200 bps entre a TIVA e o PC via USB
usando-se um programa de comunicação de terminal serial, o programa
Hercules, disponivel gratis em:
http://www.hw-group.com/products/hercules/index_en.html
2) Uma vez recebido os dados, salvar o arquivo LOG gerado;
3) Converter este arquivo.log para o formato TXT usando o bloco de notas,
arquivo.txt
4) Importar este arquivo para o MATLAB
5) Abrir o arquivo no MATLAB, plotar gráficos, realizar FFT, enfim, fazer toda a
análise necessária usando-se o MATLAB
17. Ainda outra proposta de software
Para visualizar o sinal em tempo real, usar softwares de osciloscópio
disponível gratuitamente em:
http://www.oscilloscope-lib.com/
18. Visualizar sinais em tempo real
• Pode-se visualizar sinais em tempo real simplesmente conectando-se
osciloscópios verdadeiros no equipamento, que possui saída própria para
isso: