Um m onitor de batimenttos cardíaacos com o o Arduino o Um Monit M tor d de atim mento os ba ca ardía acos s Hardw ware Nosso pro otótipo foi m montado num ma pequena placa p perfurrada de 3,5 x 5,5 cm para ser en ncaixada soobre o Ardu uino como um shield d. Veja a figuura 1. Os componen ntes são inteerligados co om pequenos fios no ladoo da solda da d placa. co om o Ard duin no Parrte 1: “Ve endo” os s pulsos João o Alexand dre da Silv veira A Eletronica nos permite crriar aparelhhos e de d nossos que ssão de fato extensões sentiidos, como aqueles a quee são capazees de captaar certos sinnais fisiológ gicos que norm malmente soomos incapaazes de sentíí-los. Umaa vez captaddos por algu um tipo de sensoor esses sinaais podem ser s amplificcados e diggitalizados, depois d podeem ser alterrados e até mesmo conntrolados co om alguma form ma de feedbaack. Um dessses sinais fisiollógicos é o número de batimentos do nossoo coração. Emoções E fo ortes como rraiva e exccitação caussam um aum mento da taxxa de batim mentos do coração hum mano. Outrass emoçções como tristeza t e peesar fazem eessa taxa diminuir. Meditação, M contemplaçã c ão e outroos estados mentais m tamb bem mexem m com essa taxa. Com C a ajudaa do Arduinno e um aamplificadorr de alto gan nho com seensor óticoo podemos monitorar m nossa taxa dee batim mentos carddíacos na tela do nosso PC. Fica fácil assim montar um m instrumentto que ppode ser usaado para exp periências ccom contrrole de stresss, respiraçãão, relaxam mento e biof ofeedback. Figura 1: monitor de batime entos Nesse pro ojeto utilizam mos o par de d amplificad dores operaacionais den ntro do LM-358N. O circuito com mpleto está na figura 3, e é um projeto por nós adaptado para o Arduino a partir de um circuito originalmente publicaado pela rev vista t inglesa Ellektor em 20008, sob o título “Stress-O-Meter”. Essse tipo de monitor m de batimento os cardíacoss é uma variiante de um aparelho médico-hosp m pitalar cham mado pletismóg grafo, que sserve para medir m (e registrar) variações nno volume de d um orgão com mo resultadoo de flutuaçções rítmicas da d circulaçãoo do sanguee pelo corpo hum mano. Norm malmente neesse tipo de aparelho essas e flutuaçções são captadas por um sensorr ótico posiccionado em m um lado do lóbulo de uma oreelha, ou um lado da ponta de um u dos dedoos, e com a fonte de 1 1 Um m onitor de batimenttos cardíaacos com o o Arduino o luz aalinhada no lado oposto o. Diferrentemente,, nosso aparrelho mede as pulsaações no fluuxo de sangu ue na pontaa do dedoo de uma das mãos do experimenta e ador com o sensor e a fonte de lu uz colocadoos num mesmo plaano e montados numa ccaixa V a figurra 2 separrada do ampplificador. Veja abaixxo. Em nossso protótipo o usamos coomo sensoor de pulsaçções um LD DR comum ccom uma resistencia de 1 Mohm m sem nenhuuma luz inncidente, e 400 ohms com c incidenncia de luuz natural diireta. contrações do múscuulo cardíaco. Essa informaçãão vai moduular a resistêência do LDR. Figura 3: 3 montado o no Arduino Figu ura 2: sens sor na caiixa tor o resistorr R1 limita No circuitto do monito a correntee direta atravves de LED D1 em cerca de 20 mA A. O LDR e o resistor R2 R formam um circuitto divisor de tensão cujja saída pulsante será s função da resistênccia do LDR R que é funçção da luz re refletida pelo dedo do experimen ntador. Com mo fonte de luz l para o seensor usam mos um L LED vermellho comum de 3 mm. O experimentador deve posiciionar o ladoo oposto à unha dee seu dedo indicador i soobre o LD DR, e a dobrra entre a po onta e o meiio do dedoo sobre o LE ED. A luz qu ue é emitidaa pelo LED atraveessa a pele da d dobra e é reflettida pelo ossso sobre um ma pequenaa concentração dee artérias bem em cima do LDR R. O volumee de sangue nesse grupoo de artériias pulsa em m sintonia com c as Figura 4 2 2 Um m onitor de batimenttos cardíaacos com o o Arduino o Esses pulsos de muito baixaa frequenciaa, entree 1 e 2 hertzz, seguem paara um filtroo passaa-altas form mado por C1 1 e R3 e é ampllificado peloo primeiro opAmp o do L LM358N N na configuuração não--inversor coom ganhho de 120. C2 C e R5 form mam um filttro passaa-baixas cenntrado em 1,5 Hz. Essaa frequuencia correesponde a 90 pulsos poor minuuto, que é a metade da frequencia f maxiima do coraação humano. O potennciometro P1, P que é a resistencia r dde cargaa do primeirro amplificaador, controola a entraada do segunndo opAmp p tambem nãão- inversor com c ganho dde 560. Aqu ui o sinal modulado o com os battimentos do o coração do experim mentador poode ser entrregue para tratamento o ao Arduinno no pino digital d 2. O LED2 será programaado para pisccar com os batimento os cardíacoss. Sugerimos ao leitor pprimeiro mo ontar o conjunto fonte f de luzz/sensor. Parra o nosso protótipo montamos eesse conjun nto em uma c plásticca de 3x4x1 cm, como pequena caixa na figura 2. 2 Nessa cai aixa foi mon ntada a pequena placa p perfurrada com o LED L ura 3: circ cuito do monitor de batimenttos cardíacos 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 uração padrrão Outro Bo orne 3 pinos s parafuso vermelho de 3 mm e seu resistorr de 270 ohms e o LDR L e seu rresistor de 39 3 Kohms. A distanciia entre os ccentros do LED L e do LDR é cerrca de 1,0 ccm. Da caixa saem tres fios: o de +5 volts, o de saída do o divisor de tensão e o comum a eesses dois, o terra. O fio de saíd da do divisoor de tensão o vai para o capacitor C1 na entraada do prim meiro amplificad dor pelo borrne B1. 3 3 Um monitor de batimentos cardíacos com o Arduino Software Depois de conferir mais de uma vez toda a fiação, encaixe o shield no seu Arduino, conecte o sensor e depois o cabo USB no seu PC. Para ver os batimentos cardíacos de uma pessoa carregue no seu Arduino o sketch da listagem 1. Listagem 1 / monitor batimentos cardíacos 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 saída para LED2 no circuito, e o pino digital 2 como entrada de interrupção para a função attachInterrupt( ) que chama a função pulse( ) toda vez que uma interrupção externa ocorrer nesse pino. A função attachInterrupt( ) requer tres parâmetros e sua sintaxe é a seguinte: attachInterrupt(pino, função, 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 é função e se refere à função que será chamada quando a interrupção ocorrer; o último parâmetro modo define o momento em relação ao sinal no pino digital especificado em que a interrupção ocorrerá, que poderá ser de quatro modos: CHANGE, na mudança do nível 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 nível lógico no pino digital 2 mudar, a função pulse( ) será chamada, e esta vai somente complementar (mudar o estado da) a variável state. A variável state vai mudar de acordo com os batimentos do coração do experimentador e fazer o LED2 acender ou apagar conforme seu estado na função 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 mínimo 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 coração. Depois de algum treino pressionando mais ou menos o dedo sobre o sensor é possível achar o ponto ótimo para ver o LED piscar regularmente. O ajuste fino é feito com o potenciometro. Podemos enviar nossos batimentos cardíacos pela porta serial para o PC e ver no terminal do Windows ou do Arduino sua forma digital como uma combinação de traços 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 variável state; se esta for falsa o caracter 45 será enviado para o terminal serial com a função 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 Um m onitor de batimenttos cardíaacos com o o Arduino o transsmissões eviitam a sobreecarga do bbuffer da poorta serial. e muito paarecida com m a do Ardu uino, a linguagem m Processing ng. Listag gem 2 / monitor batimenttos cardíacoss int pinLed = 3; volatile int state = 0; void setup(){ pin nMode(pinLed d, OUTPUT); atttachInterrupt(0 0, pulse, CHAN NGE); erial.begin(960 00); Se } d loop(){ void digitalWrite(pinLe ed, state); write(45); if(!sstate) Serial.w dela ay(10); if(sttate)Serial.wriite(95); dela ay(10); } void d pulse(){ statte = !state; } Figu ura 5: os pulsos p do batimento o card díaco Na seegunda partte desse artiigo vamos visuaalizar melhoor esses pulsos cardíacoos agoraa digitalizaddos numa in nterface grááfica na teela do seu PC C usando allguns poucoos comaandos de um ma linguageem open souurce 5 5