Elektronik bilgisi az olanlar için sade rehber

Kendi EKG cihazınızı adım adım kurun.

Kolay EKG; AD8232 EKG modülü, Arduino Nano ve klasik Bluetooth modülü ile çalışan, Android telefona kablosuz EKG sinyali gönderen eğitim ve araştırma amaçlı bir projedir.

  • Android uygulaması
  • Windows EKG okuyucu
  • Arduino sketch
  • Parça listesi ve bağlantı şeması
Kolay EKG cihaz kutusu, elektrot kabloları ve Android telefonda kayıt ekranı örneği
Kolay EKG cihazı ve Android kayıt ekranı örneği.
Önemli tıbbi ve elektriksel güvenlik uyarısı Bu cihaz tıbbi tanı cihazı değildir. Elektrotlar vücuda bağlıyken Arduino’yu USB’ye, bilgisayara, prize, adaptöre veya şarj cihazına bağlamayın. Kurulum ve kullanım sorumluluğu kullanıcıya aittir.

EKG nedir, bu proje ne yapar?

EKG, kalbin elektriksel aktivitesini kaydetmeye yarar. Çarpıntı veya düzensiz kalp atımı gibi yakınmalar sırasında alınan kayıtlar, ritim hakkında hekime fikir verebilir. Kolay EKG projesi bu kaydı deneysel olarak evde veya eğitim ortamında almayı hedefler; yorum ve tanı hekime aittir.

1

Elektrotlar sinyali alır

Cilde yapışan elektrotlar kalbin çok küçük elektriksel değişimini algılar.

2

AD8232 ve Arduino işler

AD8232 sinyali düzenler. Arduino Nano bu analog sinyali sayısal veriye çevirir.

3

Bluetooth telefona gönderir

HC-05/HC-06 tipi Bluetooth modülü veriyi Android uygulamasına kablosuz aktarır.

Elektrotlardan gelen sinyalin EKG modülü, Arduino ve Bluetooth üzerinden Android telefona aktarılmasını gösteren şema
Basit akış: elektrot → EKG modülü → Arduino → Bluetooth → Android telefon.

Gerekli parçalar

Parçaları satın alırken ürün üzerindeki pin adlarını kontrol edin. Renkler ve yerleşim üreticiye göre değişebilir; bağlantı yaparken renkten çok pin adını esas alın.

A

AD8232 EKG modülü

EKG sinyalini almaya yarayan kırmızı modül. Üzerinde genellikle RA, LA, RL, OUTPUT, 3.3V ve GND pinleri bulunur.

B

Arduino Nano

EKG modülünden gelen analog veriyi okur ve Bluetooth modülüne seri veri gönderir.

C

HC-05/HC-06 Bluetooth

Arduino’dan gelen veriyi Android telefona kablosuz iletir. Modül üzerinde Vcc, GND, TX ve RX pinlerini bulun.

D

9V pil ve kablo

Cihazı vücuttan izole tutmak için pil ile çalıştırın. Açma-kapama düğmesi kullanılması önerilir.

Tercih edilen ek parçalar

Açma-kapama düğmesi, kutu, jumper kablo, elektrot kablosu ve tek kullanımlık EKG elektrotları kurulumu daha düzenli ve güvenli hale getirir.

Bluetooth modülü, Arduino Nano, AD8232 EKG modülü, standart EKG kabloları ve kutu içine yerleştirilmiş cihaz örneği
Parçalar ve kutu içine yerleştirilmiş cihaz örneği.

Bağlantı tablosu

Bağlantıları önce cihaz kapalıyken yapın. Emin değilseniz bir elektronik teknisyeninden destek alın. Bağlantı tamamlanana ve kutu kapanana kadar elektrotları vücuda takmayın.

Parça üzerindeki pinNereye bağlanır?Sade açıklama
AD8232 OUTPUTArduino A0EKG sinyalinin Arduino’ya girdiği uç.
AD8232 3.3VArduino 3V3EKG modülünün besleme ucu. 5V yerine 3.3V kullanın.
AD8232 GNDArduino GNDOrtak toprak hattı.
Bluetooth VccArduino 5VBluetooth modülünün besleme ucu. Kullandığınız modülün izin verdiği voltajı kontrol edin.
Bluetooth GNDArduino GNDBluetooth ve Arduino’nun ortak toprak hattı.
Bluetooth RXArduino TX1Arduino’dan çıkan verinin Bluetooth’a girdiği hat.
Bluetooth TXArduino RX0Bluetooth’tan Arduino’ya giden hat. Bu projede esas veri yönü Arduino’dan telefona doğrudur.
9V pil +Anahtar üzerinden Arduino VinAçma-kapama düğmesi kullanılırsa pilin artı ucu önce anahtara, sonra Vin pinine gider.
9V pil −Arduino GNDPilin eksi ucu ortak toprak hattına gider.
AD8232, Arduino Nano, Bluetooth modülü, pil ve anahtar arasındaki bağlantı şeması
Bağlantı şeması. Modülünüzdeki pin adları farklı sırada olabilir; sıraya değil pin adına göre bağlayın.

Kurulum: 7 sade adım

Bu bölüm elektronik bilgisi sınırlı kullanıcılar için hazırlanmıştır. Her adımı bitirmeden sonraki adıma geçmeyin.

Parçaları masaya dizin

Arduino Nano, AD8232, Bluetooth modülü, pil kablosu, elektrot kabloları ve jumper kabloları görünür şekilde ayırın. Üzerlerindeki pin adlarını okuyun.

Bağlantıları cihaz kapalıyken yapın

Önce AD8232’yi Arduino’ya, sonra Bluetooth modülünü Arduino’ya, en son pili ve açma-kapama anahtarını bağlayın.

Arduino kodunu yükleyin

Elektrotlar vücuda bağlı değilken Arduino’yu bilgisayara bağlayın. İndirilen kolayekg_arduino_sketch.ino dosyasını Arduino IDE ile açıp Arduino Nano’ya yükleyin.

Cihazı kutuya yerleştirin

Kabloların birbirine değmediğinden, pilin sabit durduğundan ve açma-kapama anahtarının dışarıdan erişilebilir olduğundan emin olun.

Android uygulamasını kurun

Telefonda EcgSmartApp_ver4_4.apk dosyasını açın. Android izin isterse yalnızca bu uygulama için kurulum izni verin.

Bluetooth eşleştirmesi yapın

Cihazı açın. Telefonun Bluetooth ayarlarında HC-05 veya HC-06 cihazını bulun. Gerekirse varsayılan eşleşme kodu olarak 1234 veya 0000 deneyin.

Elektrotları yerleştirip kayıt alın

Elektrotları kılsız, temiz ve kuru cilde yapıştırın. Uygulamayı açıp cihazı seçin ve kayıt ekranını izleyin. Kayıt sırasında mümkün olduğunca hareketsiz durun.

Elektrot yerleşimi

AD8232 kablolarında RA, LA ve RL etiketleri bulunur. Elektrotları yerleştirirken renk yerine bu etiketleri takip edin. Cilt kıllıysa kayıt çok gürültülü olabilir; mümkünse kılsız, temiz ve kuru bölge seçin.

Farklı elektrot yerleşim pozisyonları P1, P2, P3 ve P4
Farklı kayıt pozisyonları. Görselde yüz gizlenmiştir; yayına almadan önce görsel kullanım izninin dosyada bulunması önerilir.

Kayıt kalitesini artırmak için

  • Elektrotları kuru ve temiz cilde yapıştırın.
  • Kablo uçlarını çekiştirmeyin; kabloları sabit tutun.
  • Kayıt sırasında konuşmayın, kolu oynatmayın, cihazı sallamayın.
  • Parazit olursa elektrotları yenileyin ve Bluetooth bağlantısını tekrar kurun.
  • Elektrot çıkar uyarısı veya düz çizgi varsa RA, LA ve RL bağlantılarını kontrol edin.
Tekrar uyarı Elektrotlar vücuttayken cihazı USB’ye veya şarja bağlamayın.

İndirme merkezi

Dosyaları kendi sorumluluğunuzda indirin ve kurun. Kurumsal bilgisayarlarda Windows .exe veya Android .apk dosyalarını kurmadan önce bilgi işlem/güvenlik politikasını kontrol edin.

Android

EcgSmartApp_ver4_4.apk

Android telefonda EKG kaydını görüntülemek için uygulama dosyası.

Dosya: APK APK indir
Windows

ecg_reader_for_windows.exe

Hekimler veya araştırmacılar için EKG kayıtlarını Windows’ta okumaya yönelik uygulama.

Dosya: EXE, yalnızca Windows Windows uygulamasını indir
Arduino

kolayekg_arduino_sketch.ino

Arduino Nano’ya yüklenecek kod. Aynı kod Word dosyası olarak da verildi.

Dosya: INO Arduino kodunu indir
Kaynak

arduino sketch.docx

Arduino kodunun Word formatındaki orijinal taslak dosyası.

Word dosyasını indir

Arduino kodunu kopyalayarak kullanma

Dosya indirmek yerine kodu kopyalayabilirsiniz. Arduino IDE’de yeni sketch açıp yapıştırın, kartı Arduino Nano olarak seçin ve yükleyin.

int value=0;  // analog value
int index=1;
byte sntmsg[6];  // vector to send

/* sntmsg
sntmsg is a 6 bytes vector:
1st byte is always 0xFF and it is used as a check
2nd to 6th bytes contain 4 analog values read form the arduino input A0 and converted into 10 bit numbers:

2nd byte: most significant 8 bits of the 1st analog value
3rd byte: least significant 2 bits of the 1st analog value + most significant 6 bits of the 2nd analog value
4th byte: least significant 4 bits of the 2nd analog value + most significant 4 bits of the 3rd analog value
5th byte: least significant 6 bits of the 3rd analog value + most significant 2 bits of the 4th analog value
6th byte: least significant 8 bits of the 4th analog value
*/

void setup() {
  
 sntmsg[0] = 0xFF;  // byte1: check

Serial.begin(9600); // initialization serial
 
noInterrupts();  // interrupts OFF

//set timer1 interrupt at 600 Hz
  TCCR1A = 0;// set entire TCCR1A register to 0
  TCCR1B = 0;// same for TCCR1B
  TCNT1  = 0;//initialize counter value to 0
  // set compare match register for 1hz increments
  OCR1A = 416; // = [(16*10^6) / (600*64)]- 1    (must be <65536)
  // turn on CTC mode
  TCCR1B |= (1 << WGM12);
  // Set CS10 and CS12 bits for 64 prescaler
  TCCR1B |= (1 << CS11) | (1 << CS10);;  
  // enable timer compare interrupt
  TIMSK1 |= (1 << OCIE1A);

  interrupts();  // interrupts ON

}

ISR(TIMER1_COMPA_vect){ //timer1 interrupt 600Hz 

  // read analog value
  value = analogRead(A0);  // read analog value

 switch (index) {

    case 1:

sntmsg[1]= (byte) (value >> 2); // most significant 8 bits of the 1st analog value
sntmsg[2]= (byte) (value << 6); // least significant 2 bits of the 1st analog value
++index;
      break;

    case 2:
    
//most significant 6 bits of the 2nd analog value
bitWrite(sntmsg[2], 5, bitRead(value, 9));
bitWrite(sntmsg[2], 4, bitRead(value, 8));
bitWrite(sntmsg[2], 3, bitRead(value, 7));
bitWrite(sntmsg[2], 2, bitRead(value, 6));
bitWrite(sntmsg[2], 1, bitRead(value, 5));
bitWrite(sntmsg[2], 0, bitRead(value, 4));

sntmsg[3]= (byte) (value << 4); // least significant 4 bits of the 2nd analog value
++index;    
      break;

    case 3:

// most significant 4 bits of the 3rd analog value
bitWrite(sntmsg[3], 3, bitRead(value, 9));
bitWrite(sntmsg[3], 2, bitRead(value, 8));
bitWrite(sntmsg[3], 1, bitRead(value, 7));
bitWrite(sntmsg[3], 0, bitRead(value, 6));

sntmsg[4]= (byte) (value << 2);  // least significant 6 bits of the 3rd analog value
++index;    
      break;

    case 4:

// most significant 2 bits of the 4th analog value
bitWrite(sntmsg[4], 1, bitRead(value, 9));
bitWrite(sntmsg[4], 0, bitRead(value, 8));

sntmsg[5]= (byte) (value); // least significant 8 bits of the 4th analog value
index=1;    

Serial.write(sntmsg,6);  // send value

      break;

  }  // end switch

}  // end timer1 interrupt 600Hz 


void loop() {
}

Sık karşılaşılan sorunlar

Kurulumda en sık sorunlar yanlış pin bağlantısı, boş pil, gevşek elektrot ve Bluetooth eşleşmesidir.

Bluetooth cihazı telefonda görünmüyor.

Pilin dolu olduğundan ve cihazın açık olduğundan emin olun. Bluetooth modülündeki LED yanıp sönmelidir. Telefonda Bluetooth’u kapatıp açın. Cihaz hâlâ görünmüyorsa Vcc, GND, TX ve RX bağlantılarını kontrol edin.

Uygulamada düz çizgi görüyorum.

AD8232 OUTPUT pininin Arduino A0’a bağlı olduğundan, RA/LA/RL elektrotlarının doğru takıldığından ve elektrotların cilde iyi yapıştığından emin olun.

Çok fazla parazit var.

Kayıt sırasında hareket etmeyin. Elektrotları yenileyin, kabloları sabitleyin, cihazı ve telefonu güçlü elektrikli cihazlardan uzak tutun. Cildi kuru ve temiz hale getirin.

Arduino kodu yüklenmiyor.

Arduino IDE’de kart olarak Arduino Nano’yu ve doğru portu seçin. Bazı klon Nano kartlarda “Old Bootloader” seçeneği gerekebilir. Kod yüklenirken elektrotlar vücuda bağlı olmamalıdır.

Bu kayıtla tanı koyabilir miyim?

Hayır. Bu sistem tıbbi tanı cihazı değildir. Kayıt, hekime danışmak için yardımcı bir deneysel veri olabilir; tanı, tedavi ve acil kararlar için sağlık kuruluşu gerekir.

Proje ekibi

Mevcut uygulamanın yaratılması ve tıbbi olarak test edilmesinde görev alan ekip.

Mariano Ruffo

İtalya

Dr. Evrim Şimşek

Ege Üniversitesi, Türkiye