Nabız-Kalp Atışı Ölçme Sensörü (Pulse Sensör)

Pulse Sensörü, Arduino kullanıcıları için özel olarak tasarlanmış küçük, hafif ve düşük güç tüketimli bir kalp atış hızı sensörüdür. Bu sensörle canlı kalp atış hızı çizimini ve dakikadaki atış sayısını (BPM) hesaplamak mümkündür. Tak-çalıştır özelliği sayesinde karmaşık kurulumlara ihtiyaç duymadan hızlı bir şekilde çalışmaya başlayabilirsiniz. Dikilebilir deliklere sahip, düğme boyutundaki kompakt tasarımı sayesinde giyilebilir teknoloji ve akıllı tekstil ürünlerine bile entegre edebilirsiniz.
Sensör parmak ucuna veya kulak memesine takılır. Ayrıca nabzınızı gerçek zamanlı olarak grafiklendiren açık kaynak kodlu bir izleme uygulaması da bulunmaktadır. Sensörün kalp logosu olan tarafı cilt ile temas eden tarafıdır. Farklı ışık koşullarında sağlıklı çalışabilmesi için ortam ışığı sensörü içermektedir. Aynı zamanda üzerinde bulunan gürültü engelleme özellikli devre sayesinde temiz ve stabil bir ölçüm alabilirsiniz. Sevkiyat durumuna göre kablo rengi değiştiğinden bağlantı için kart üzerinde bulunan bilgilerden faydalanabilirsiniz.

Pulse Sensörün Çalışma Mantığı Nedir?
Hiç parmaklarınızın arasından bir el feneri geçirip kalp atışlarınızı görebildiğinizi fark ettiniz mi? Nabız sensörlerinin çalışma mantığı da aynıdır.

Nabız Sensörü, parmak ucunuz veya kulak memesi gibi vücudunuzun ince bir noktasına 550 nm dalga boyunda yeşil ışık gönderir. Bu bölgeler ışığın kolayca geçebileceği kadar incedir. Işık cildinizden geçerken, bir kısmı kanınız tarafından emilir ve ışığın kalanı geri döner. Nabız Sensörü, ışığın ne kadar geri döndüğünü ölçen fotodedektör adı verilen özel bir parçaya sahiptir. Bu işlemin adı: Fotopletismografi (PPG)’dir. Bu, kan hacmindeki değişiklikleri ışık kullanarak ölçmek anlamına gelir.
Kanınız, vücudunuzda oksijen taşıyan hemoglobin adı verilen bir protein içerir. Oksijenli hemoglobin veya HbO2 olarak da adlandırılır. Hemoglobindeki oksijenin yeşil ışığı emme özelliği vardır. Kalbiniz her attığında, parmağınıza taze ve oksijen açısından zengin kan pompalar. Bu kanda bol miktarda oksijenli hemoglobin bulunduğundan kan daha kırmızı olur. Bu da ışık emilim oranını artırır ve daha fazla yeşil ışık emer. Bundan dolayı fotodedektöre yeşil ışık daha az geri yansır. Kalp atışları arasında parmağınızdaki oksijenli kan biraz daha az olur. Bu nedenle daha az yeşil ışık emilir ve dedektöre daha fazla yeşil ışık geri yansır. Yansıyan ışık miktarındaki bu değişiklikler nabız sensöründe salınımlı bir dalga formu oluşturur. Bu dalgayı ölçerek kalp atış hızını ölçebiliriz.
Fotodedektörden gelen sinyal genellikle küçük ve gürültülüdür. Daha iyi bir hale getirmek için, sinyal, alçak geçiren R/C filtresinden geçer. Ardından sinyal, çok daha büyük ve algılanmasının daha kolay hale gelmesi için bir operasyonel amplifikatör (Op-Amp) tarafından yükseltilir.

Neden Yeşil Işık Kullanılır?
Yeşil ışık, hemoglobin tarafından iyi emildiği ve bu sayede her kalp atışında kan akışındaki değişiklikleri iyi gösterdiği için harika bir seçimdir. Ayrıca yeşil ışık, kırmızı veya kızılötesi ışığa kıyasla ortam ışığından daha az etkilenir. Bu da sinyalde daha az parazit olmasını sağlar.
Pulse Sensörün Yapısı ve Çalışması
Sensörün ön tarafı, kalp logosunun bulunduğu taraftır ve cilde temas etmesi gereken kısımdır. Nabzınızı ölçmek için parmağınızı buraya yerleştirmeniz gerekir. Burada, içinden yeşil bir LED'in (Kingbright yapımı ters montaj ledi) ışık yaydığı küçük yuvarlak bir delik vardır. LED'in hemen altında Avago tarafından üretilen APDS-9008 adlı özel bir ışık sensörü bulunur. Bu, akıllı telefonlarda, tabletlerde ve dizüstü bilgisayarlarda kullanılanlara benzer bir ortam ışığı sensörüdür ve farklı ışık koşullarında ekran parlaklığını ayarlamak için kullanılır. LED, parmak ucuna, kulak memesine veya diğer kılcal dokulara ışık yayar ve bu ışık sensörü geri yansıyan ışık miktarını ölçer.
Sensörün diğer tarafında ise istenmeyen gürültüyü veya paraziti gidererek sinyali temizlemeye yardımcı olan birkaç direnç ve kapasitörden oluşan R/C filtresi bulunur. Yine burada microchip'in MCP6001 op-amp’ı; ışık sensöründen gelen küçük elektrik sinyallerini yükselterek mikrodenetleyici tarafından kolayca okunabilmelerini sağlar. Güç kablolarının ters bağlanması durumunda devreyi ters voltajdan korumak için, bir ters voltaj koruma diyodu da yine bu tarafta bulunmaktadır. Nabız Sensörü 3,3V – 5V DC güç kaynağı ile çalışır ve 4 mA'den az akım tüketir.
Pulse Sensör Devre Şeması

Bu devrenin ilk önemli parçası 10 µF filtre kapasitörüdür. Ardından yeşil LED ve 470Ω dirençtir. 470Ω direnci, sensör modülü için akım sınırlayıcı dirençtir. Devrede ayrıca, devrenin bir diyot üzerinden beslendiğini görebilirsiniz. Diyot iki amaca hizmet eder: ilk olarak ters polarite koruması görevi görür ve ikinci olarak devreyi geçici akımlardan korur. APDS-9008 fotodiyotun çıkış genliği çok düşük ve gürültülüdür. Bu nedenle, bir dizi RC alçak geçiren filtreden geçirmek, ardından temizlenen sinyali mikrodenetleyici ile işleyebilmek için MCP6001 op-amp tarafından yükseltmek gerekir.
Pulse Sensörün Teknik Özellikleri

Vcc : 3V – 5.5V
Maksimum Çekilen Akım : < 4mA
Vout (Çıkış Voltaj Aralığı) : 0,3V'dan Vcc'ye
LED Çıkışı : 565nm
Sensör Girişi : 525nm
Çalışma Sıcaklığı : -40⁰С < T < 80⁰С
Çap : ~16mm
Pulse Sensörün Pin Çıkışları

S(Sinyal): Sensörün analog sinyal çıkış pinidir. 0,3V'dan Vcc'ye kadar analog voltaj verir. Arduino’nun A0 gibi bir analog giriş pinine bağlanmalıdır.
VCC: Sensörün güç girişidir. Bu pine 3.3V ile 5V arasında herhangi bir giriş voltajı uygulanabilir.
GND: Toprak pinidir.
NOT: Çeşitli nabız sensörlerinde kablo renkleri farklı olabilir. Bu nedenle hangi kablonun hangisi olduğunu bilmek için sensörünüzün arkasındaki etiketleri kontrol edin.
Pulse Sensörünün Kullanımında Bilinmesi Gerekenler
Sensörü kullanmaya başlamadan önce parmakların yağlı, kirli veya terli olmadığına emin olun. Nabız sensörü açıkta bir devre kartıdır. Elektronik komponentlere ve lehim noktalarına dokunursanız, kartta kısa devre yapabilir veya istenmeyen sinyal gürültüsüne neden olabilirsiniz. Pulse sensörü, orijinal satıcısı ve tasarlayıcısı olan pulsesensor.com sitesinden kit halinde satın aldığımızda, ön ve arka tarafındaki elektronik bileşenler için koruma ve yalıtım ekipmanları(şeffaf vinil pvc) gönderilmektedir. Aynı zamanda kit içerisinde sensörün vücuda takılmasını sağlayan kulak klipsi ve parmak kayışı da yer almaktadır. Biz uygulamalarımızda yalın halde kullanacağımız için açıkta kalan devre elemanlarının zarar görmemesine ve kısa devre olmamasına özen göstermeliyiz.
Parmağınızı sensöre çok fazla bastırırsanız, parmak ucunuzdaki tüm kanı sıkarsınız ve sinyal alamazsınız. Çok hafif bastırırsanız da hareket ve ortam ışığından kaynaklanan gürültüye neden olursunuz. Sensöre tatlı bir basınç uygulamanız yeterlidir. Böylece sensör, güzel ve temiz bir sinyal verecektir. Parmağınızı değdirirken titremesi, kayması ya da sıkma-gevşetme gibi durumlar sensörün yanlış sonuç vermesine sebep olur. Sabit bir ölçüm elde etmek için, ölçüm yaparken basıncın sabit kalması için sensörü bant gibi herhangi bir şeyle parmağınıza sabitlemeye çalışın. Sensörün kararlı bir çıktı üretmesi biraz zaman alıyor. Bu yüzden kararlı bir sonuç elde etmek için sabırlı olmanız ve bir süre beklemeniz gerekiyor.
Sensörün kararlı çalışma voltajı 3,3 V ile 5,5 V arasındadır. Sensörü başka voltaj değerleriyle çalıştırmak, sensörün kararsız hale gelmesine neden olur.
Sensör parmak ucunuzda hala iyi çalışmıyorsa, kan akışının kolayca tespit edilebildiği kulak memesi veya alt dudağınız gibi vücudunuzun diğer bölgelerinde test etmeyi deneyin. Bu bölgelerde ayrıca yüzeye yakın kan damarları bulunur ve genellikle daha iyi sonuçlar verir.
Sağlıklı ve yetişkin bireylerde ideal nabız değeri genellikle dakikada 50 ila 100 atış arasındadır. Gençlerde kalp atış hızı yüksek olma ihtimali bulunur. Bu değer dinlenme durumunda ölçümler için normal bir değerdir. Uyurken ya da hareket halindeyken bu değer aralığı değişiklik gösterebilir. Dinlenirken kalp atış hızı dakikada 100 atışın üzerindeyse, hızlı yani nabız yüksek olarak değerlendirilir.
Pulse Sensörün Arduino İle Kullanımı

Pulse sensör, Arduino Uno, Mega 2560, Leonardo, Due, Nano, Micro, Yún, Pro Mini, Zero gibi birçok Arduino kart ile uyumludur. Sensörü PulseSensorPlayground.h kütüphanesi ile kullanmak mümkündür. Bu kütüphane Arduino’da dâhili olarak gelmediği için haricen eklemek gerekmektedir. Kütüphaneyi eklemek için; Arduino kütüphane yöneticinde arama kutucuğuna “pulsesensor” yazılır. Daha sonra Joel Murphy ve Yury Gitman'ın PulseSensor Playground'unu yüklemeniz yeterlidir.
Kütüphaneyi yükledikten sonra kütüphane içerisinde yer alan “GettingStartedProject” örnek uygulamasıyla sensörün testini yapabiliriz. Arduino nabız atışının gerçekleşip gerçekleşmediğini sensörden gelen analog değerin büyüklüğüne göre karar veriyor. Bu nedenle bizim önceden bir threshold, yani eşik değeri belirlememiz gerekiyor. Bu sayede Arduino belirlediğimiz eşik değerinin üzerinde bir sinyal geldiğinde nabız atışının gerçekleştiğini anlayabilecektir. Nabız sensörü herhangi bir parmak, kulak memesi veya diğer organlarla temas etmediğinde, analog sinyal, Vcc besleme voltajının orta noktası ya da Vcc/2 civarındadır. Nabız sensörü herhangi bir organla temas ettiğinde, yansıyan ışıktaki değişiklik, sinyalin Vcc/2 etrafında dalgalanmasına neden olur. Aşağıdaki resimde yatay yeşil çizgi Vcc/2’dir.

Arduino, Nabız Sensöründen gelen analog sinyali izler ve sinyal orta noktanın üzerine çıktığında bir nabız bulunduğuna karar verir. İşte bu an, kılcal damarlarınızın taze kanla dolup taştığı andır. Sinyal orta noktanın altına düştüğünde ise Arduino bunu fark eder ve bir sonraki nabzı bulmaya hazırlanır.
1. Kalp Atış Hızını Ölçme
PulseSensorPlayground.h kütüphanesinin “GettingStartedProject” örnek uygulamasını Arduino’ya yükledikten sonra sensöre parmağınızı değdirdiğinizde, Arduino kartı üzerinde 13 nolu pine bağlı ledin kalp atışınızla aynı anda yanıp söndüğünü görebilirsiniz. “GettingStartedProject” uygulaması ile Arduino seri monitöründe nabız sensöründen gelen ham verileri aşağıdaki resimdekine benzer şekilde görebilirsiniz:

Nabız sensöründen gelen ham sayıları yukarıda gördünüz. Kalp atış hızınızı Arduino Seri Plotter(seri çizici) kullanarak grafik şeklinde görselleştirebilirsiniz. Bu aracı başlatmak için Araçlar > Seri Plotter(seri çizici)'a tıklayın. Baud hızını programda belirtilen değer hangisi ise onu seçin. Sinyal ilk başta biraz dengesiz görünebilir ancak kısa bir süre sonra düzelecektir. Dengeye ulaştığında, grafikte düzenli iniş çıkışlar göreceksiniz. Bu iniş çıkışlar kalp atışını temsil eder. Seri Plotter'ın çizdiği görüntünün bir örneği aşağıda yer almaktadır:

2. Dakikadaki Kalp Atış Hızını (BPM) Ölçme
Bu örnekte, fitness takip cihazlarının ve akıllı saatlerin yaptığına benzer şekilde, kalp atış hızınızı dakikadaki atış sayısı (BPM) olarak ölçebiliriz. Bunun için PulseSensorPlayground.h kütüphanesinin “Getting_BPM_to_Monitor” uygulamasını Arduino’ya yüklememiz gerekir. Bu uygulama sensör tarafından algılanan her kalp atışı arasındaki süreyi hesaplayarak çalışır. Program, bir atıştan diğerine ne kadar zaman geçtiğini ölçerek, tam bir dakikada kaç atış gerçekleşeceğini hesaplayabilir. Bu da BPM'nin tam olarak ne anlama geldiğini açıklar. Arduino’ya yükledikten sonra sensöre parmağınızı değdirdiğinizde, Arduino kartı üzerinde 13 nolu pine bağlı ledin kalp atışınızla aynı anda yanıp söndüğünü görebilirsiniz.
Kütüphane adres: https://github.com/WorldFamousElectronics/PulseSensorPlayground
Komutlar:
a. PulseSensorPlayground pulseSensor;
Programda "pulseSensor" isminde bir nesne oluşturulmasını sağlar.
b. pulseSensor.analogInput(pin_no);
Sensörün analog çıkışının Arduino’nun hangi analog girişine bağlandığı belirlenir.
c. pulseSensor.blinkOnPulse(LED_pin);
Her nabız atışında ve duruşunda yanıp-sönecek olan ledin hangi pine bağlandığı belirlenir.
d. pulseSensor.setThreshold(esik_deger);
Arduino’nun nabız atışının gerçekleşip gerçekleşmediğini anlayabilmesi için eşik değer belirlenir.
Örnek: pulseSensor.setThreshold(520);
e. pulseSensor.begin();
Sensörü başlatır.
f. pulseSensor.sawStartOfBeat();
Nabız olup olmadığını test eder. Nabız varsa 1 yoksa 0 değerini döndürür.
g. pulseSensor.getBeatsPerMinute();
Dakikadaki nabız sayısını hesaplar ve sonucu int türünde döndürür.
0 comments:
Yorum Gönder