Arduino: Elettrocardiogramma ECG

Ciao a tutti!

In questo articolo vedremo come misurare l’impulso elettrico generato dal nostro cuore sul nostro computer attraverso Arduino.

NOTA: Questo progetto non è destinato a diagnosticare o curare qualsiasi tipo di condizione.

Che cos’è un ECG?

L’elettrocardiogramma (ECG) è la riproduzione grafica dell’attività elettrica del cuore durante il suo funzionamento, registrata da alcuni elettrodi posti sulla superficie del nostro corpo.

ECG

Materiale necessario:

  • Arduino UNO
  • AD8232
  • 3 Elettrodi
  • Cavi per i collegamenti, Jumper o Cavo con attacco Snap

Per questo progetto utilizzeremo la scheda AD8232 prodotta dalla Sparkfun

12650-01

Questa scheda misura l’attività elettrica del cuore attraverso gli elettrodi collegati al nostro corpo, l’interazione con Arduino e Processing permette infine di visualizzare sul nostro computer l’onda corrispondente all’attività del nostro cuore.

Avremo anche bisogno di almeno 3 elettrodi da elettrocaardiogramma ECG con attacco “snap”:

61x3yx+04VL

Schema di collegamento ad Arduino:

Board Label Pin Function Arduino Connection
GND Ground GND
3.3v 3.3v Power Supply 3.3v
OUTPUT Output Signal A0
LO- Leads-off Detect – 11
LO+ Leads-off Detect + 10
SDN Shutdown Not used

Collegamento elettrodi:

Cable Color Signal
Black RA (Right Arm)
Blue LA (Left Arm)
Red RL (Right Leg)

Schema complessivo:

schema

Adesso passiamo al codice da caricare sul nostro Arduino UNO:

[code lang=”cpp”]
void setup() {
Serial.begin(9600);
pinMode(10, INPUT);
pinMode(11, INPUT);
}

void loop() {
if ((digitalRead(10) == 1) || (digitalRead(11) == 1)) {
Serial.println(‘!’);
}
else {
Serial.println(analogRead(A0));
}
delay(1);
}
[/code]

Infine il codice da far eseguire a Processing:

[code lang=”cpp”]
import processing.serial.*;

Serial myPort;
int xPos = 1;
float height_old = 0;
float height_new = 0;
float inByte = 0;

void setup () {
size(1000, 400);
println(Serial.list());
myPort = new Serial(this, Serial.list()[0], 9600);
myPort.bufferUntil(‘\n’);
background(0xff);
}

void draw () {
}

void serialEvent (Serial myPort) {
String inString = myPort.readStringUntil(‘\n’);

if (inString != null) {
inString = trim(inString);
if (inString.equals("!")) {
stroke(0, 0, 0xff);
inByte = 512;
}
else {
stroke(0xff, 0, 0);
inByte = float(inString);
}
inByte = map(inByte, 0, 1023, 0, height);
height_new = height – inByte;
line(xPos – 1, height_old, xPos, height_new);
height_old = height_new;
if (xPos >= width) {
xPos = 0;
background(0xff);
}
else {
xPos++;
}
}
}
[/code]

Conlclusioni:

Se abbiamo eseguito tutti i collegamenti in modo corretto eseguendo lo sketch di Processing possiamo vedere gli impulsi elettrici del nostro cuore sul nostro PC come in figura:

Screenshot (229)