معرفی سنسور نبض
پالس سنسور ( یا سنسور ضربان قلب ) یک حسگر با طراحی جالب و کاربردی برای سنجش نبض و ضربان قلب در هر قسمت از بدن ( مانند انگشت یا نرمه گوش ) بر اساس تغییرات نامحسوس انبساط مویرگ، است.
- فوتوکاردیوگرافی
- اندازه گیری فشار خون
- موج نبض فوتوالکتریک
- الکتروکاردیوگرام
سنسور های پالس با استفاده از روش فوتو الکتریک عمل می کنند و به دو نوع انتقال و بازتاب تقسیم می شوند.
نوع انتقالی : در این مدل از سنسور نبض انواع انتقال امواج نبض را با انتشار مادون قرمز از سطح بدن و تشخیص تغییر در جریان به عنوان تغییر در مقدار نور منتقل شده در بدن اندازه گیری می کند.
نوع بازتابی : نور مادون قرمز را به سمت بدن منتشر می کند و مقدار نور منعکس شده را توسط یک فوتوترانزیستور اندازه گیری می کند.
این سنسور در سایز کوچک با سوراخ های ریزی که بر روی خود دارد، باعث می شود که بتوان آن را به لباس دوخت.
ساختار فیزیکی سنسور ضربان قلب
از نمای جلویی سنسور لوگویی به شکل قلب وجود دارد که برای اندازه گیری ضربان، انگشت خود را باید درهمین قسمت قرار دهید و یک LED سبز رنگ ساخت شرکت Kingbright، یک فوتو سنسور مدل APDS-9008 نیز جزیی از ساختار نمای جلو سنسور هستند.
شرح جزئیات کد نویسی
- دو متغیر تعریف می شود؛ متغیر Signal که داده های ورودی ADC را نگه می دارد و متغیر Threshold که مشخص می کند کدام سیگنال به عنوان ضرب (تپش یا beat) تایید شده و کدام یک نادیده گرفته شود.
1 2 3 4 |
int const PULSE_SENSOR_PIN = 0; int Signal; int Threshold = 550; |
- در setup، پین ال ای دی داخلی را به عنوان خروجی تعریف کنید.(pin13) و تنظیمات مانیتور سریال را نیز انجام دهید :
1 2 3 4 |
void setup() { pinMode(LED_BUILTIN,OUTPUT); Serial.begin(9600); } |
- در loop؛ سیگنال آنالوگ را از سنسور پالس می خوانید و زمانیکه سیگنال از یک مقدار آستانه فراتر برود، چراغ LED روشن شود:
1 2 3 4 5 6 7 8 9 10 |
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); } |
رفع مشکلاتی که در مشاهده ضربان قلب وجود دارد
اگر در رویت ضربان قلب سیستم دچار مشکلی شده با اجرای یکی از راه های زیر عیب را شناسایی و رفع کنید:
- ممکن است, فشاری که با دست خود به سنسور نبض وارد می کنید زیاد باشد! فشار بیش از حد به سنسور باعث می شود خون در انگشتان فشرده شود و نشانه ای از وجود خون سنسور احساس نمی کند. اما ممکن اس که شما بیش از اندازه آرام سنسور را فشرده باشید، که در این صورت حرکت ها و نورهای محیطی، باعث ایجاد نویز و اختلال در روند اجرایی سنسور می شوند.
- باید توجه داشته باشد که ممکن است در اندازه فشاری که به سنسور وارد می کنید تغییراتی اعمال شود.(فشار انگشت در حالت ثابت نباشد) در نتیجه بهتر است از نوار چسب، باند پلاستیکی و یا هر نگهدارنده دیگری که انگشت را در حالت نسبتاً ثابت تری نگه دارد، استفاده کنید.
- سنسور را در قسمت هایی از بدن که دارای بافت مویرگی هستند، آزمایش کنید.
- مقدار آستانه را تعیین کنید، آستانه به آردوینو می گوید که کدام نبض معتبرتر (معرفی بهترین ورودی) است. آستانه می تواند عددی بین 0 تا 1023 باشد. اما سعی کنید در 5 یا 10 مرحله آن را ست کنید. با کاهش مقدار آستانه ، میزان حساسیت سنسور افزایش می یابد و برعکس اگر مقدار عددی آستانه افزایش یابد، میزان حساسیت کمتر می شود. سعی کنید بهترین بازه را برای انگشت خود پیدا و آن را با مقدار پیش فرض جایگزین کنید.
کد آردوینو _ ترسیم ضربان قلب
طرح قبلی GettingStartedProject بر اساس کار با Arduino Serial Plotter طراحی شده بود که ابزاری جالب با Arduino IDE برای تجسم سیگنال های آنالوگ در زمان مشخص است. در وضعیتی که طرح در حال اجرا می باشد و برد آردوینو به USB کامپیتورتان متصل است، ابتدا به منویی Tools و سپس به Serial Plotter بروید.
کد آردوینو _ اندازه گیری نسبت ضربان قلب
به عنوان دومین مثال، نسبت ضربان قلب را بر دقیقه اندازه گیری کنید. (Beats Per Minute or BPM). در زیر منوی PulseSensor Playground مثال Getting_BPM_to_Monitor را پیدا کنید و در نرم افزار Arduino IDE خود بارگذاری کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
#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); } |
بعد از آپلود این مدل، انگشت خود را به صورت ثابت قرار دهید و چند ثانیه تا تکمیل روند اجرا منتظر بمانید و نتیجه ای مانند تصویر زیر مشاهده خواهید کرد:
نرم افزار Processing Visualizer
سازندگان سنسور نبض، نرم افزاری را برای تجسم آنچه باید بر رایانه خود از ضربان قلب ببینید، طراحی کرده اند. این نرم افزار با استفاده از Processing نوشته شده است. این نرم افزار نبض کاربر را به صورت گراف نمایش می دهد.(BPM (Beats Per Minute و (IBI(Interbeat Interval را در هم زمان نشان می دهد. این طرح هیچ محاسباتی انجام نمی دهد همه داده ها در برد آردوینو اجرا می شوند، بنابراین Arduino باید طرح PulseSensor_BPM را برای استفاده از نرم افزار visualizer، راه اندازی کند. این اپ تمام داده ها را به صورت زیر نمایش می دهد:
اکنون طرح را آپلود کنید ؟
مسیر زیر را وارد شوید:
به منوی File بروید پس از آن زیر منوی Examples را باز کرده و به PulseSensor Playground وارد شوید سپس PulseSensor_BPM را پیدا کنید و در نرم افزار Arduino IDE بارگذاری کنید.
قبل از راه اندازی طرح نمونه PulseSensor_BPM، به منظور برقراری ارتباط بین آردوینو و نرم افزار visualizer، باید متغیری به نام outputType را در برد آردوینو تغییر دهید. این متغیر به صورت پیش فرض به نام SERIAL_PLOTTER ذخیره شده است، باید آن را به PROCESSING_VISUALIZER تغییر دهید.
نصب نرم افزار Processing Visualizer
کد Processing را سایت گیت هاب دانلود و سپس از حالت فشرده خارج کنید وآن را به فولدر PulseSensorAmpd_Processing_Visualizer ببرید و در فولدر Documents/Processing قرار دهید. در فولدر طرح نمونه، دسترسی به کد را از مسیر زیر فعال کنید:
منوی File را باز کنید. سپس به زیر منوی Sketchbook رفته و PulseSensorAmped_Processing_Visualizer را انتخاب کنید:
Setup
sketch راه اندازی می شود و پس از راه اندازی از شما می خواهد پورت USB مرتبط با برد Arduino خود را انتخاب کنید، با کلیک بر روی گزینه Refresh Serial Ports List لیست به روز شده پورت های آردوینو خود را مشاهده خواهید کرد:
به محض انتخاب پورت صحیح،راه اندازی سنسور نبض, شروع ضربان قلب و نمایش آن به صورت گراف بر روی صفحه نرم افزار را مشاهده خواهید کرد.
Awⅼi bood ❤️❤️❤️
کفش والیبال