یکی از دستگاه های پزشکی که این روزها خیلی مشاهده می کنید و قیمت بالایی هم داره دستگاه پالس اکسیمتر (Pulse Oxymeter) هست. این دستگاه ها برای تشخیص میزان اکسیژن خون و تشخیص تعداد ضربان قلب یا نبض بکار میره و قیمت بالایی هم داره در حدود چند میلیون تومان. معمولا به صورت قابل حمل ساخته میشه و یک مدل سیم دار اون شبیه گیره لباس هست که در بیمارستانها به نوک انگشت بیمار متصل میکنن و سیمش به داخل دستگاه اصلی مانیتورینگ میره.
پالس اکسیمتر بدون نیاز به نمونه گیری یا زخم کردن و فقط با استفاده از خاصیت جذب نور کار میکنه. این دستگاه از دو تا دیود نوری (LED) قرمز و مادون قرمز و سنسور گیرنده تشکیل شده و با قرار گرفتن انگشت در جلوی این مجموعه سنسورها نور قرمز با طول موج 660 نانومتر و مادون قرمز با طول موج 880 نانومتر به خون رسیده و هموگولوبین مقداری از نور قرمز رو جذب میکنه و اکسی هموگولوبین هم مقداری از نور مادون قرمز رو جذب میکنه و بازتابش اونها توسط سنسور تشخیص داده میشه و بعدش یه محاسبه لگاریتمی روی این مقدارها انجام میشه و مقدار اشباع هموگولوبین با اکسیژن بدست میاد که ما بهش همون اکسیژن خون میگیم. (اکسی هموگولوبین ماده ایه که وقتی نفس میکشیم و اکسیژن رو وارد ریه ها میکنیم از ترکیب اکسیژن با هموگولوبین ایجاد میشه و هر جا که لازم باشه اکسیژن دریافتی رو آزاد میکنه) (هموگولوبین هم یه پروتئینه که داخل گلبول های قرمز هست و کارش نقل و انتقاله).
پالس اکسیمتر برای تشخیص ضربان قلب و میزان اکسیژن خون بکار میره و کاربردهای زیادی در پزشکی داره ولی اخیرا بعضی از افراد چه پزشک و چه غیر متخصص و چه درست و چه غلط از این دستگاه برای تشخیص کرونا (COVID-19) استفاده میکنن. با این ایده که در صورت آلوده شدن به این ویروس و درگیر شدن شش ها اکسیژن رسانی به خون کم میشه و پالس اکسیمتر عددی کمتر از محدوده نرمال رو نشون میده. طبق تحقیقات انجام شده کم بودن اکسیژن خون قطعا نشان دهنده آلوده شدن به کرونا ویروس نیست و ممکنه دلایل دیگه ای داشته باشه و همچنین با مشاهده نرمال بودن اکسیژن خون هم نمیشه مطمئن شد که شخص آلوده نیست. در کل انجام تست خون در آزمایشگاه راه حل قطعی و مطمئن هست ولی با وجود فراگیر شدن این وسیله و نیاز به اون و قیمت بالاش تصمیم گرفتیم که این مطلب رو برای ساخت یک دستگاه پالس اکسیمتر گردآوری کنیم.
ساخت سنسور پالس اکسیمتر با دیودهای LED قرمز و مادون قرمز و پیدا کردن نانومتر مشخص دیودها و کالیبراسیون اون کار دشواری هست به همین منظور برای این پروژه از سنسور MAX30100 که یک سنسور تجاری دقیق برای تشخیص اکسیژن خون و میزان ضربان قلب/نبض هست استفاده کردیم. این سنسور با پروتکل I2C به میکرو متصل میشه و ضربان قلب و مقدار اکسیژن خون رو بدست میاره. سنسور MAX30102 هم نمونه دقیقترش هست. کلا این سنسور اندازه خیلی کوچکی داره. معمولا بخاطر ظرافت سنسور از ماژول MAX30100 استفاده میشه. ما در این پروژه از ماژول مربعی شکل مشکی رنگ MAX30100 استفاده کردیم که روی اون سنسور MAX30100 لحیم شده و یک سری قطعات دیگه هم مثل رگولاتور 1.8 ولت و خازن صافی و چند تا مقاومت Pull-Up برای I2C لحیم کردن که ای کاش لحیم نمیکردن! (پاراگراف بعد رو بخونید متوجه می شید…)
ماژول MAX30100 مشکی رنگ مربعی با مارک MH-ET LIVE که پشتش عکس پالس و قلب چاپ شده و در ایران هم معمولا فروشگاهها همین مدل رو وارد کردن یک مشکل اساسی داره. ورودی تغذیه این ماژول به لطف وجود رگولاتور 1.8 ولت میتونه بین 3.3 تا 5 ولت باشه ولی سه تا مقاومت 4.7K بعنوان پول آپ روی پایه های SCL و SDA و INT این ماژول قرار داده شده که این پایه ها رو به سیم خروجی رگولاتور یعنی 1.8 ولت Pull-Up کردن! با توجه به اینکه در 99 درصد موارد برای راه اندازی این ماژول از میکروکنترلر یا آردوینو استفاده میشه و سطح منطقی این بردها 5 ولت هست کلا ارتباط با پورت I2C برقرار نمیشه و چراغ قرمز سنسور MAX30100 هم روشن نمیشه (این چراغ باید با کد روشن بشه نه به محض اتصال برق). برای حل این مشکل در این مدل از ماژول و یا مدل های دیگه که کار نمیکنن باید با هیتر و با دقت تمام هر سه تا مقاومت 4.7 کیلو (یا هر مقدار دیگه که برای پول آپ سه تا پایه یاد شده لحیم شده) رو از روی ماژول جدا کنید. (خیلی عجیبه که چرا سازنده این ماژول بعد از طراحی و تولید حتی یک نمونه هم تست نکرده، ممکنه خیلی برای فروش عجله داشته). بعد از اتصال ماژول به میکرو یا آردوینو حتما باید 2 تا مقاومت 4.7 کیلو بین VCC ماژول و پایه های SDA و SCL وصل کنید و چون پول آپ به ولتاژی بیشتر از 1.8 متصل میشه دیگه سعی کنید تغذیه ماژول رو بیشتر از 3.3 ولت ندید که مشکلی پیش نیاد. کلا اگر خواستید دستگاه تجاری بسازید خود سنسور رو بگیرید و از صفر طراحی کنید، برای ارتباط صحیح و استاندارد باید مبدل سطح منطقی 1.8 به 3.3 یا 5 قرار داده بشه یا کلا از میکروی 1.8 ولت استفاده بشه. ضمنا سومین مقاومت مربوط به پایه INT ماژول هست که چون ازش استفاده نمیکنیم دیگه نیازی نیست بصورت خارجی بزارید، اگر هم خواستید بزارید که بیخود INT و نویز نگیره.
طراح اصلی از آردوینو برای ارتباط با ماژول MAX30100 استفاده کرده و فعلا تبدیل برنامه آردوینو و کتابخونه راه اندازش به BASCOM کمی زمان میبره و نمی ارزه که این پروژه حیاتی رو به تعویق بندازیم. دوتا سورس آردوینو داریم، اولیش برای راه اندازی سریع هست و اطلاعات رو روی سریال مانیتور آردوینو چاپ میکنه و دومی هم کمی باکلاس تره و اطلاعات رو روی LCD_2x16 نشون میده و میتونیم یه دستگاه پرتابل و قابل حمل و نقل بسازیم. قبل از هر چیز کتابخونه راه انداز MAX30100 رو از لینک زیر دانلود و در آردوینو از منوی Sketch روی Include Library و سپس Add ZIP Library کلیک و فایل زیپ دانلود شده رو انتخاب کنید تا نصب بشه و بتونید کدهای بعدی رو اجرا کنید.
شماتیک مربوط به سورس ساده
شماتیک سورس پیشرفته
در این قسمت یک فیلم کوتاه از نحوه عملکرد ماژول پالس اکسیمتر (Pulse Oxymeter) و تشخیص ضربان قلب و نبض با MAX30100 و آردوینو رو مشاهده می کنید که برای تست میزان اکسیژن خون و تست کرونا استفاده کردیم. در خط بالای LCD تعداد ضربان قلب/نبض در دقیقه و در خط دوم نمایشگر درصد اکسیژن خون مشاهده میشه. طبق اطلاعات گردآوری شده میزان نرمال باید بین 95 تا 100 درصد باشه و موارد زیر 90 دچار هیپوکسی یا هایپوکسی هستن. باز هم ذکر می کنیم که صحت و سقم این اطلاعات و کالیبر بودن ماژول در تخصص پزشک هست و اگر اعداد ناجور مشاهده کردید استرس نگیرید و دقت ماژول 50-40 هزار تومنی رو با دستگاه استاندارد 2 میلیونی مقایسه نکنید.
استفاده از سنسور MAX30100 فقط منحصر به کرونا نیست، با استفاده از این سنسور میشه میزان اکسیژن رو قبل و بعد از ورزشهای مختلف اندازه گیری کرد. توجه داشته باشید که ممکنه این ماژول نیاز به کالیبراسیون داشته باشه (هدر فایل کتابخونه MAX30100 رو بررسی کنید)، به همین دلیل درنظر داشته باشید که هیچ مسئولیتی در خصوص عواقب استفاده پزشکی از این دستگاه بر عهده ما نیست و تشخیص طبی باید توسط پزشک متخصص انجام بگیره، ما در این مقاله فقط نحوه اصول کار و ساخت این وسیله رو از نظر الکترونیکی بررسی کردیم، همچنین اطلاعت پزشکی از مقالات تحت وب گردآوری شده و مسئولیت صحت اطلاعات پزشکی که نوشتیم بر عهده ما نیست. از بخش دوم این ماژول یعنی سنجش ضربان قلب استفاده های زیادی میشه کرد، مثلا اینکه چه زمانی ضربان قلب ممکنه تغیییر کنه و به چه دلیل، مثلا ساخت دستگاهی برای دروغ سنجی افراد، استرس، پیشبینی رفتار و … که خودتون می تونید حدس بزنید و با کمی خلاقیت می تونید دستگاه هایی بسازید که بوسیله اونها حالات و احساسات واقعی اشخاص رو مشاهده کنید. فیدبک گرفتن از بازتابش برخورد نور یا فتون یا الکترون به جسم تاریخچه قدیمی داره، از شنود بوسیله بازتابش اشعه لیزر بر روی شیشه ساختمان تا اصول کار میکروسکوپ های الکترونی و دماسنجهای غیر تماسی. استفاده از خاصیت تابش امواج مادون قرمز توسط بدن که در سنسور تشخیص حرکت PIR استفاده می شه و همه اینها میتونه ابزارهایی برای جمع آوری اطلاعات بدون اطلاع افراد به شمار بره و به نوعی حریم خصوص اشخاص رو زیر سوال ببره.
منابع:
Wiki 1
Wiki 2
صادقی. رقیه. خلجی علیایی. اشکان. کتاب جامع ابزارهای جراحی . انتشارات نور دانش. چاپ دوم 1389. شابک9-105-413-964-978
aftabir.com
hamshahrionline.ir 1
hamshahrionline.ir 2
cnet.com
draw schematic online
maxim
دانلود کتابخانه MAX30100 برای آردوینو
سورس ساده ارتباط آردوینو با MAX30100 و نمایش اطلاعات در سریال مانیتور (با سرعت 115200)
سورس پیشرفته ارتباط آردوینو با MAX30100 و نمایش اطلاعات در LCD_2x16
1399/02/31
بازدیدها: 2381
هزینه تبلیغات توی سایت شما
چنده؟
سایت ما رایگان و بدون تبلیغات هست و با بودجه شخصی کار میکنه.
سلام
من با c اشنایی ندارم و با bascom کار میکنم
امکانش هست که یه تعریف خلاصه از ترتیب کد های انالیز رو بدید که بتونم برنامه رو باش بنویسم
مقسی بابت وبلاگ
سلام کد اصلی به زبان C هست و باید با بررسی دقیق تبدیل کنید.
سلام.مشکلی که من دارم اینه که وقتی این سنسور را به تنهایی استفاده می کنم و از طریق مانیتور سریال نرم افزار ide اردوینو چک می کنم به درستی کار میکنه اما وقتی اون رو با سنسور دمای DS18B20 و یا با شیلد تاچ ال سی دی tft 2.4 اینچ روی همون برد و با همون حالت و کد قبلی ترکیب می کنم خروجی نمیده در حالیکه هم تاچ ال سی دی کار میکنه هم سنسور دما . مشکلم احتمالا مربوط به تایمینگ ها است. میشه راهنماییم کنید چطور رفعش کنم؟
سلام با کمی تلاش می تونید مشکل رو پیدا کنید. ما چون سورس شما را ندیدیم نمیتونیم نظری بدیم.
با سلام و خسته نباشید و تشکر از مطالب خوبتون
میخواستم بدونم آیا تمامی ماژول های max30102 این پول آپ هارو دارن و باید جدا بشن ؟
سلام اگر با پول آپ جواب نداد جدا کنید.
سلام
با 5v جواب میده ولی اعدام بشدت غیرواقعی و بالا هستن
مشکل چی میتونه باشه ؟
سلام مثل پروژه ما با 3.3 ولت ببنید یا از ماژول دقیق تر MAX30102 استفاده کنید. البته امکان کالیبراسیون ماژول از طریق هدرفایل کتابخانه ماژول هم امکان پذیره؛ به شرط داشت یک دستگاه مطمئن برای کالیبراسیون.
سلام ایا میشه دمای بدن رو هم اندازه گرفت ؟؟ اگر میشه کدش رو از کجا میتونم گیر بیارم ؟؟
سلام این ماژول برای سنجش حرارت نیست.
سلام وقتتون بخیر
میخوام سه مقدار دما نبض و SPO2 رو روی اولد نمایش بدم اما نشون دادن همزمانشون باهم تقریبا غیرممکنه چون به محض اینکه انگشت رو از روی مازول max30100 برمیدارمريا، مقدار دما رو نشن میده. میشه راهنماییم کنید باید چیکار کنم؟
سلام این ماژول فاقد سنسور دما می باشد. برای نمایش هر مقدار روی Oled می توانید آن را در یک متغیر جدا ذخیره کرده و سپس متغیرها را روی نمایشگر نشان دهید.