Elektrotlar sinyali alır
Cilde yapışan elektrotlar kalbin çok küçük elektriksel değişimini algılar.
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.
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.
Cilde yapışan elektrotlar kalbin çok küçük elektriksel değişimini algılar.
AD8232 sinyali düzenler. Arduino Nano bu analog sinyali sayısal veriye çevirir.
HC-05/HC-06 tipi Bluetooth modülü veriyi Android uygulamasına kablosuz aktarır.
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.
EKG sinyalini almaya yarayan kırmızı modül. Üzerinde genellikle RA, LA, RL, OUTPUT, 3.3V ve GND pinleri bulunur.
EKG modülünden gelen analog veriyi okur ve Bluetooth modülüne seri veri gönderir.
Arduino’dan gelen veriyi Android telefona kablosuz iletir. Modül üzerinde Vcc, GND, TX ve RX pinlerini bulun.
Cihazı vücuttan izole tutmak için pil ile çalıştırın. Açma-kapama düğmesi kullanılması önerilir.
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.
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 pin | Nereye bağlanır? | Sade açıklama |
|---|---|---|
| AD8232 OUTPUT | Arduino A0 | EKG sinyalinin Arduino’ya girdiği uç. |
| AD8232 3.3V | Arduino 3V3 | EKG modülünün besleme ucu. 5V yerine 3.3V kullanın. |
| AD8232 GND | Arduino GND | Ortak toprak hattı. |
| Bluetooth Vcc | Arduino 5V | Bluetooth modülünün besleme ucu. Kullandığınız modülün izin verdiği voltajı kontrol edin. |
| Bluetooth GND | Arduino GND | Bluetooth ve Arduino’nun ortak toprak hattı. |
| Bluetooth RX | Arduino TX1 | Arduino’dan çıkan verinin Bluetooth’a girdiği hat. |
| Bluetooth TX | Arduino RX0 | Bluetooth’tan Arduino’ya giden hat. Bu projede esas veri yönü Arduino’dan telefona doğrudur. |
| 9V pil + | Anahtar üzerinden Arduino Vin | Açma-kapama düğmesi kullanılırsa pilin artı ucu önce anahtara, sonra Vin pinine gider. |
| 9V pil − | Arduino GND | Pilin eksi ucu ortak toprak hattına gider. |
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.
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.
Önce AD8232’yi Arduino’ya, sonra Bluetooth modülünü Arduino’ya, en son pili ve açma-kapama anahtarını bağlayın.
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.
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.
Telefonda EcgSmartApp_ver4_4.apk dosyasını açın. Android izin isterse yalnızca bu uygulama için kurulum izni verin.
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ı 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.
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.
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 telefonda EKG kaydını görüntülemek için uygulama dosyası.
APK indirHekimler veya araştırmacılar için EKG kayıtlarını Windows’ta okumaya yönelik uygulama.
Windows uygulamasını indirArduino Nano’ya yüklenecek kod. Aynı kod Word dosyası olarak da verildi.
Arduino kodunu indirArduino kodunun Word formatındaki orijinal taslak dosyası.
Word dosyasını indirDosyaların bütünlük kontrolü için SHA-256 özetleri.
SHA-256 listesini indirDosya 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() {
}
Kurulumda en sık sorunlar yanlış pin bağlantısı, boş pil, gevşek elektrot ve Bluetooth eşleşmesidir.
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.
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.
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 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.
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.
Mevcut uygulamanın yaratılması ve tıbbi olarak test edilmesinde görev alan ekip.
İtalya
Ege Üniversitesi, Türkiye