خانه » ارتباط ماژول پالس اکسیمتر MAX30102 با آردوینو
آخرین بروز رسانی: 2 آذر 1401

ارتباط ماژول پالس اکسیمتر MAX30102 با آردوینو

ماژول پالس اکسیمتر و محاسبه ضربان قلب MAX۳۰۱۰۲ یک سنسور بیومتریک مبتنی بر پروتکل ارتباطی I۲C است. این ماژول می تواند توسط دانشجویان، علاقه مندان به الکترونیک و مهندسی پزشکی، مهندسان، تولیدکنندگان و توسعه دهندگان اپلیکیشن های تلفن همراه که می خواهند داده های سیگنال حیاتی را در پروژه های خود بگنجانند، مورد استفاده قرار گیرد.

اجزای مورد نیاز

شما به اجزای زیر نیاز دارید:

بررسی سخت افزاری ماژول MAX۳۰۱۰۲
ماژول MAX۳۰۱۰۲ دارای حسگر پالس اکسیمتر و ضربان قلب بصورت مدارت مجتمع در یم آی سی تولید شرکت Maxim است. این ماژول دارای دو LED، یک فتودتکتور، بهینه سازی اپتیکال و پردازش سیگنال آنالوگ با نویز پایین است که به پژوهشگران اجازه می دهد سنجش میزان اکسیژن خون و ضربان قلب را با کیفیت بالا در یک ماژول در اختیار داشته باشند.
 
همانطور که در شکل بالا مشاهده می شود در پشت قاب پکیج آیسی MAX۳۰۱۰۲ دو LED نور قرمز و مادون قرمز وجود داد و در سمت دیگر یک فتودتکتور بسیار حساس قرار داده شده است. برای ثبت داده سطح اکسیژن و ضربان قلب، این آی سی در زمان های مشخص نور ال ای دی ها می تابند، سپس میزان نوری که به آشکارساز تابیده می شود را پردازش می کند و در نهایت بر اساس داده های ارسالی از این ماژول می توان سطح اکسیژن خون و ضربان قلب را اندازه گیری کرد.
تغذیه ماژول
تراشه MAX۳۰۱۰۲ به دو ولتاژ تغذیه مختلف نیاز دارد: 1.8 ولت برای تغذیه آیسی و ۳.۳ ولت برای تغذیه LED های RED و IR. به همین دلیل این ماژول دارای رگولاتورهای ۳.۳ ولت و ۱.۸ ولت است.
 
در پشت PCB یا همان مدار چاپی این ماژول سه پد مسی قابل لحیم وجود دارد که می تواند برای انتخاب بین سطح منطقی ۳.۳V و ۱.۸V مورد استفاده قرار گیرد. به طور معمول سطح منطقی ۳.۳V را انتخاب می کنیم زیرا با سطوح منطقی آردوینو سازگار است. اما شما می توانید سطح منطقی ۱.۸V را طبق نیاز خود اگر با میکروکنترلر های خاص کار می کنید، انتخاب کنید.
 
یکی از مهم ترین ویژگی های MAX۳۰۱۰۲ مصرف انرژی پایین آن است: MAX۳۰۱۰۲ در طول اندازه گیری کم تر از ۶۰۰ میکرو آمپر جریان می کشد. همچنین می توان MAX۳۰۱۰۲ را در حالت آماده به کار (standby mode) قرار داد، بطوریکه فقط 0.7 میکرو آمپر جریان می کشد. این مصرف انرژی پایین امکان استفاده از این ماژول را در دستگاه های مجهز به باتری مانند گوشی های همراه، دستگاه های ثبت سیگنال پوشیدنی یا ساعت های هوشمند را فراهم می کند.
 
سنسور دما On-Chip
MAX۳۰۱۰۲ دارای یک سنسور دمایی on-chip است که می تواند برای کالیبره کردن اندازه گیری ها مورد استفاده قرار گیرد. این سنسور دما بسیار دقیقی است که دمای را در محدوده ۴۰- تا ۸۵+ درجه سانتی گراد با دقت مثبت/منفی 1 درجه سانتی گراد اندازه گیری می کند.
 
پروتکل ارتباطی I۲C
این ماژول از پروتکل ارتباطی ساده دو سیمه I۲C برای ارتباط با میکروکنترلر استفاده می کند و دارای یک آدرس ثابت I۲C است: عدد هگز ۰xAE (برای عملیات نوشتن) و عدد هگز ۰xAF (برای عملیات خواندن).
 
بافر FIFO
 در آی سی MAX۳۰۱۰۲ یک بافر FIFO برای ذخیره داده ها تعبیه شده است. این بافر FIFO دارای یک بانک حافظه ۳۲ نمونه ای است، به این معنی که می تواند تا ۳۲ نمونه SpO۲ و ضربان قلب را در خود ذخیره کند. بافر FIFO می تواند میکروکنترلر را از خواندن هر نمونه داده جدید از سنسور رها کند، در نتیجه در مصرف انرژی دستگاه صرفه جویی می کند.
 
ماژول پالس اکسیمتر و ضربان قلب MAX۳۰۱۰۲ چگونه کار می کند؟
ماژول MAX۳۰۱۰۲ و یا هر نوع حسگر پالس اکسیمتر و ضربان قلب دیگر شامل یک جفت LED با شدت نور بالا (نور قرمز و مادون قرمز، برای دو طول موج مختلف) و یک فتودتکتور است. طول موج های این LED ها به ترتیب ۶۶۰nm و ۸۸۰nm (نانومتر) هستند.
MAX۳۰۱۰۲ با تاباندن هر دو نور با فواصل زمانی منظم بر روی انگشت یا لاله گوش (در واقع در هر جایی که پوست خیلی ضخیم نباشد، هر دو نور می توانند به راحتی به بافت نفوذ کنند) و با اندازه گیری نور بازتاب شده از بافت توسط فتودتکتور کار می کند. این روش تشخیص پالس ها از طریق نور، فتوپلیسموگراف نامیده می شود.

عملکرد MAX۳۰۱۰۲ را می توان به دو بخش تقسیم کرد: اندازه گیری ضربان قلب و اندازه گیری سطح اکسیژن خون.
 
اندازه گیری ضربان قلب
هموگلوبین اکسیژن دار (HbO۲) در خون شریانی خاصیت جذب نور IR را دارد. هر چه خون قرمزتر باشد (هر چه هموگلوبین بالاتر باشد) نور IR بیشتری جذب می شود. وقتی خون با هر ضربان قلب از طریق انگشت پمپ می شود، مقدار نور منعکس شده تغییر کرده و یک شکل موج در خروجی فتودتکتور ایجاد می کند. با تابش پیوسته نور و پردازش داده های دریافتی از فتودتکتور می توان ضربان قلب را براحتی محاسبه نمود.
 
سنجش میزان اکسیژن خون
روش پالس اکسیمتر بر اساس این اصل است که مقدار نور قرمز و مادون قرمز جذب شده در خون، بسته به میزان اکسیژن در خون شما تغییر می کند. در نمودار زیر طیف جذب هموگلوبین اکسیژن دار (HbO۲) و هموگلوبین بدون اکسیژن (Hb) نمایش داده شده است.
همانطور که در نمودار مشاهده می کنید، خون بدون اکسیژن نور قرمز (طول موج ۶۶۰nm) بیشتری را جذب می کند، در حالیکه خون اکسیژن دار نور مادون قرمز (طول موج ۸۸۰nm) بیشتری را جذب می کند. با اندازه گیری نسبت نور IR و RED دریافت شده توسط فتودتکتور، سطح اکسیژن (SpO۲) در خون محاسبه می شود.
 
آیا می دانستید؟ اندازه گیری اشباع اکسیژن هموگلوبین (HbO۲) با اندازه گیری جذب نور قرمز و مادون قرمز در سال ۱۹۳۵ توسط یک پزشک آلمانی به نام کارل ماتس معرفی شد. در آن زمان، چون آشکاساز مناسب نوری وجود نداشت، به جای طیف باند مادون قرمز، از طیف باند نور سبز استفاده شد. با پیشرفت تکنولوژی، روش های قابل اطمینان تری توسعه یافتند و نور سبز جای خود را به نور مادون قرمز داد.
 
پایه های ماژول MAX۳۰۱۰۲
در شکل زیر پایه های ماژول MAX۳۰۱۰۲ نمایش داده شده است.
 
 
پایه VIN: پایه تغذیه مثبت ماژول است که می توانید آن را به ولتاژ ۳.۳V یا ۵V منبع تغذیه یا آردوینو خود متصل کنید.
پایه SCL: پایه کلاک ارتباط I۲C است که باید به پایه کلاک میکروکنترلر یا آردوینو خود متصل کنید.

پایه SDA:  پایه دیتا ارتباط I۲C است که باید به پایه دیتا میکروکنترلر یا آردوینو خود متصل کنید.
پایهINT: را می توان طوری برنامه ریزی کرد که ماژول به ازای هر پالس یک وقفه ایجاد کند. این پایه درین باز است، در نتیجه باید توسط مقاومت pull-up بایاس شود. هنگامی که یک وقفه رخ دهد پایه INT به حالت LOW رفته و تا زمانیکه وقفه فعال باشد در حالت LOW می ماند.
پایه IRD: پایه درایور LED نور مادون قرمز ماژول است که می توان توسط این پایه ال ای دی مادون قرمز را کنترل کرد.
پایه RD: پایه درایور LED نور قرمز ماژول است که می توان توسط این پایه ال ای دی قرمز را کنترل کرد.
پایه GND: پایه زمین مدار ماژول.
 
اتصال ماژول MAX۳۰۱۰۲ به آردوینو
حالا که همه چیز را در مورد ماژول می دانیم، می توانیم آن را به آردوینو متصل کنیم.

با اتصال پین VIN به منبع تغذیه شروع کنید، همانطور که توضیح داده شد به هر کدام از پایه های 3.3 و 5 ولت آردوینو می توان این پایه را متصل نمود. همچنین پایه GND را به پایه زمین مدار برد خود متصل کنید. پایه SCL را به پایه کلاک I۲C و پایه SDA را به پین دیتا I۲C آردوینو خود متصل کنید. توجه داشته باشید که هر برد آردوینو دارای شماره پایه های I۲C متفاوتی است که باید بر اساس نقشه مدار خود متصل شوند. در برد آردوینو UNO پایه SDA و SCL به ترتیب پایه های A4 و A5 روی برد آردوینو هستند. شکل زیر نحوه اتصال پایه ها را نشان می دهد.
 
 
نصب کتابخانه

چندین کتابخانه برای استفاده از ماژول MAX۳۰۱۰۲ در دسترس است. با این حال در این آموزش ما از کتابخانه SparkFun Electronics استفاده می کنیم. این کتابخانه بیشتر ویژگی های MAX۳۰۱۰۲ را نشان می دهد و توابع ساده و آسان برای محاسبه ضربان قلب و SpO۲ را ارائه می دهد. شما می توانید این کتابخانه را از قسمت Manage libraries نرم افزار Arduino IDE خود دانلود کنید.
برای نصب کتابخانه به مسیر Sketch > Include Library > Manage Libraries بروید. در ابتدا کمی صبر کنید تا تمامی کتابخانه های در دسترس در این قسمت بارگزاری شود.
 
با تایپ عبارت MAX۳۰۱۰x جستجوی خود را فیلتر کنید. کتابخانه Sparkfun MAX3010x را پیدا کرده، طبق عکس زیر بر روی آن کلیک کنید و سپس Install را انتخاب کنید.
 
مثال های کتابخانه MAX۳۰۱۰۲

کتابخانه SparkFun_MAX۳۰۱۰x دارای تعدادی مثال برای راه اندازی ماژول است. شما می توانید از این کدهای نمونه برای توسعه کد خودتان استفاده کنید.
 
برای دسترسی به مثال های نمونه این کتابخانه، به مسیر File > Examples > SparkFun MAX3010x بروید.
 

مثال 1: خواندن مقادیر طیف نور قرمز و مادون قرمز

در مثال اول مقادیر پردازش نشده طیف نور قرمز و مادون قرمز خوانده شده توسط دتکتور ماژول را آردوینو خروجی می دهد. کد زیر را بر روی آردوینو خود بارگذاری کنید و ترمینال سریال را در نرم افزار باز کنید تا مقادیر چاپ شده را ببینید.

دست خود را روی سنسور بگذارید، با توجه به اینکه دست شما مقادیر مختلفی از نور را منعکس می کند، باید شاهد تغییر در مقادیر باشید. بررسی تغییرات داده های نمایش داده شده در ترمینال سریال می تواند سخت باشد اگر شما تنها به مقادیر نگاه کنید. برای رسم سیگنال ها و نمایش آن می توانید از قسمت Serial plotter نرم افزار آردوینو کمک بگیرید. ابتدا در حلقه تکرار کد بالا کد زیر را جایگزین کنید:

در نرم افزار Arduino IDE قسمت Tools > Serial Plotter را انتخاب کنید. وقتی دستتان را روی حسگر حرکت می دهید، باید سیگنال هایی شبیه به شکل زیر را ببینید.

مثال 2: خواندن دما

در این مثال از حسگر دمای داخل آیسی ماژول برای خواندن دمای سلسیوس و فارنهایت استفاده می کنیم. برای کالیبره کردن اندازه گیری های HR و SpO۲ می توان از این سنسور دما استفاده کرد، اما بطور مجزا اگر نیاز به خواندن مقادیر دما با سرعت مناسب دارید نیز می توانید از این سنسور دمای داخل آیسی استفاده کنید.

حالا سعی کنید سنسور را با انگشت خود گرم کنید. باید دمایی شبیه خروجی شکل زیر را ببینید.

 

مثال 3: اندازه گیری ضربان قلب (BPM)

در این مثال، ضربان قلب (ضربان در دقیقه یا BPM) فردی که انگشت خود را بدرستی بر روی سنسور قرار داده است، اندازه گیری می شود. توجه داشته باشید که این در این مثال ضربان قلب از روش نوری محاسبه می شود و مستعد خوانش اطلاعات اشتباه است. بنابراین لطفا از آن برای تشخیص پزشکی واقعی استفاده نکنید.

پس از آپلود کد به برد آردوینو، انگشت خود را تا جای ممکن روی سنسور ثابت نگه دارید و چند ثانیه صبر کنید تا داده های نمایش داده شده در رنج منطقی نمایش داده شوند.

مشکل در دیدن ضربان قلب؟

اگر شما در دیدن ضربان قلب مشکل دارید، به موارد زیر توجه کنید:
۱-اگر سنسور را بیش از حد محکم بر روی انگشت ببندید، تمام خون انگشتانتان را فشرده می کنید و اثری از آن وجود نخواهد داشت. همچنین اگر آن را بیش از حد شل ببندید، نویز ناشی از حرکت سنسور بر روی انگشت و نور محیط را دریافت خواهید کرد. بستن سنسور بطور محکم (نه خیلی محکم، نه خیلی شل) بر روی انگشتان باعث می شود این سنسور خروجی تمیزی را به بدهد.
۲-فشار متغیر می تواند باعث شود خون به شکل متفاوتی در انگشت شما جریان پیدا کند و باعث شود که خوانش سنسور دچار مشکل شود. سعی کنید با اتصال سنسور به انگشت خود با استفاده از یک بند لاستیکی یا دیگر ابزارهای سفت کننده مشابه، فشار ثابتی را اعمال کنید.
۳-سنسور را در قسمت های مختلف بدن خود که بافت مویرگی دارند (مانند لاله گوش) امتحان کنید.

مثال 4: اندازه گیری اشباع اکسیژن (SpO۲)

در مثال آخر، سطح اکسیژن خون (SpO۲) فردی که انگشت خود را بدرستی بر روی سنسور قرار داده است، اندازه گیری می شود.

پس از آپلود کد به برد آردوینو، انگشت خود را تا جای ممکن روی سنسور ثابت نگه دارید و چند ثانیه صبر کنید تا داده های نمایش داده شده در رنج منطقی نمایش داده شوند.

منبع سایت lastminuteengineers.com

دسته‌بندی: آموزش آردوینو

مقالات مرتبط رو حتما ببینید

نظر شما برای ما با ارزشه

0 دیدگاه