Você está na página 1de 5

Umm onitordebatiment toscarda acoscomoArduino o

Um Monit M tor d de atim mento os ba ca arda acos s co om o Ard duin no


Par rte 1: Ve endo os s pulsos

Hardw ware
Nosso pro ottipo foi m montado num ma pequena placa p perfur rada de 3,5 x 5,5 cm para ser en ncaixada so obre o Ardu uino como um shield d. Veja a figu ura 1. Os componen ntes so inte erligados co om pequenos fios no lado o da solda da d placa.

Joo o Alexand dre da Silv veira

A Eletronica nos permite cr riar aparelh hos so de fato extenses e de d nossos que s senti idos, como aqueles a que e so capaze es de capta ar certos sin nais fisiolg gicos que norm malmente so omos incapa azes de sent -los. Uma a vez captad dos por algu um tipo de senso or esses sina ais podem ser s amplific cados e dig gitalizados, depois d pode em ser alter rados e at mesmo con ntrolados co om alguma form ma de feedba ack. Um des sses sinais fisiol lgicos o nmero de batimentos do nosso o corao. Emoes E fo ortes como r raiva e exc citao caus sam um aum mento da tax xa de batim mentos do corao hum mano. Outras s emo es como tristeza t e pe esar fazem e essa taxa diminuir. Meditao, M contempla c o e outro os estados mentais m tamb bem mexem m com essa taxa. Com C a ajuda a do Arduin no e um a amplificador r de alto gan nho com se ensor tico o podemos monitorar m nossa taxa de e batim mentos card dacos na tela do nosso PC. Fica fcil assim montar um m instrument to que p pode ser usa ado para exp perincias c com contr role de stres ss, respira o, relaxam mento e biof ofeedback.

Figura 1: monitor de batime entos

Nesse pro ojeto utilizam mos o par de d amplificad dores opera acionais den ntro do LM358N. O circuito com mpleto est na figura 3, e um projeto por ns adaptado para o Arduino a partir de um circuito originalmente publica ado pela rev vista lektor em 20 008, sob o ttulo t inglesa El Stress-O-Meter. Es sse tipo de monitor m de batimento os cardacos s uma vari iante de um aparelho mdico-hosp m pitalar cham mado pletismg grafo, que s serve para medir m (e registrar) variaes n no volume de d um orgo com mo resultado o de flutua es rtmicas da d circulao o do sangue e pelo corpo hum mano. Norm malmente ne esse tipo de aparelho essas e flutua es so captadas por um sensor r tico posic cionado em m um lado do lbulo de uma ore elha, ou um lado da ponta de um u dos dedo os, e com a fonte de
1

Umm onitordebatiment toscarda acoscomoArduino o

luz a alinhada no lado oposto o. Difer rentemente, , nosso apar relho mede as pulsa aes no flu uxo de sangu ue na ponta a do dedo o de uma das mos do experimenta e ador com o sensor e a fonte de lu uz colocado os num mesmo pla ano e montados numa c caixa rada do amp plificador. Veja V a figur ra 2 separ abaix xo. Em noss so prottipo o usamos co omo senso or de pulsa es um LD DR comum c com uma resistencia de 1 Mohm m sem nenhu uma luz in ncidente, e 400 ohms com c inciden ncia de lu uz natural di ireta.

contraes do mscu ulo cardaco. Essa informa o vai modu ular a resist ncia do LDR.

Figura 3: 3 montado o no Arduino

Figu ura 2: sens sor na cai ixa

to do monito tor o resistor r R1 limita No circuit a corrente e direta atrav ves de LED D1 em cerca de 20 mA A. O LDR e o resistor R2 R formam um circuit to divisor de tenso cuj ja sada pulsante ser s funo da resistnc cia do LDR R que fun o da luz re refletida pelo dedo do experimen ntador.

Com mo fonte de luz l para o se ensor usam mos um L LED vermel lho comum de 3 mm. O experimentador deve posici ionar o lado o oposto unha de e seu dedo indicador i so obre o LD DR, e a dobr ra entre a po onta e o mei io do dedo o sobre o LE ED. A luz qu ue emitida a pelo LED atrave essa a pele da d dobra e reflet tida pelo os sso sobre um ma pequena a concentrao de e artrias bem em cima do LDR R. O volume e de sangue nesse grupo o de artri ias pulsa em m sintonia com c as

Figura 4

Umm onitordebatiment toscarda acoscomoArduino o

Esses pulsos de muito baixa a frequencia a, entre e 1 e 2 hertz z, seguem pa ara um filtro o passa a-altas form mado por C1 1 e R3 e ampl lificado pelo o primeiro opAmp o do L LM358N N na configu urao no-inversor co om ganh ho de 120. C2 C e R5 form mam um filt tro passa a-baixas cen ntrado em 1,5 Hz. Essa a frequ uencia corre esponde a 90 pulsos po or minu uto, que a metade da frequencia f maxi ima do cora ao humano. O poten nciometro P1, P que a resistencia r d de carga a do primeir ro amplifica ador, contro ola a entra ada do segun ndo opAmp p tambem n o-

inversor com c ganho d de 560. Aqu ui o sinal modulado o com os bat timentos do o corao do experim mentador po ode ser entr regue para tratamento o ao Arduin no no pino digital d 2. O LED2 ser programa ado para pisc car com os batimento os cardacos s. Sugerimos ao leitor p primeiro mo ontar o conjunto fonte f de luz z/sensor. Par ra o nosso prottipo montamos e esse conjun nto em uma c plstic ca de 3x4x1 cm, como pequena caixa na figura 2. 2 Nessa cai aixa foi mon ntada a pequena placa p perfur rada com o LED L

ura 3: circ cuito do monitor de batiment tos cardacos Figu

Lista a de compon nentes mo onitor de batim mentos card diacos com o Arduino R1 e R10 Re esistor 270 ohms o x 1/8W W R2 Re esistor 39K ohms o x 1/8W W R3 e R6 Re esistor 68K ohms o x 1/8W W R4 Re esistor 8K2 ohms o x 1/8W W R5 Re esistor 1M ohms x 1/8W W Re esistor 560K K ohms x 1/8 8W R7 R8 Re esistor 1K ohms x 1/8W W Re esistor 1K8 ohms o x 1/8W W R9 P1 Po otenciometro 10K linea r Led vermelho 3 mm LED1 1e LED2 2 LDR LD DR S1 Ch have miniatu ura 1/0 C1 e C3 Ca apacitor 1uF F x 25V C2 e C4 Ca apacitor 100 0nF CI1 LM M-358N dual opamp os Pla aca CI perfu urao padr ro Outro Bo orne 3 pinos s parafuso

vermelho de 3 mm e seu resistor r de 270 ohms e o LDR L e seu r resistor de 39 3 Kohms. A distanci ia entre os c centros do LED L e do LDR cer rca de 1,0 c cm. Da caixa saem tres fios: o de +5 volts, o de sada do o divisor de tenso e o comum a e esses dois, o terra. O fio de sad da do diviso or de tenso o vai para o capacitor C1 na entra ada do prim meiro amplificad dor pelo bor rne B1.

UmmonitordebatimentoscardacoscomoArduino

Software
Depois de conferir mais de uma vez toda a fiao, encaixe o shield no seu Arduino, conecte o sensor e depois o cabo USB no seu PC. Para ver os batimentos cardacos de uma pessoa carregue no seu Arduino o sketch da listagem 1.

especificado em que a interrupo ocorrer, que poder ser de quatro modos: CHANGE, na mudana do nvel no pino; LOW, quando o pino for baixo; RISING, quando o pino mudar de baixo para alto; ou FALLING, quando o pino mudar de alto para baixo. Nesse sketch toda vez que o nvel lgico no pino digital 2 mudar, a funo pulse( ) ser chamada, e esta vai somente complementar (mudar o estado da) a varivel state. A varivel state vai mudar de acordo com os batimentos do corao do experimentador e fazer o LED2 acender ou apagar conforme seu estado na funo digitalWrite( ) Para testar o circuito basta voc repousar a ponta de seu dedo indicador sobre o sensor e girar o cursor do potenciometro P1 para o mnimo ganho at o LED no pino 3 apagar. Depois v aumentando o ganho at que o LED comece a piscar com os batimentos do seu corao. Depois de algum treino pressionando mais ou menos o dedo sobre o sensor possvel achar o ponto timo para ver o LED piscar regularmente. O ajuste fino feito com o potenciometro. Podemos enviar nossos batimentos cardacos pela porta serial para o PC e ver no terminal do Windows ou do Arduino sua forma digital como uma combinao de traos horizontais com caracteres ASCII 95 e 45. Para isso acrescente ao sketch acima uma linha para iniciar a porta serial em 9600 bps e os comandos if que testam a varivel state; se esta for falsa o caracter 45 ser enviado para o terminal serial com a funo Serial.write( ); se state for verdadeira o caracter 95 ser enviado. Veja a listagem 2 e a forma dos pulsos na figura 5 abaixo. As pausas de 10 ms entre as
4

Listagem 1 / monitor batimentos cardacos


int pinLed = 3; volatile int state = 0; void setup(){ pinMode(pinLed, OUTPUT); attachInterrupt(0, pulse, CHANGE); } void loop(){ digitalWrite(pinLed, state); } void pulse(){ state = !state; }

Esse sketch configura o pino digital 3 como sada para LED2 no circuito, e o pino digital 2 como entrada de interrupo para a funo attachInterrupt( ) que chama a funo pulse( ) toda vez que uma interrupo externa ocorrer nesse pino. A funo attachInterrupt( ) requer tres parmetros e sua sintaxe a seguinte:
attachInterrupt(pino, funo, modo);

O primeiro parametro pino e dever ser 0 para o pino digital 2, ou 1 para o pino digital 3 do Arduino; o segundo funo e se refere funo que ser chamada quando a interrupo ocorrer; o ltimo parmetro modo define o momento em relao ao sinal no pino digital

Umm onitordebatiment toscarda acoscomoArduino o

trans smisses evi itam a sobre ecarga do b buffer da po orta serial.

e muito pa arecida com m a do Ardu uino, a linguagem m Processing ng.

Listag gem 2 / monitor batiment tos cardacos s


int pinLed = 3; volatile int state = 0; void setup(){ pin nMode(pinLed d, OUTPUT); att tachInterrupt(0 0, pulse, CHAN NGE); erial.begin(960 00); Se } d loop(){ void digitalWrite(pinLe ed, state); state) Serial.w write(45); if(!s dela ay(10); if(st tate)Serial.wri ite(95); dela ay(10); } void d pulse(){ stat te = !state; }

Figu ura 5: os pulsos p do batimento o card daco

Na se egunda part te desse arti igo vamos visua alizar melho or esses pulsos cardaco os agora a digitalizad dos numa in nterface gr fica na te ela do seu PC C usando al lguns pouco os coma andos de um ma linguage em open sou urce