Manual

do

Maker

.

com

Sensor de batimento cardiaco com Arduino, Digispark, ESP8266 etc

Sensor de batimento cardiaco com Arduino, Digispark, ESP8266 etc

Esse sensor é outro brinquedo interessante para makers. Já há algum tempo que eu queria experimentá-lo e recentemente chegou às minhas mãos através do nosso patrocinador do Mercado Livre. O sensor pode ser adquirido através desse link - e vale a pena, está muito acessível. Se desejar, aproveite para ver outros produtos desse nosso parceiro:

lista

O datasheet, os artigos relacionados e os vendedores deixam claro que você não deve adicionar um Arduino e sair vendendo essa solução em hospitais, porque não tem a precisão e/ou homologação necessária para ser considerado confiável, mas dá pra considerar os valores até pra um detector de mentiras, desde que a vida de uma pessoa não dependa do diagnóstico oferecido por esse sensor. Considere que você pode inserir ruidos, a alimentação pode inserir ruidos, os ruidos podem se auto-inserir etc.

Sensor de batimento cardiaco com Arduino UNO

Se você acompanha o site, já deve ter percebido que sou apaixonado pelo Digispark. Ele é compacto e nesse modelo que que utilizo dispensa cabo de alimentação, pois vai conectado diretamente na porta USB. Com isso, fica fácil fazer wiring e testes na hora, mas não testei com ele nesse tutorial por causa da biblioteca utilizada.

Preparativos

Esse sensor vem com todos os componentes expostos, sem nenhum tipo de emcapsulamento. Por isso, é ideal fazer algum tipo de isolamento na parte traseira, afim de evitar ruidos e estática diretamente sobre os componentes. A maneira mais simples de fazê-lo é utilizando cola quente e algum isolante extra. Por acaso, tenho EVA fino que também estou utilizando em um projeto para um artigo que está a caminho. Tomei um pedaço e recortei mais ou menos do tamanho do sensor, então passei cola quente e os uní. O resultado:

Claro que dá pra fazer muita coisa melhor, mas pelo menos já resolvi o problema de contato com o circuito. Você pode colar também um elástico para prendê-lo ao dedo, ou então colar o sensor diretamente a um velcro em enrolar o velcro no dedo etc.

Wiring

Não tem lá grande mistério para fazer o wiring. Atrás do sensor tem uma marcação. No caso desse que estou usando:

MarromGND da MCU
Vermelho3V3 ou 5V da MCU
LaranjaAnalógico da MCU

No caso do do Digispark, bastaria fazer analogRead(1) para ler o valor no P2. Se desejar maiores detalhes sobre o Digispark, leia esse outro artigo sobre como adicionar o suporte à IDE do Arduino e esse outro com importantes dicas sobre a utilização. A questão é que se desejar utilizá-lo, aí sim vai um trabalhinho de leve, porque pode não funcionar no Digispark, mas o arquivo Timer_Interrupt_Notes.inotem uma implementação de interrupções para o Adafruit Gemma, que também usa um Attiny85, mas hoje estou deveras preguiçoso e não quis testar mexer em código. Bem, na verdade estou escrevendo outro artigo em paralelo e por tratar-se de um projeto maker, estou empregando todo meu esforço (físico) nele.

Código

Não vou reinventar a roda. Tem um belíssimo trabalho pronto dos próprios criadores do sensor que o disponibilizaram no github. Você pode baixar o zip caso esteja utilizando Windows ou então pode clonar o git (eu prefiro fazê-lo):

git clone https://github.com/WorldFamousElectronics/PulseSensor_Amped_Arduino.git

O zip:

wget -c https://github.com/WorldFamousElectronics/PulseSensor_Amped_Arduino/archive/master.zip

O destino do download deve ser colocado no diretório Arduinono seu home ou no diretório Documentos/Arduino no Windows. Se optou pelo zip, descomprima-o no respectivo diretório. Na IDE do Arduino, abra o arquivo PulseSensor_Amped_Arduino.ino. Nesse arquivo você deve definir principalmente os pinos caso use Digispark, mas se usar o Arduino UNO, bastará conectar o sinal ao analógico 0. Lembre-se que se for experimentar com o Digispark, basta trocar a variável relacionada ao A0 do UNO por 1, que lerá o P2 no Digispark. O pino do LED onboard também não é 13 (obviamente);

O blink do pino 13 se refere ao LED onboard do Arduino UNO, o fadePin será outro LED para fazer o fading do batimento cardíaco. Basta implementar o LED, que não é mistério, certo? Em caso de dúvida, coloque um resistor de 330Ohms para um LED de 5mm e pronto.

Se quiser saber mais detalhes sobre as definições de variáveis, basta rolar a página aqui no git até chegar em "Variables to Note".

Serial Plotter

Em Tools, você pode gerar gráfico do batimento utilizando a ferramenta Serial Plotter. Algumas dicas extras a respeito estão disponíveis também no git acima.

Se procura algo realmente elaborado, verifique esse artigo sobre ecg.

Inscreva-se no nosso canal Manual do Maker no YouTube.

Também estamos no Instagram.

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.