Manual
do
Maker
.
com
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:
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.
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.
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.
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:
Marrom | GND da MCU |
Vermelho | 3V3 ou 5V da MCU |
Laranja | Analó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.
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".
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.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.