Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

4 Ağustos 2021 Çarşamba

Nabız Sensörü ve Arduino Kalp Atış Hızı

 

Nabız Sensörü ve Arduino kullanarak Kalp Atış Hızını İzleyin

Nabız Sensörü, Arduino için iyi tasarlanmış, düşük güçlü bir tak ve çalıştır kalp atış hızı sensörüdür. Canlı kalp atış hızı verilerini projelerine dahil etmek isteyen öğrenciler, sanatçılar, sporcular, üreticiler ve oyun ve mobil geliştiriciler tarafından kullanılabilir.

Ve en iyi yanı, bu sensörün doğrudan Arduino'ya takılması ve bir parmak ucuna veya kulak memesine kolayca takılmasıdır. Ayrıca delikli (düğme şeklinde) süper küçüktür, bu nedenle kumaşa dikilebilir.

Bilgi :  Nabız Sensörü, orijinal olarak PulseSensor.com tarafından oluşturulan açık kaynaklı bir cihazdır 2011 yılında bir Kickstarter projesi olarak başladılar. 2013 itibariyle, 491 destekçi, bu projenin hayata geçirilmesine yardımcı olmak için 18.418 $ sözü verdi.

Donanıma Genel Bakış

Sensörün ön tarafı, kalp logolu taraftır. Parmağınızı yerleştirdiğiniz yer burasıdır. Ön tarafta Kingbright'ın ters monte edilmiş yeşil LED'inin parladığı küçük yuvarlak bir delik göreceksiniz.

darbe sensörü ön taraf donanımına genel bakış

LED'in hemen altında, farklı ışık koşullarında ekran parlaklığını ayarlamak için cep telefonlarında, tabletlerde ve dizüstü bilgisayarlarda kullanılana benzer , Avago'dan APDS-9008 küçük bir ortam ışığı fotoğraf sensörü bulunur .

Modülün arkasında, bir mikroçipin MCP6001 Op-Amp'i ve R/C filtre ağını oluşturan bir grup direnç ve kapasitör dahil olmak üzere geri kalan bileşenleri bulacaksınız. Güç kablolarının yanlışlıkla ters çevrilmesi durumunda hasarı önlemek için bir ters koruma diyotu da vardır.

darbe sensörü arka taraf donanımına genel bakış

Modül, < 4mA çalışma akımıyla 3,3 ila 5V DC Gerilim kaynağından çalışır.

İşte teknik özellikler:

En yüksek reytingVCC3.0 – 5.5V
IMax (Maksimum Akım Çekme)< 4mA
VOut (Çıkış Voltaj Aralığı)0,3V - Vcc
dalga boyuLED Çıkışı565nm
Sensör Girişi525nm
BoyutlarU x G (PCB)15,8 mm (0,625")
Kablo uzunluğu20cm (7.8")

Nabız Sensörü Nasıl Çalışır?

Optik kalp atış hızı sensörlerini teoride anlamak çok kolaydır. Parmak uçlarınıza bir el feneri tuttuysanız ve kalp atışınızın nabzını gördüyseniz, optik kalp atış hızı nabız sensörleri teorisini iyi bilirsiniz.

ışık sensörü led darbe algılama fotopletismogram

Bu konuda bir nabız sensörü veya herhangi bir optik kalp atış hızı sensörü, parmağa yeşil bir ışık (~ 550nm) yakarak ve bir fotosensör kullanarak yansıyan ışığın miktarını ölçerek çalışır.

Işık yoluyla bu darbe algılama yöntemine Fotopletismogram denir .

nabız algılama kalp atış hızı sensörü çalışma fotopletismogramı

Arter kanındaki oksijenli hemoglobin, yeşil ışığı absorbe etme özelliğine sahiptir. Kan ne kadar kırmızıysa (hemoglobin ne kadar yüksekse), o kadar fazla yeşil ışık emilir. Her kalp atışında kan parmaktan pompalanırken, yansıyan ışığın miktarı değişir ve fotosensörün çıkışında değişen bir dalga biçimi oluşturur.

Işığı yakmaya ve fotosensör okumaları almaya devam ettikçe, hızlı bir şekilde kalp atışı nabız okuması almaya başlarsınız.

Fotosensörden gelen bu sinyal genellikle küçük ve gürültülüdür, bu nedenle sinyal bir R/C filtre ağından geçirilir ve daha sonra çok daha büyük, daha temiz ve algılanması daha kolay bir sinyal oluşturmak için bir Op Amp kullanılarak yükseltilir.

Darbe Sensörü Pin Çıkışı

Sensör, 3 erkek başlık konektörlü 24” düz şerit kablo ile birlikte gelir. Aşağıdaki şema pin çıkışını göstermektedir.

darbe sensörü pin çıkışı

S (Sinyal)sinyal çıkışıdır. Arduino'nun analog girişine bağlanır.

+ (VCC)VCC pinidir. 3.3 veya 5V'a bağlanır.

- (GND) Topraklama pimidir.

Uyarı:

Çoğu zaman kablo renk kodlu değildir, bu nedenle üç kablonun doğru tanımlanmasına sahip olduğunuzdan emin olmak için modülün arkasındaki işaretlere baktığınızdan emin olun.

Arduino ile Nabız Sensörü Kablolama

Nabız Sensörünü Arduino'ya bağlamak çok basittir. Yalnızca üç kablo bağlamanız gerekir: ikisi güç için, biri sensör değerini okumak için.

Modül 3.3 veya 5V'dan güç alabilir. Pozitif voltaj '+' ve toprak '-' ile bağlanır. 3. 'S' kablosu, sensörden gelen analog sinyal çıkışıdır ve bu, bir Arduino'nun A0 analog girişine bağlanacaktır.

Darbe Sensörü ile yapılan deneyler için bağlantı aşağıdadır:

arduino ile darbe sensörünü bağlayan kablolama

Kütüphane Kurulumu

Sonraki çizimleri çalıştırmak için 'PulseSensor Playground' adlı bir kitaplık kurmanız gerekecek.

Kitaplığı kurmak için, Çizim > Kitaplığı Dahil Et > Kitaplıkları Yönet'e gidin ... Kitaplık Yöneticisi'nin kitaplıklar dizinini indirmesini ve kurulu kitaplıkların listesini güncellemesini bekleyin.

kitaplıkları yönet

'Pulsesensor' yazarak aramanızı filtreleyin Sadece bir giriş olmalıdır. Buna tıklayın ve ardından Yükle'yi seçin.

nabız sensörü kitaplığı kurulumu

PulseSensor Örnek Çizimleri

PulseSensor kitaplığında bir dizi örnek çizim vardır. Biz burada birkaç tanesinin üzerinden geçeceğiz ama diğerlerini de deneyebilirsiniz. Bu örnek eskizleri kendi kodunuzu geliştirmek için temel olarak kullanabilirsiniz.

Örnek çizimlere erişmek için Dosya > Örnekler > PulseSensor Oyun Alanı'na gidin. Bir dizi örnek çizim göreceksiniz. Çizimi IDE'nize yüklemek için bunlardan herhangi birini seçin. BaşlarkenProjesi ile başlayalım .

nabız sensörü örnek çizimleri

Örnek çizimlerden BaşlarkenProje çizimini Arduino IDE'nize yükleyin Bu temel bir Arduino taslağıdır. Devam edin ve Arduino'nuza yükleyin ve Nabız Sensörünü parmak ucunuza yerleştirin. Arduino'nun yerleşik LED'inin kalp atışlarınızla yanıp söndüğünü görmelisiniz!

int const PULSE_SENSOR_PIN = 0;   // 'S' Signal pin connected to A0

int Signal;                // Store incoming ADC data. Value can range from 0-1024
int Threshold = 550;       // Determine which Signal to "count as a beat" and which to ignore.

void setup() {
	pinMode(LED_BUILTIN,OUTPUT);  // Built-in LED will blink to your heartbeat
	Serial.begin(9600);           // Set comm speed for serial plotter window
}

void loop() {

	Signal = analogRead(PULSE_SENSOR_PIN); // Read the sensor value

	Serial.println(Signal);                // Send the signal value to serial plotter

	if(Signal > Threshold){                // If the signal is above threshold, turn on the LED
		digitalWrite(LED_BUILTIN,HIGH);
	} else {
		digitalWrite(LED_BUILTIN,LOW);     // Else turn off the LED
	}
	delay(10);
}

Kod Açıklama

Kroki süper basit. Nabız Sensörünü bağlamak için kullanılan pinlerin tanımlanmasıyla başlar. İki değişken de tanımlanmıştır; SignalGelen ADC verileri ve tutan Thresholdbelirleyip sinyali yok saymak için olan ve “ritmi olarak sayısı”.

int const PULSE_SENSOR_PIN = 0;

int Signal;
int Threshold = 550;

Kurulumda Yerleşik LED pinini (pin 13) çıkış olarak tanımlıyoruz ve seri monitörü kuruyoruz.

void setup() {
	pinMode(LED_BUILTIN,OUTPUT);
	Serial.begin(9600);
}

Döngüde, Nabız Sensöründen gelen analog sinyali okuyoruz ve sinyal bir eşik değerini aştığında Dahili LED'i açıyoruz.

void loop() {
	Signal = analogRead(PULSE_SENSOR_PIN); // Read the sensor value

	if(Signal > Threshold){                // If the signal is above threshold, turn on the LED
		digitalWrite(LED_BUILTIN,HIGH);
	} else {
		digitalWrite(LED_BUILTIN,LOW);     // Else turn off the LED
	}
	delay(10);
}

Kalp Atışını Görmede Sorun mu Yaşıyorsunuz?

Kalp atışını görmede sorun yaşıyorsanız, yapmanız gerekenler burada.

  1. Sensörü çok sert tutarsanız parmaklarınızdaki tüm kanı sıkarsınız ve hiçbir işaret olmaz! Çok hafif tutarsanız, hareketten ve ortam ışığından gelen gürültüyü davet edeceksiniz. Nabız sensöründeki ter lekesi basıncı (çok sert değil, çok yumuşak değil) iyi bir temiz sinyali verecektir.
  2. Değişen bir basınç, kanın parmağınızda farklı şekilde akmasına ve sensör okumalarının bozuk olmasına neden olabilir. Sensörü bir lastik bant veya başka bir sıkma cihazı kullanarak parmağınıza takarak sabit basınç uygulamaya çalışın.
  3. Sensörü vücudunuzun kılcal dokuya sahip farklı bölgelerinde (kulak memesi veya alt dudak gibi) deneyin.
  4. Eşik değerini ayarlamaya çalışın. Eşik değeri, Arduino'ya ne zaman geçerli bir darbe bulacağını söyler. Eşik, 0 ile 1023 arasında herhangi bir sayı olabilir, ancak 5 veya 10 adımda ayarlamaya çalışın. Eşiği düşürmek duyarlılığı artırır ve bunun tersi de geçerlidir. Parmağınız için varsayılan değerden daha iyi bir aralık bulabilecek misiniz bir bakın.

Arduino Kodu – Kalp Atışı Çizimi

Önceki BaşlarkenProje çizimi, analog sinyalleri gerçek zamanlı olarak görselleştirmek için Arduino IDE ile birlikte gelen harika bir araç olan Arduino Seri Plotter ile çalışmak üzere tasarlanmıştır. Çizim çalışırken ve Arduino kartınız bilgisayarınızın USB'sine bağlıyken, tıklayın: Araçlar > Seri Çizici

Sinyalin oturması biraz zaman alabilir, ancak bunun gibi bir şey görmelisiniz.

arduino seri monitörde nabız sensörü kalp hızı çizimi

Bileğinizdeki nabzı hissedin ve darbeleri taklit etmesini izleyin.

Arduino Kodu – Nabız Ölçümü (BPM)

İkinci örneğimiz için kalp atış hızını (Dakikada Atım veya BPM) ölçmeye çalışacağız. Alma_BPM_to_Monitor için PulseSensor Oyun Alanı örnekleri menüsüne bakın ve Arduino IDE'nize yükleyin.

nabız sensörü bpm kalp hızıölçüm çizimi

Bu çizim, kalp atış hızını elde etmek için darbeler arasındaki süreyi hesaplar ve bunu Seri Monitörde görüntüler.

Uyarı:

Bu çizim, kalp atış hızını optik olarak algılar. Bu yöntem yanıltıcıdır ve yanlış okumalar vermeye eğilimlidir. Bu yüzden lütfen gerçek tıbbi teşhis için KULLANMAYIN.

#define USE_ARDUINO_INTERRUPTS true    // Set-up low-level interrupts for most acurate BPM math
#include <PulseSensorPlayground.h>     // Includes the PulseSensorPlayground Library

const int PulseWire = 0;       // 'S' Signal pin connected to A0
const int LED13 = 13;          // The on-board Arduino LED
int Threshold = 550;           // Determine which Signal to "count as a beat" and which to ignore
                               
PulseSensorPlayground pulseSensor;  // Creates an object

void setup() {
	Serial.begin(9600);

	// Configure the PulseSensor object, by assigning our variables to it
	pulseSensor.analogInput(PulseWire);   
	pulseSensor.blinkOnPulse(LED13);       // Blink on-board LED with heartbeat
	pulseSensor.setThreshold(Threshold);   

	// Double-check the "pulseSensor" object was created and began seeing a signal
	if (pulseSensor.begin()) {
		Serial.println("PulseSensor object created!");
	}
}

void loop() {
	int myBPM = pulseSensor.getBeatsPerMinute();      // Calculates BPM

	if (pulseSensor.sawStartOfBeat()) {               // Constantly test to see if a beat happened
		Serial.println("♥  A HeartBeat Happened ! "); // If true, print a message
		Serial.print("BPM: ");
		Serial.println(myBPM);                        // Print the BPM value
		}

	delay(20);
}

Krokiyi yükledikten sonra parmağınızı olabildiğince sabit tutun ve okumaların anlamlı olması için birkaç saniye bekleyin. Bunun gibi bir sonuç göreceksiniz.



nabız sensörü kalp atış hızı bpm ölçümü çizim çıktısıİşleme Görüntüleyici

Nabız Sensörü üreticileri, bilgisayarınızdaki Nabız Sensörü verilerini görselleştirmek için bir parça yazılım oluşturdular. Processing'de yazıyor Bu yazılım Arduino'nun Nabız Sensöründen aldığı tüm verileri görüntüler. Kullanıcının nabzını gerçek zamanlı olarak grafikler. Ayrıca zaman içinde BPM (Dakikada Vuruş) ve IBI (İnterbe Aralığı) grafiğini de gösterir.

Bu İşleme çizimi herhangi bir hesaplama yapmıyor! Hepsi Arduino kartında yapılır, bu nedenle görselleştiriciyi kullanmak için PulseSensor_BPM taslağını çalıştıran bir Arduino'ya ihtiyacınız vardır Bu yazılım sadece Seri Bağlantı Noktasını okur ve aldığı verileri görselleştirir.

darbe sensörü işleme görselleştirici çıkışı

Çizim Yükle

PulseSensor_BPM için Dosya > Örnekler > PulseSensor Oyun Alanı örnekleri menüsüne bakın ve Arduino IDE'nize yükleyin.

darbe sensörü işleme görselleştirici arduino kroki

PulseSensor_BPM taslağını çalıştırmadan önce Arduino kartınızın görselleştiriciyle konuşması için outputTypeArduino kodunda adı verilen bir değişkeni değiştirmeniz gerekecektir Varsayılan olarak olarak ayarlanmıştır SERIAL_PLOTTERolarak değiştirmeniz gerekir PROCESSING_VISUALIZER.

görselleştirici arduino taslağının işlenmesindeki değişiklikler

Ardından, Arduino Sketch'i yükleyin ve panonuz, Processing Visualizer'ın almayı sevdiği şekilde veri göndermeye hazır!

Kurulum

İşlem kodunu github'dan indirin İndirilen dosyayı açın ve PulseSensorAmpd_Processing_Visualizer adlı klasörü alın ve Documents/Processing klasörünüze yerleştirin.

Ardından, Sketch klasörünüz aracılığıyla koda erişmek için İşleme'yi açın. Seç Dosya> Sketchbook ... basıp PulseSensorAmped_Processing_Visualizer

darbe sensörü işleme görselleştirici kroki

Kurmak

Sketch başlatılacak ve Arduino kartınızla ilişkili USB bağlantı noktasını seçmeniz istenecektir. Kullanım Yenile Seri Portlar size Arduino görmüyorsanız portlar listesini güncellemek için düğmeye.

darbe sensörü işleme görselleştirici bağlantı noktası seçimi

Doğru bağlantı noktasını seçtiğinizde, kalp atışı verilerini görmeye başlayacaksınız!

Fonksiyonlar

Eskiz çalışırken yapabileceğiniz birkaç harika şey var:

  1. Program penceresinin ekran görüntüsünü almak için 's' tuşuna basın. Resim, eskiz klasörüne .jpg olarak kaydedilecektir.
  2. Veri pencerelerini sıfırlamak için 'r' tuşuna basın.
Bahadir Özgen
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...

#Arduino
#Robotikkodlama
#programlama
#mblock
#elektronik
#blokprogramlama
#algoritma
#scratch
#arduinoeğitim
#mitappinventor
#appinventor
#arduinoblocks
#ogretmen
#öğretmen
#eğitim
#egitim
#roboticcode
#roboticcode2020
#robotik