সুচিপত্র:

কিভাবে স্টোন এলসিডি -তে হার্ট রেট প্রদর্শন করা যায়: 31 টি ধাপ
কিভাবে স্টোন এলসিডি -তে হার্ট রেট প্রদর্শন করা যায়: 31 টি ধাপ

ভিডিও: কিভাবে স্টোন এলসিডি -তে হার্ট রেট প্রদর্শন করা যায়: 31 টি ধাপ

ভিডিও: কিভাবে স্টোন এলসিডি -তে হার্ট রেট প্রদর্শন করা যায়: 31 টি ধাপ
ভিডিও: জন্ডিস,হেপাটাইটিস, সিরোসিস। Discussion about Common Liver Diseases: Jaundice, hepatitis, cirrhosis. 2024, জুলাই
Anonim
AR দিয়ে STONE LCD তে হার্ট রেট কিভাবে দেখাবেন
AR দিয়ে STONE LCD তে হার্ট রেট কিভাবে দেখাবেন

সংক্ষিপ্ত ভূমিকা

কিছু সময় আগে, আমি অনলাইনে কেনাকাটার ক্ষেত্রে হার্ট রেট সেন্সর মডিউল MAX30100 খুঁজে পেয়েছি। এই মডিউল ব্যবহারকারীদের রক্তের অক্সিজেন এবং হার্ট রেট ডেটা সংগ্রহ করতে পারে, যা ব্যবহার করাও সহজ এবং সুবিধাজনক। তথ্য অনুসারে, আমি দেখেছি যে আরডুইনো লাইব্রেরির ফাইলগুলিতে MAX30100 এর লাইব্রেরি রয়েছে। এর মানে হল, যদি আমি Arduino এবং MAX30100 এর মধ্যে যোগাযোগ ব্যবহার করি, আমি ড্রাইভার ফাইলগুলিকে পুনর্লিখন না করে সরাসরি Arduino লাইব্রেরি ফাইলগুলিতে কল করতে পারি। এটি একটি ভাল জিনিস, তাই আমি MAX30100 মডিউল কিনেছি।

ধাপ 1: আমি MAX30100 এর হার্ট রেট এবং রক্তের অক্সিজেন সংগ্রহ ফাংশন যাচাই করতে Arduino ব্যবহার করার সিদ্ধান্ত নিয়েছি।

আমি MAX30100 এর হার্ট রেট এবং রক্তের অক্সিজেন সংগ্রহ ফাংশন যাচাই করতে Arduino ব্যবহার করার সিদ্ধান্ত নিয়েছি।
আমি MAX30100 এর হার্ট রেট এবং রক্তের অক্সিজেন সংগ্রহ ফাংশন যাচাই করতে Arduino ব্যবহার করার সিদ্ধান্ত নিয়েছি।

দ্রষ্টব্য: এই মডিউলটি কেবলমাত্র 3.3 V স্তরের MCU যোগাযোগের সাথে ডিফল্ট, কারণ এটি IIC পিন ব্যবহার করার জন্য ডিফল্ট 4.7 K থেকে 1.8 V এর প্রতিরোধ ক্ষমতা বাড়ায়, তাই Arduino- এর সাথে ডিফল্টভাবে কোন যোগাযোগ নেই, যদি আপনি Arduino এর সাথে যোগাযোগ করতে চান এবং ভিআইএন পিনের সাথে সংযুক্ত আইআইসি পিন পুল-আপ প্রতিরোধকের দুটি 4.7 কে প্রয়োজন, এই বিষয়বস্তুগুলি অধ্যায়ের পিছনে চালু করা হবে।

পদক্ষেপ 2: কার্যকরী অ্যাসাইনমেন্ট

এই প্রকল্পটি শুরু করার আগে, আমি কিছু সহজ বৈশিষ্ট্য সম্পর্কে চিন্তা করেছি:

  • হার্ট রেট ডেটা এবং রক্তের অক্সিজেন ডেটা সংগ্রহ করা হয়েছিল
  • এলসিডি স্ক্রিনের মাধ্যমে হার্ট রেট এবং রক্তের অক্সিজেন ডেটা প্রদর্শিত হয়

এগুলি কেবল দুটি বৈশিষ্ট্য, তবে আমরা যদি এটি বাস্তবায়ন করতে চাই, আমাদের আরও চিন্তাভাবনা করতে হবে:

  • কোন মাস্টার MCU ব্যবহার করা হয়?
  • কোন ধরনের এলসিডি ডিসপ্লেয়ার?

আমরা আগে উল্লেখ করেছি, আমরা MCU- এর জন্য Arduino ব্যবহার করি, কিন্তু এটি একটি Arduino LCD ডিসপ্লে প্রকল্প, তাই আমাদের উপযুক্ত LCD ডিসপ্লে মডিউল নির্বাচন করতে হবে। আমার এখানে একটি স্টোন STVI070WT-01 ডিসপ্লেয়ার আছে, কিন্তু যদি Arduino এর সাথে যোগাযোগ করতে হয়, তাহলে MAX3232 লেভেল রূপান্তর করার প্রয়োজন হয়। তারপর মৌলিক ইলেকট্রনিক উপকরণ নিম্নরূপ নির্ধারণ করা হয়:

1. আরডুইনো মিনি প্রো ডেভেলপমেন্ট বোর্ড

2. MAX30100 হার্ট রেট এবং রক্ত অক্সিজেন সেন্সর মডিউল

3. STONE STVI070WT-01 LCD সিরিয়াল পোর্ট ডিসপ্লে মডিউল

4. MAX3232 মডিউল

ধাপ 3: হার্ডওয়্যার পরিচিতি

MAX30100

MAX30100 হল একটি সমন্বিত পালস অক্সিমেট্রি এবং হার্ট রেট মনিটর সেন্সর সমাধান। এটি পালস অক্সিমেট্রি এবং হার্ট-রেট সংকেত সনাক্ত করতে দুটি এলইডি, একটি ফটোডেটেক্টর, অপ্টিমাইজড অপটিক্স এবং লো-নয়েজ এনালগ সিগন্যাল প্রসেসিংকে একত্রিত করে।

MAX30100 1.8V এবং 3.3V পাওয়ার সাপ্লাই থেকে কাজ করে এবং সফটওয়্যারের মাধ্যমে নগণ্য স্ট্যান্ডবাই কারেন্ট দিয়ে চালিত হতে পারে, যা বিদ্যুৎ সরবরাহকে সব সময় সংযুক্ত থাকার অনুমতি দেয়।

ধাপ 4: অ্যাপ্লিকেশন

● পরিধানযোগ্য ডিভাইস

● ফিটনেস সহকারী ডিভাইস

● মেডিকেল মনিটরিং ডিভাইস

ধাপ 5: সুবিধা এবং বৈশিষ্ট্য

1, সম্পূর্ণ পালস অক্সিমিটার এবং হার্ট রেট সেন্সর সলিউশন ডিজাইনকে সহজ করে

  • ইন্টিগ্রেটেড এলইডি, ফটো সেন্সর এবং হাই -পারফরমেন্স এনালগ ফ্রন্ট -এন্ড
  • ক্ষুদ্র 5.6 মিমি x 2.8 মিমি x 1.2 মিমি 14-পিন অপটিক্যালি উন্নত সিস্টেম-ইন-প্যাকেজ

2, আল্ট্রা-লো-পাওয়ার অপারেশন পরিধানযোগ্য ডিভাইসের জন্য ব্যাটারি লাইফ বৃদ্ধি করে

  • বিদ্যুৎ সাশ্রয়ের জন্য প্রোগ্রামযোগ্য নমুনা হার এবং LED কারেন্ট
  • আল্ট্রা-লো শাটডাউন কারেন্ট (0.7µA, টাইপ)

3, উন্নত কার্যকারিতা পরিমাপ কর্মক্ষমতা উন্নত করে

  • উচ্চ SNR শক্তসমর্থ মোশন আর্টিফ্যাক্ট স্থিতিস্থাপকতা প্রদান করে
  • ইন্টিগ্রেটেড অ্যাম্বিয়েন্ট লাইট বাতিল
  • উচ্চ নমুনা হার ক্ষমতা
  • দ্রুত ডেটা আউটপুট ক্ষমতা

ধাপ 6: সনাক্তকরণ নীতি

সনাক্তকরণ নীতি
সনাক্তকরণ নীতি

নাড়ির অক্সিজেন স্যাচুরেশন (SpO2) এবং পালস (হার্টবিটের সমতুল্য) অনুমান করতে সেন্সরের বিরুদ্ধে আপনার আঙুল টিপুন।

পালস অক্সিমিটার (অক্সিমিটার) হল একটি মিনি-স্পেকট্রোমিটার যা রক্তের অক্সিজেন স্যাচুরেশন বিশ্লেষণ করার জন্য বিভিন্ন লাল কোষ শোষণ বর্ণালীর নীতি ব্যবহার করে। এই রিয়েল-টাইম এবং দ্রুত পরিমাপ পদ্ধতিটি অনেক ক্লিনিকাল রেফারেন্সে ব্যাপকভাবে ব্যবহৃত হয়। আমি MAX30100 খুব বেশি প্রবর্তন করব না, কারণ এই উপকরণগুলি ইন্টারনেটে উপলব্ধ। আগ্রহী বন্ধুরা এই হার্ট রেট টেস্ট মডিউলের তথ্য ইন্টারনেটে দেখতে পারেন এবং এর সনাক্তকরণের নীতি সম্পর্কে গভীরভাবে বুঝতে পারেন।

ধাপ 7: STONE STVI070WT-01

স্টোন STVI070WT-01
স্টোন STVI070WT-01

প্রদর্শনকারীর ভূমিকা

এই প্রকল্পে, আমি হার্ট রেট এবং রক্তের অক্সিজেন ডেটা প্রদর্শন করতে STONE STVI070WT-01 ব্যবহার করব। ডিসপ্লে স্ক্রিনের ভিতরে ড্রাইভার চিপ সংহত করা হয়েছে এবং ব্যবহারকারীদের ব্যবহারের জন্য সফটওয়্যার রয়েছে। ব্যবহারকারীদের শুধুমাত্র ডিজাইন করা UI ছবির মাধ্যমে বোতাম, পাঠ্য বাক্স এবং অন্যান্য যুক্তি যুক্ত করতে হবে, এবং তারপর কনফিগারেশন ফাইল তৈরি করতে হবে এবং চালানোর জন্য ডিসপ্লে স্ক্রিনে ডাউনলোড করতে হবে। STVI070WT-01 এর প্রদর্শন MCU- এর সাথে uart-rs232 সংকেতের মাধ্যমে যোগাযোগ করে, যার অর্থ হল RS232 সংকেতকে TTL সংকেতে রূপান্তর করার জন্য আমাদের একটি MAX3232 চিপ যুক্ত করতে হবে, যাতে আমরা Arduino MCU- এর সাথে যোগাযোগ করতে পারি।

ধাপ:: যদি আপনি নিশ্চিত না হন যে কিভাবে MAX3232 ব্যবহার করবেন, অনুগ্রহ করে নিচের ছবিগুলি দেখুন:

যদি আপনি নিশ্চিত না হন যে MAX3232 কিভাবে ব্যবহার করবেন, অনুগ্রহ করে নিচের ছবিগুলি দেখুন
যদি আপনি নিশ্চিত না হন যে MAX3232 কিভাবে ব্যবহার করবেন, অনুগ্রহ করে নিচের ছবিগুলি দেখুন

যদি আপনি মনে করেন যে স্তরের রূপান্তর খুব ঝামেলাপূর্ণ, আপনি STONE এর অন্যান্য ধরণের ডিসপ্লেয়ার চয়ন করতে পারেন, যার মধ্যে কিছু সরাসরি uart-ttl সংকেত আউটপুট করতে পারে।

অফিসিয়াল ওয়েবসাইটে বিস্তারিত তথ্য এবং ভূমিকা রয়েছে:

ধাপ 9: আপনার যদি ভিডিও টিউটোরিয়াল এবং টিউটোরিয়াল ব্যবহার করার প্রয়োজন হয়, আপনি এটি অফিসিয়াল ওয়েবসাইটেও খুঁজে পেতে পারেন।

আপনার যদি ভিডিও টিউটোরিয়াল এবং টিউটোরিয়াল ব্যবহার করার প্রয়োজন হয়, আপনি এটি অফিসিয়াল ওয়েবসাইটেও খুঁজে পেতে পারেন।
আপনার যদি ভিডিও টিউটোরিয়াল এবং টিউটোরিয়াল ব্যবহার করার প্রয়োজন হয়, আপনি এটি অফিসিয়াল ওয়েবসাইটেও খুঁজে পেতে পারেন।

ধাপ 10: উন্নয়ন পদক্ষেপ

স্টোন ডিসপ্লে স্ক্রিন ডেভেলপমেন্টের তিনটি ধাপ:

  • স্টোন টুল সফটওয়্যার দিয়ে ডিসপ্লে লজিক এবং বাটন লজিক ডিজাইন করুন এবং ডিসপ্লে মডিউলে ডিজাইন ফাইল ডাউনলোড করুন।
  • MCU সিরিয়াল পোর্টের মাধ্যমে STONE LCD ডিসপ্লে মডিউলের সাথে যোগাযোগ করে।
  • ধাপ 2 এ প্রাপ্ত তথ্যের সাথে, MCU অন্যান্য কাজ করে।

ধাপ 11: স্টোন টুল সফটওয়্যার ইনস্টলেশন

স্টোন টুল সফটওয়্যার ইনস্টলেশন
স্টোন টুল সফটওয়্যার ইনস্টলেশন

স্টোন টুল সফটওয়্যারের সর্বশেষ সংস্করণ (বর্তমানে TOOL2019) ওয়েবসাইট থেকে ডাউনলোড করুন এবং এটি ইনস্টল করুন।

সফটওয়্যারটি ইন্সটল করার পর নিচের ইন্টারফেসটি খোলা হবে:

একটি নতুন প্রকল্প তৈরি করতে উপরের বাম কোণে "ফাইল" বোতামে ক্লিক করুন, যা আমরা পরে আলোচনা করব।

ধাপ 12: Arduino

Arduino একটি ওপেন সোর্স ইলেকট্রনিক প্রোটোটাইপ প্ল্যাটফর্ম যা ব্যবহার করা সহজ এবং ব্যবহার করা সহজ। এতে হার্ডওয়্যার অংশ (বিভিন্ন উন্নয়ন বোর্ড যা Arduino স্পেসিফিকেশনের সাথে সামঞ্জস্যপূর্ণ) এবং সফ্টওয়্যার অংশ (Arduino IDE এবং সম্পর্কিত ডেভেলপমেন্ট কিট) অন্তর্ভুক্ত করে।

হার্ডওয়্যার অংশ (বা ডেভেলপমেন্ট বোর্ড) একটি মাইক্রোকন্ট্রোলার (MCU), ফ্ল্যাশ মেমরি (ফ্ল্যাশ), এবং ইউনিভার্সাল ইনপুট/আউটপুট ইন্টারফেস (GPIO) এর একটি সেট নিয়ে গঠিত, যা আপনি মাইক্রোকম্পিউটার মাদারবোর্ড হিসেবে ভাবতে পারেন। সফটওয়্যারের অংশটি মূলত পিসিতে Arduino IDE, সংশ্লিষ্ট বোর্ড-লেভেল সাপোর্ট প্যাকেজ (BSP) এবং সমৃদ্ধ তৃতীয় পক্ষের ফাংশন লাইব্রেরির সমন্বয়ে গঠিত। আপনার প্রোগ্রাম লিখতে। আরডুইনো একটি ওপেন সোর্স প্ল্যাটফর্ম। এখন পর্যন্ত, Arduino Uno, Arduino Nano, ArduinoYun সহ আরও অনেক মডেল এবং অনেকগুলি নিয়ন্ত্রিত নিয়ামক রয়েছে। উপরন্তু, Arduino IDE এখন শুধু Arduino সিরিজ ডেভেলপমেন্ট বোর্ডগুলিকে সমর্থন করে না, বরং জনপ্রিয় ডেভেলপমেন্ট বোর্ডের জন্য সমর্থন যোগ করে BSP প্রবর্তনের মাধ্যমে ইন্টেল গ্যালিলিও এবং NodeMCU হিসাবে।

Arduino পরিবেশকে অনুভব করে বিভিন্ন সেন্সরের মাধ্যমে, আলো, মোটর এবং অন্যান্য যন্ত্রগুলিকে নিয়ন্ত্রণ করে এবং পরিবেশকে প্রভাবিত করে। Arduino এর জন্য Arduino প্রোগ্রামিং ভাষা (Wiring এর উপর ভিত্তি করে) এবং Arduino ডেভেলপমেন্ট এনভায়রনমেন্ট (প্রসেসিং এর উপর ভিত্তি করে) প্রয়োগ করা হয়। অন্যান্য (যেমন ফ্ল্যাশ, প্রসেসিং, ম্যাক্সএমএসপি)।

ধাপ 13: উন্নয়ন পরিবেশ

উন্নয়ন পরিবেশ
উন্নয়ন পরিবেশ

Arduino উন্নয়ন পরিবেশ হল Arduino IDE, যা ইন্টারনেট থেকে ডাউনলোড করা যায়।

Arduino এর অফিসিয়াল ওয়েবসাইটে লগ ইন করুন এবং সফটওয়্যারটি ডাউনলোড করুন https://www.arduino.cc/en/Main/Software?setlang=c… Arduino IDE ইনস্টল করার পর, যখন আপনি সফটওয়্যারটি খুলবেন তখন নিচের ইন্টারফেসটি দেখা যাবে:

Arduino IDE ডিফল্টভাবে দুটি ফাংশন তৈরি করে: সেটআপ ফাংশন এবং লুপ ফাংশন ইন্টারনেটে অনেক Arduino ভূমিকা আছে। আপনি যদি কিছু বুঝতে না পারেন, তাহলে আপনি এটি খুঁজে পেতে ইন্টারনেটে যেতে পারেন।

ধাপ 14: আরডুইনো এলসিডি প্রকল্প বাস্তবায়ন প্রক্রিয়া

আরডুইনো এলসিডি প্রকল্প বাস্তবায়ন প্রক্রিয়া
আরডুইনো এলসিডি প্রকল্প বাস্তবায়ন প্রক্রিয়া

হার্ডওয়্যার সংযোগ

কোড লেখার পরবর্তী ধাপটি যাতে সহজে চলে যায় তা নিশ্চিত করার জন্য, আমাদের প্রথমে হার্ডওয়্যার সংযোগের নির্ভরযোগ্যতা নির্ধারণ করতে হবে।

এই প্রকল্পে মাত্র চার টুকরো হার্ডওয়্যার ব্যবহার করা হয়েছিল:

1. আরডুইনো মিনি প্রো ডেভেলপমেন্ট বোর্ড

2. STONE STVI070WT-01 tft-lcd ডিসপ্লে স্ক্রিন

3. MAX30100 হার্ট রেট এবং রক্ত অক্সিজেন সেন্সর

4. MAX3232 (rs232-> TTL) Arduino Mini Pro ডেভেলপমেন্ট বোর্ড এবং STVI070WT-01 TFT-LCD ডিসপ্লে স্ক্রিন UART এর মাধ্যমে সংযুক্ত, যার জন্য MAX3232 এর মাধ্যমে লেভেল রূপান্তর প্রয়োজন, এবং তারপর Arduino Mini Pro ডেভেলপমেন্ট বোর্ড এবং MAX30100 মডিউল সংযুক্ত করা হয় আইআইসি ইন্টারফেস। স্পষ্টভাবে চিন্তা করার পরে, আমরা নিম্নলিখিত তারের ছবি আঁকতে পারি:

ধাপ 15:

ছবি
ছবি

হার্ডওয়্যার সংযোগে কোন ত্রুটি নেই তা নিশ্চিত করুন এবং পরবর্তী ধাপে এগিয়ে যান।

ধাপ 16: TFT LCD ইউজার ইন্টারফেস ডিজাইন

টিএফটি এলসিডি ইউজার ইন্টারফেস ডিজাইন
টিএফটি এলসিডি ইউজার ইন্টারফেস ডিজাইন

প্রথমত, আমাদের একটি UI ডিসপ্লে ইমেজ ডিজাইন করতে হবে, যা ফটোশপ বা অন্যান্য ইমেজ ডিজাইন টুল দ্বারা ডিজাইন করা যায়। UI ডিসপ্লে ইমেজ ডিজাইন করার পর ছবিটি-j.webp

স্টোন টুল 2019 সফটওয়্যারটি খুলুন এবং একটি নতুন প্রকল্প তৈরি করুন:

ধাপ 17: নতুন প্রকল্পে ডিফল্টরূপে লোড হওয়া ছবিটি সরান এবং আমাদের ডিজাইন করা UI চিত্র যুক্ত করুন।

নতুন প্রকল্পে ডিফল্টভাবে লোড হওয়া ছবিটি সরান এবং আমাদের ডিজাইন করা UI চিত্র যুক্ত করুন।
নতুন প্রকল্পে ডিফল্টভাবে লোড হওয়া ছবিটি সরান এবং আমাদের ডিজাইন করা UI চিত্র যুক্ত করুন।

ধাপ 18: পাঠ্য প্রদর্শন উপাদান যোগ করুন

টেক্সট ডিসপ্লে কম্পোনেন্ট যোগ করুন
টেক্সট ডিসপ্লে কম্পোনেন্ট যোগ করুন

টেক্সট ডিসপ্লে কম্পোনেন্ট যোগ করুন, ডিসপ্লে ডিজিট এবং ডেসিমেল পয়েন্ট ডিজাইন করুন, ডিসপ্লেয়ারে টেক্সট ডিসপ্লে কম্পোনেন্টের স্টোরেজ লোকেশন পান।

প্রভাবটি নিম্নরূপ:

ধাপ 19:

পাঠ্য প্রদর্শন উপাদান ঠিকানা:

  • সংযোগ স্টা: 0x0008
  • হার্ট রেট: 0x0001

রক্তের অক্সিজেন: 0x0005 UI ইন্টারফেসের মূল বিষয়বস্তু নিম্নরূপ:

  • সংযোগ অবস্থা
  • হার্ট রেট ডিসপ্লে
  • রক্তের অক্সিজেন দেখা গেল

ধাপ 20: কনফিগারেশন ফাইল তৈরি করুন

কনফিগারেশন ফাইল তৈরি করুন
কনফিগারেশন ফাইল তৈরি করুন

একবার UI ডিজাইন সম্পন্ন হলে, কনফিগারেশন ফাইলটি STVI070WT-01 ডিসপ্লেতে তৈরি এবং ডাউনলোড করা যাবে।

প্রথমে, ধাপ 1 সম্পাদন করুন, তারপরে কম্পিউটারে ইউএসবি ফ্ল্যাশ ড্রাইভ সন্নিবেশ করান, এবং ডিস্ক প্রতীক প্রদর্শিত হবে। তারপরে ইউএসবি ফ্ল্যাশ ড্রাইভে কনফিগারেশন ফাইলটি ডাউনলোড করতে "ইউ-ডিস্কে ডাউনলোড করুন" এ ক্লিক করুন এবং তারপরে আপগ্রেডটি সম্পন্ন করতে STVI070WT-01 এ ইউএসবি ফ্ল্যাশ ড্রাইভ োকান।

ধাপ 21: MAX30100

MAX30100
MAX30100

MAX30100 IIC এর মাধ্যমে যোগাযোগ করে।এর কার্য নীতি হল ইনফ্রারেড LED বিকিরণের মাধ্যমে হৃদস্পন্দনের ADC মান পাওয়া যায়। MAX30100 রেজিস্টারকে পাঁচটি ভাগে ভাগ করা যায়: রাজ্য নিবন্ধন, FIFO, নিয়ন্ত্রণ নিবন্ধন, তাপমাত্রা নিবন্ধন এবং ID নিবন্ধন। তাপমাত্রা দ্বারা সৃষ্ট বিচ্যুতি সংশোধন করতে চিপের তাপমাত্রার মান পড়ে। আইডি রেজিস্টার চিপের আইডি নম্বর পড়তে পারে।

MAX30100 আইআইসি যোগাযোগ ইন্টারফেসের মাধ্যমে আরডুইনো মিনি প্রো ডেভেলপমেন্ট বোর্ডের সাথে সংযুক্ত। Arduino IDE তে রেডিমেড MAX30100 লাইব্রেরি ফাইল আছে, তাই আমরা MAX30100 এর রেজিস্টার অধ্যয়ন না করেই হার্ট রেট এবং রক্তের অক্সিজেন ডেটা পড়তে পারি।

ধাপ 22: MAX30100 IIC পুল-আপ প্রতিরোধক পরিবর্তন করুন

MAX30100 IIC পুল-আপ প্রতিরোধক পরিবর্তন করুন
MAX30100 IIC পুল-আপ প্রতিরোধক পরিবর্তন করুন

এটি লক্ষ করা উচিত যে MAX30100 মডিউলের IIC পিনের 4.7k পুল-আপ প্রতিরোধ 1.8V এর সাথে সংযুক্ত, যা তত্ত্বের ক্ষেত্রে কোন সমস্যা নয়। যাইহোক, Arduino IIC পিনের কমিউনিকেশন লজিক লেভেল 5V, তাই এটি MAX30100 মডিউলের হার্ডওয়্যার পরিবর্তন না করে Arduino এর সাথে যোগাযোগ করতে পারে না। MCU STM32 বা অন্য 3.3v লজিক লেভেল MCU হলে সরাসরি যোগাযোগ সম্ভব।

অতএব, নিম্নলিখিত পরিবর্তনগুলি করা প্রয়োজন:

একটি ইলেকট্রিক সোল্ডারিং লোহা দিয়ে ছবিতে চিহ্নিত তিনটি 4.7k রোধক অপসারণ করুন তারপর SDA এবং SCL এর VIN- এ 4.7k এর দুটি প্রতিরোধক dালুন, যাতে আমরা Arduino এর সাথে যোগাযোগ করতে পারি।

ধাপ 23: Arduino

আরডুইনো
আরডুইনো

Arduino IDE খুলুন এবং নিম্নলিখিত বোতামগুলি খুঁজুন:

ধাপ 24: MAX30100 এর জন্য দুটি লাইব্রেরি খুঁজতে "MAX30100" অনুসন্ধান করুন, তারপর ডাউনলোড এবং ইনস্টল ক্লিক করুন।

সন্ধান করা
সন্ধান করা

ধাপ 25: ইনস্টলেশনের পরে, আপনি Arduino এর LIB লাইব্রেরি ফোল্ডারে MAX30100 এর ডেমো খুঁজে পেতে পারেন:

ইনস্টলেশনের পরে, আপনি Arduino এর LIB লাইব্রেরি ফোল্ডারে MAX30100 এর ডেমো খুঁজে পেতে পারেন
ইনস্টলেশনের পরে, আপনি Arduino এর LIB লাইব্রেরি ফোল্ডারে MAX30100 এর ডেমো খুঁজে পেতে পারেন

ধাপ 26: ফাইলটি খুলতে ডাবল ক্লিক করুন।

ফাইলটি খুলতে ডাবল ক্লিক করুন।
ফাইলটি খুলতে ডাবল ক্লিক করুন।

ধাপ 27: সম্পূর্ণ কোডটি নিম্নরূপ:

এই ডেমো সরাসরি পরীক্ষা করা যাবে। যদি হার্ডওয়্যার সংযোগ ঠিক থাকে, তাহলে আপনি Arduibo ডেভেলপমেন্ট বোর্ডে কোড সংকলন ডাউনলোড করতে পারেন এবং সিরিয়াল ডিবাগিং টুলে MAX30100 এর ডেটা দেখতে পারেন।

সম্পূর্ণ কোড নিম্নরূপ:

/* Arduino-MAX30100 অক্সিমেট্রি /হার্ট রেট ইন্টিগ্রেটেড সেন্সর লাইব্রেরি কপিরাইট (C) 2016 OXullo Intersecans এই প্রোগ্রামটি বিনামূল্যে সফটওয়্যার: আপনি এটি পুনরায় বিতরণ করতে পারেন এবং /অথবা ফ্রি সফটওয়্যার ফাউন্ডেশন দ্বারা প্রকাশিত GNU জেনারেল পাবলিক লাইসেন্সের শর্তাবলীর অধীনে এটি সংশোধন করতে পারেন, লাইসেন্সের 3 সংস্করণ, অথবা (আপনার বিকল্পে) পরবর্তী কোনো সংস্করণ। এই প্রোগ্রামটি এই আশায় বিতরণ করা হয়েছে যে এটি দরকারী হবে, কিন্তু কোন গ্যারান্টি ছাড়াই; এমনকি পার্টাকুলার পারপাসের জন্য মার্চেন্টাবিলিটি বা ফিটনেসের অন্তর্নিহিত ওয়ারেন্টি ছাড়া। আরো বিস্তারিত জানার জন্য GNU সাধারণ পাবলিক লাইসেন্স দেখুন। এই প্রোগ্রামের সাথে আপনার GNU সাধারণ পাবলিক লাইসেন্সের একটি অনুলিপি পাওয়া উচিত ছিল। না হলে দেখুন। */ #অন্তর্ভুক্ত #অন্তর্ভুক্ত "MAX30100_PulseOximeter.h" #সংজ্ঞায়িত REPORTING_PERIOD_MS 1000 // PulseOximeter হল সেন্সরের উচ্চ স্তরের ইন্টারফেস // এটি অফার করে: // * বিট ডিটেকশন রিপোর্টিং // * হার্ট রেট ক্যালকুলেশন // * SPO2 (অক্সিডেশন লেভেল) পালসঅক্সিমিটার পক্স গণনা; uint32_t tsLastReport = 0; // কলব্যাক (নিচে নিবন্ধিত) বহিষ্কৃত হয় যখন একটি পালস শূন্য সনাক্ত করা হয় onBeatDetected () {Serial.println ("বীট!"); } অকার্যকর সেটআপ () {Serial.begin (115200); সিরিয়াল.প্রিন্ট ("পালস অক্সিমিটার শুরু করা.."); // PulseOximeter উদাহরণটি শুরু করুন // ব্যর্থতা সাধারণত একটি অনুপযুক্ত I2C তারের কারণে, বিদ্যুৎ সরবরাহ অনুপস্থিত // অথবা ভুল টার্গেট চিপ যদি (! Pox.begin ()) {Serial.println ("FAILED"); জন্য (;;); } অন্য {Serial.println ("SUCCESS"); } // IR LED এর জন্য ডিফল্ট কারেন্ট হল 50mA এবং এটি পরিবর্তন করা যেতে পারে // নিচের লাইনটিকে কমেন্ট করে। সমস্ত // উপলব্ধ বিকল্পগুলির জন্য MAX30100_Registers.h চেক করুন। // pox.setIRLedCurrent (MAX30100_LED_CURR_7_6MA); // বীট ডিটেকশন pox.setOnBeatDetectedCallback (onBeatDetected) এর জন্য একটি কলব্যাক নিবন্ধন করুন; } অকার্যকর লুপ () {// যত তাড়াতাড়ি সম্ভব আপডেট কল করতে ভুলবেন না pox.update (); // সিরিয়ালে অসিঙ্ক্রোনাসভাবে হার্ট রেট এবং জারণের মাত্রা ডাম্প করে // উভয়ের জন্য, 0 এর মান মানে "অবৈধ" যদি (millis () - tsLastReport> REPORTING_PERIOD_MS) {Serial.print ("হার্ট রেট:"); সিরিয়াল.প্রিন্ট (pox.getHeartRate ()); সিরিয়াল.প্রিন্ট ("bpm / SpO2:"); সিরিয়াল.প্রিন্ট (pox.getSpO2 ()); Serial.println ("%"); tsLastReport = মিলিস (); }}

ধাপ 28:

ছবি
ছবি

এই কোডটি খুবই সহজ, আমি বিশ্বাস করি আপনি এটি এক নজরে বুঝতে পারবেন। আমাকে বলতে হবে যে Arduino এর মডুলার প্রোগ্রামিং খুব সুবিধাজনক, এবং আমি এমনকি Uart এবং IIC এর ড্রাইভার কোড কিভাবে প্রয়োগ করা হয় তা বোঝার দরকার নেই।

অবশ্যই, উপরের কোডটি একটি অফিসিয়াল ডেমো, এবং STONE এর ডিসপ্লেয়ারে ডেটা প্রদর্শন করার জন্য আমাকে এখনও কিছু পরিবর্তন করতে হবে।

ধাপ 29: Arduino এর মাধ্যমে স্টোন ডিসপ্লেয়ারের কাছে ডেটা প্রদর্শন করুন

প্রথমে, আমাদের স্টোন এর ডিসপ্লেয়ারে হার্ট রেট এবং রক্তের অক্সিজেন ডেটা প্রদর্শনকারী উপাদানটির ঠিকানা পেতে হবে:

আমার প্রকল্পে, ঠিকানাটি নিম্নরূপ: হার্ট রেট ডিসপ্লে কম্পোনেন্ট ঠিকানা: 0x0001 ব্লাড অক্সিজেন ডিসপ্লে মডিউলের ঠিকানা: 0x0005 সেন্সর সংযোগ স্থিতি ঠিকানা: 0x0008 আরডুইনো সিরিয়াল পোর্টের মাধ্যমে ডিসপ্লে স্ক্রিনের সংশ্লিষ্ট ঠিকানায় ডেটা পাঠিয়ে।

ধাপ 30: পরিবর্তিত কোডটি নিম্নরূপ:

/* Arduino-MAX30100 অক্সিমেট্রি /হার্ট রেট ইন্টিগ্রেটেড সেন্সর লাইব্রেরি কপিরাইট (C) 2016 OXullo Intersecans এই প্রোগ্রামটি ফ্রি সফটওয়্যার: ফ্রি সফটওয়্যার ফাউন্ডেশন কর্তৃক প্রকাশিত GNU জেনারেল পাবলিক লাইসেন্সের শর্তাবলীর অধীনে আপনি এটি পুনরায় বিতরণ এবং /অথবা সংশোধন করতে পারেন, লাইসেন্সের 3 সংস্করণ, অথবা (আপনার বিকল্পে) পরবর্তী কোনো সংস্করণ। এই প্রোগ্রামটি এই আশায় বিতরণ করা হয়েছে যে এটি দরকারী হবে, কিন্তু কোন গ্যারান্টি ছাড়াই; এমনকি পার্টাকুলার পারপাসের জন্য মার্চেন্টাবিলিটি বা ফিটনেসের অন্তর্নিহিত ওয়ারেন্টি ছাড়া। আরো বিস্তারিত জানার জন্য GNU সাধারণ পাবলিক লাইসেন্স দেখুন। এই প্রোগ্রামের সাথে আপনার GNU সাধারণ পাবলিক লাইসেন্সের একটি অনুলিপি পাওয়া উচিত ছিল। না হলে দেখুন। */ #অন্তর্ভুক্ত #অন্তর্ভুক্ত "MAX30100_PulseOximeter.h" #নির্ধারিত প্রতিবেদন_PERIOD_MS 1000 #নির্ধারিত হার্ট_ডিস_এডডিআর 0x01 #ডিফাইন Sop2_dis_addr 0x05 #ডিফাইন কানেক্ট_স্টা_এডডার 0x08, 0x08, 0x08 0x00}; স্বাক্ষরবিহীন চর Sop2_send [8] = {0xA5, 0x5A, 0x05, 0x82, 0x00, / Sop2_dis_addr, 0x00, 0x00}; স্বাক্ষরবিহীন char connect_sta_send [8] = {0xA5, 0x5A, 0x05, 0x82, 0x00, / connect_sta_addr, 0x00, 0x00}; // PulseOximeter হল সেন্সরের উচ্চ স্তরের ইন্টারফেস // এটি অফার করে: // * বীট ডিটেকশন রিপোর্টিং // * হার্ট রেট ক্যালকুলেশন // * SpO2 (জারণ স্তর) গণনা PulseOximeter pox; uint32_t tsLastReport = 0; // কলব্যাক (নীচে নিবন্ধিত) যখন একটি পালস শূন্য সনাক্ত করা হয় onBeatDetected () {// Serial.println ("বীট!"); } অকার্যকর সেটআপ () {Serial.begin (115200); // সিরিয়াল.প্রিন্ট ("পালস অক্সিমিটার শুরু করা.."); // PulseOximeter উদাহরণ শুরু করুন // ব্যর্থতা সাধারণত একটি অনুপযুক্ত I2C তারের কারণে, বিদ্যুৎ সরবরাহ অনুপস্থিত // অথবা ভুল টার্গেট চিপ যদি (! Pox.begin ()) {// Serial.println ("FAILED"); // connect_sta_send [7] = 0x00; // Serial.write (connect_sta_send, 8); জন্য (;;); } অন্যথায় {connect_sta_send [7] = 0x01; Serial.write (connect_sta_send, 8); // Serial.println ("SUCCESS"); } // IR LED এর জন্য ডিফল্ট কারেন্ট হল 50mA এবং এটি পরিবর্তন করা যেতে পারে // নিচের লাইনটিকে কমেন্ট করে। সমস্ত // উপলব্ধ বিকল্পগুলির জন্য MAX30100_Registers.h চেক করুন।pox.setIRLedCurrent (MAX30100_LED_CURR_7_6MA); // বীট ডিটেকশন pox.setOnBeatDetectedCallback (onBeatDetected) এর জন্য একটি কলব্যাক নিবন্ধন করুন; } অকার্যকর লুপ () {// যত তাড়াতাড়ি সম্ভব আপডেট কল করতে ভুলবেন না pox.update (); // অ্যাসিঙ্ক্রোনাসিভাবে হার্ট রেট এবং অক্সিডেশন লেভেলকে সিরিয়ালে ডাম্প করুন // উভয়ের জন্য, 0 এর মান মানে "অবৈধ" যদি (millis () - tsLastReport> REPORTING_PERIOD_MS) {// Serial.print ("হার্ট রেট:"); // সিরিয়াল.প্রিন্ট (pox.getHeartRate ()); // সিরিয়াল.প্রিন্ট ("bpm / SpO2:"); // সিরিয়াল.প্রিন্ট (pox.getSpO2 ()); // Serial.println ("%"); heart_rate_send [7] = (uint32_t) pox.getHeartRate (); Serial.write (heart_rate_send, 8); Sop2_send [7] = pox.getSpO2 (); Serial.write (Sop2_send, 8); tsLastReport = মিলিস (); }}

ধাপ 31: আরডুইনো সহ এলসিডিতে হার্ট রেট প্রদর্শন করুন

আরডুইনো দিয়ে এলসিডিতে হার্ট রেট প্রদর্শন করুন
আরডুইনো দিয়ে এলসিডিতে হার্ট রেট প্রদর্শন করুন

কোডটি কম্পাইল করুন, এটি Arduino ডেভেলপমেন্ট বোর্ডে ডাউনলোড করুন, এবং আপনি পরীক্ষা শুরু করার জন্য প্রস্তুত।

আমরা দেখতে পাচ্ছি যে যখন আঙ্গুলগুলি MAX30100 ছেড়ে চলে যায়, তখন হার্ট রেট এবং রক্তের অক্সিজেন ডিসপ্লে হয় 0. আপনার হার্ট রেট এবং রক্তের অক্সিজেনের মাত্রা রিয়েল টাইমে দেখতে MAX30100 কালেক্টরে আপনার আঙুল রাখুন।

প্রভাবটি নিম্নলিখিত ছবিতে দেখা যাবে:

প্রস্তাবিত: