การใช้โมดูล Biosensing เพื่อพัฒนาอุปกรณ์สวมใส่เพื่อสุขภาพและความแข็งแรงของร่างกาย

By Stephen Evanczuk

Contributed By DigiKey's North American Editors

เนื่องด้วยความตระหนักด้านสุขภาพจากโควิด-19 ที่เพิ่มขึ้น ความสนใจในอุปกรณ์สวมใส่ที่มีตัวตรวจวัดทางชีวภาพช่วยเพิ่มความต้องการโซลูชันที่มีประสิทธิภาพมากขึ้น เพื่อตอบสนองความต้องการของผู้ใช้ในด้านฟังก์ชันการทำงานที่มีมากขึ้นและความแม่นยำที่สูงขึ้นในรูปแบบที่เล็กลง พร้อมอายุการใช้งานแบตเตอรี่ที่ยาวนานขึ้นในราคาต่ำ สำหรับนักออกแบบ สิ่งนี้นำเสนอชุดความท้าทายที่เกิดขึ้น ในขณะที่พวกเขาทำงานเพื่อให้เป็นไปตามกรอบเวลาที่นำเข้าสู่ตลาดและงบประมาณที่จำกัด การทำงานที่เป็นประโยชน์ต่อพวกเขาคือความก้าวหน้าในอุปกรณ์ตรวจวัดทางชีวภาพ ซึ่งรวมถึงการผสานการทำงานในระดับที่สูงขึ้นและโซลูชันการออกแบบที่ครอบคลุมมากขึ้น

บทความนี้จะกล่าวถึงแนวโน้มของตัวตรวจวัดทางชีวภาพและอุปกรณ์สวมใส่และความท้าทายที่นักออกแบบเผชิญ และยังมีการกล่าวถึงโมดูลตรวจวัดทางชีวภาพวัดอัตราการเต้นของหัวใจและความอิ่มตัวของออกซิเจน (SpO2) จาก Maxim Integrated และแสดงวิธีการที่นักพัฒนาสามารถนำไปใช้กับอุปกรณ์สวมใส่ให้มีประสิทธิภาพมายิ่งขึ้น

ข้อกำหนดการออกแบบไบโอเซนเซอร์

ขณะที่การตรวจวัดอัตราการเต้นหัวใจนั้นเป็นความต้องการหลักของอุปกรณ์สวมใส่ของผู้บริโภคที่หลากหลาย แต่ความต้องการในการวัด SpO2 กำลังเพิ่มขึ้นเรื่อย ๆ เมื่อนักกีฬาหลายคนใช้เพื่อเพื่อประสิทธิภาพในการออกกำลังกาย จึงพบว่าการวัด SpO2 นั้นมีการใช้งานที่แพร่หลายยิ่งขึ้น โดยเฉพาะอย่างยิ่งในการเฝ้าระวังการทำงานของระบบทางเดินหายใจที่ลดลงซึ่งเกี่ยวข้องกับโรคโควิด-19 สำหรับนักพัฒนา การส่งมอบโซลูชันที่เหมาะสมกับบุคลที่ใส่ใจสุขภาพและคุ้นเคยกับอุปกรณ์สวมใส่อิเล็กทรอนิกส์ ทำให้เกิดความท้าทายที่สำคัญในด้านต้นทุน กำลังไฟ ฟอร์มแฟคเตอร์ และน้ำหนัก

ในปัจจุบันไบโอเซ็นเซอร์มากมายมาพร้อมกับระบบย่อยส่วนหน้าอนาล็อกในตัว นักพัฒนาจึงไม่จำเป็นต้องสร้างระบบย่อยโพสต์โปรเซสซิ่งและสายสัญญาณที่จำเป็นสำหรับการวัดด้านสุขภาพและการออกกำลังกาย แต่แต่อุปกรณ์ขั้นสูงบางอุปกรณ์มีความสามารถที่เหมาะสมสำหรับอุปกรณ์สวมใส่ ด้วยเหตุนี้พวกเขาจึงไม่ได้แก้ปัญหาความท้าทายในการออกแบบที่มีในการตอบสนองความคาดหวังของผู้ใช้อุปกรณ์สวมใส่ไบโอเซ็นเซอร์ขนาดเล็กและไม่เกะกะเช่นเดียวกับอุปกรณ์สวมใส่ชั้นนำประเภทอื่น ๆ เช่น สมาร์ทวอทช์ สายคาดออกกำลังกาย และหูฟังไร้สายเป็นต้น

ความท้าทายเพิ่มเติมที่เกี่ยวข้องกับการผสานการออกแบบอาจเกิดขึ้นเมื่อนักพัฒนาจำเป็นต้องเพิ่มความสามารถในการตรวจวัดทางชีวภาพอย่างน้อยหนึ่งอย่างให้กับประเภทอุปกรณ์สวมใส่ยอดนิยม เช่นเดียวกับผลิตภัณฑ์อิเล็กทรอนิกส์ส่วนบุคคลที่ใช้พลังงานจากแบตเตอรี่แบบกระทัดรัดทุกประเภท ผู้บริโภคต้องการยืดอายุการใช้งานแบตเตอรี่แม้ในผลิตภัณฑ์ที่เล็กที่สุดก็ตาม โดยทั่วไปการเลือกผลิตภัณฑ์เหล่านี้จะพิจารณาจากอายุการใช้งานแบตเตอรี่ เท่า ๆ กับต้นทุนและฟังก์ชันการทำงาน

เพื่อให้เป็นไปตามข้อกำหนดเหล่านี้ นักพัฒนาสามารถเปลี่ยนโมดูลตรวจวัดทางชีวภาพ MAXM86146 ของ Maxim Integrated สำหรับอุปกรณ์ที่ออกแบบมาเฉพาะและระบบประเมิน MAXM86146EVSYS จาก MAXM86146 สำหรับการสร้างต้นแบบอย่างรวดเร็ว

โมดูลตรวจวัดทางชีวภาพนำเสนอโซลูชันแบบดรอปอิน

MAXM86146 ของ Maxim Integrated ขนาด 4.5 x 4.1 x 0.88 มิลลิเมตร (มม.) มีพิน 38 ขาเป็นโซลูชันแบบดรอปอินที่ออกแบบมาเฉพาะเพื่อช่วยเร่งการพัฒนาอุปกรณ์สวมใส่ใช้แบตเตอรี่ขนาดกระทัดรัดสำหรับสุขภาพและการออกกำลัง โมดูลลดการใช้พลังงานลงแต่ยังคงมีการวัดอัตราการเต้นหัวใจ SpO2 และที่แม่นยำและรวดเร็ว เพื่อเป็นไปตามความต้องการในการเพิ่มอายุแบตเตอรี่และความสามารถในการตรวจวัดทางชีวภาพ

มาพร้อมกับโฟโตไดโอดสองตัว โมดูลประกอบไปด้วยอุปกรณ์ส่วนหน้าอนาล็อก (AFE) ออปติคอลแบบช่องคู่ MAX86141 จาก Maxim Integrated และไมโครคอนโทคลเลอร์จาก Cortex-M4 ของ Arm ซึ่งปรับใหม่จากไมโครคอนโทรลเลอร์รุ่น Darwin และ MAX32660 ของ Maxim Integrated เพื่อให้เหมาะกับการตรวจจับทางชีวภาพ

แผนภาพของโมดูลตรวจจับทางชีวภาพ MAX86146 ของ Maxim Integrated (คลิกเพื่อขยาย)(รูปที่ 1): โมดูลตรวจจับทางชีวภาพ MAX86146 ของ Maxim Integrated ที่ประกอบด้วย AFE ออปติคอล, ไมโครคอนโทรลเลอร์ และโฟโตไดโอดในขนาดกระทัดรัด (แหล่งที่มาภาพ: Maxim Integrated)

การใช้พลังงานเพียง 10 ไมโครแอมป์ (μA) ที่ 25 ตัวอย่างต่อวินาที โมดูลรวม MAX86141 มีระบบย่อย AFE ออปติคอลที่ครอบคลุมที่ออกแบบมาเพื่อควบคุมไดโอดเปล่งแสงหลายตัว (LED) ที่ใช้สำหรับการวัดอัตราการเต้นหัวใจและ SpO2 เครื่องวัดอัตราการเต้นของหัวใจแบบออปติคอลมักใช้ Photoplethysmography (PPG) ซึ่งวัดการเปลี่ยนแปลงในปริมาณเลือดรอบนอกที่เกี่ยวข้องกับชีพจรหัวใจ สำหรับการวัดนี้ โดยทั่วไปอุปกรณ์เหล่านี้ใช้ไฟสีเขียวที่มีความยาวคลื่น 540 นาโนเมตร (nm) ซึ่งเลือดจะดูดซึมและเกิดรบกวนน้อยลง เนื่องจากแสงสีเขียวแทรกซึมเข้าไปในเนื้อเยื่อได้น้อยกว่าความยาวคลื่นอื่น ๆ เครื่องวัดออกซิเจนด้วยแสงโดยใช้ LED สีแดง (ประมาณ 660 nm) และ LED อินฟราเรด (IR) (ประมาณ 940 nm) เพื่อวัดความแตกต่างในการดูดซึมระหว่างฮีโมโกลบินและดีออกซีฮีโมโกลบิน โดยใช้เทคนิควิธีการวัด SpO2 แบบออปติคอล (ดู การออกแบบเครื่องวัดออกซิเจนต้นทุนต่ำโดยใช้อุปกรณ์ที่หาได้ง่าย)

เพื่อที่จะวัดแบบออปติคอลนี้ ผู้พัฒนาต้องตรวจสอบให้แน่ใจว่าการรับสัญญาณโฟโตไดโอดนั้นซิงโครไนซ์อย่างแม่นยำกับสัญญาณพัลส์ขาออกแสงจาก LED ที่เหมาะสม MAX86141 AFE ในโมดูล MAXM86146 ให้สัญญาณแยกสำหรับการควบคุม LED และสำหรับการรับสัญญาณโฟโตไดโอด ในด้านสัญญาณขาออก AFE มีไดรฟ์เวอร์ LED กระแสสูงสัญญาณรบกวนต่ำสามตัวสำหรับการส่งสัญญาณพัลส์ไปยัง LED สีเขียวเพื่อวัดอัตราการเต้นหัวใจ รวมทั้ง LED สีแดงและอินฟราเรดเพื่อวัด SpO2 ในด้านขาเข้า AFE ให้ช่องรับสัญญาณโฟโตไดโอดสองช่อง แต่ละช่องมีตัวแปลงสัญญาณอนาล็อกเป็นดิจิตอล (ADC) 19 บิต ช่องอ่านค่าทั้งสองนี้สารถทำงานแยกกันหรือรวมเป็นพื้นที่แผ่รังสีขนาดใหญ่ขึ้น

การควบคุม AFE LED และสายสัญญาณโฟโตไดโอด เฟิร์มแวร์ที่ทำงานบนไมโครคอนโทรลเลอร์ออนบอร์ดจะปรับการตั้งค่า AFE เพื่อเพิ่มอัตราส่วนสัญญาณเสียงต่อสัญญาณรบกวน (SRN) และลดอัตราการใช้พลังงาน เมื่อแสงโดยรอบเปลี่ยน (ALC) การแก้ไขแสงโดยรอบ (ALC) ที่ติดตั้งไว้ใน MAX86141 จะตอบสนองต่อการเปลี่ยนแปลงสภาพแสงทีละน้อย อย่างไรก็ตามแสงโดยรอบอาจเปลี่ยนอย่างรวดเร็วในบางสถานการณ์ เช่น ในกรณีที่ผู้ใช้ผ่านร่มเงาและแสงแดดกระทันหัน จะทำให้ ALC ไม่สามารถใช้งานได้ เพื่อพิจารณาสถานการณ์ทั่วไป MAX86141 จึงมีฟังก์ชันตรวจจับและเปลี่ยน นี่คืออุปกรณ์ที่จะระบุการเคลื่อนที่ไกลในการวัดสภาพแวดล้อมจากตัวอย่างก่อนหน้า และแทนที่ตัวอย่างข้อมูลแสงแวดล้อมรอบนอกแต่ละตัวอย่างด้วยค่าที่คาดการณ์ไว้ ซึ่งสอดคล้องกับการเปลี่ยนแปลงที่ค่อนข้างช้าในระดับสภาพแวดล้อม

เนื่องจากไมโครคอนโทรลเลอร์ของโมดูลใช้เฟิร์มแวร์ในการจัดการการทำงานของ AFE การทำงานโดยละเอียดที่จำเป็นเพื่อวัดอัตราการเต้นของหัวใจและ SpO2 อย่างแม่นยำนั้นโปร่งใสสำหรับนักพัฒนา การใช้การตั้งค่าเฟิร์มแวร์ โมดูลจะวัดค่าอัตโนมัติ เก็บข้อมูลดิบและผลลัพธ์ที่คำนวณแล้วในบัฟเฟอร์มาก่อนออกก่อน (FIFO) สำหรับการเข้าถึงโดยตัวประมวลผลโฮสต์ของระบบผ่านอินเทอร์เฟซอนุกรม I2C ของโมดูล

MAX86146 ช่วยลดความยุ่งยากในการออกแบบฮาร์ดแวร์ที่สวมใส่ได้อย่างไร

ด้วยฟังก์ชันการทำงานที่ครบวงจร โมดูลตรวจวัดทางชีวภาพ MAX86146 ใช้ส่วนประกอบเพิ่มเติมค่อนข้างน้อย เพื่อการออกแบบที่สามารถวัดอัตราการเต้นของหัวใจและ SpO2 ได้อย่างแม่นยำ สำหรับการวัดอัตราการเต้นหัวใจและ SpO2 พร้อมกัน MAX86146 สามารถรวมกับมัลติเพล็กซ์เซอร์อนาล็อกภายนอกสัญญาณรบกวนต่ำ เช่น สวิตช์ MAX14689 ของ Maxim Integrated เชื่อมต่อกับ LED สีเขียว สีแดง และอินฟราเรด (รูปที่ 2)

แผนภาพของโมดูลตรวจจับทางชีวภาพ MAX86146 ของ Maxim Integrated (คลิกเพื่อขยาย)รูปที่ 2: เพื่อวัดอัตราการเต้นหัวใจและ SpO2 พร้อมกัน โมดูลตรวจจับทางชีวภาพ MAX86146 ของ Maxim Integrated ใช้ส่วนประกอบเพิ่มเติมน้อยนอกเหนือจาก LED มัลติเพล็กซ์เซอร์อนาล็อก (MAX14689 ด้านซ้าย) และตัววัดความเร่งเพื่อตรวจจับการเคลื่อนไหวในขณะดำเนินการวัด (แหล่งที่มาภาพ: Maxim Integrated)

นอกจากนั้น MAXM86146 ออกแบบเพื่อใช้ข้อมูลการเคลื่อนไหวจากตัววัดความเร่งสามแกนเพื่อแก้ไขการเคลื่อนไหวของผู้ใช้ระหว่างการวัดอัตราการเต้นของหัวใจและตรวจจับการเคลื่อนไหวระหว่างการวัด SpO2 ซึ่งจะต้องให้ผู้ใช้อยู่นิ่ง ๆ สักพักระหว่างการวัด นักพัฒนาสามารถเชื่อมต่อกับตัววัดความเร่งที่รองรับเฟิร์มแวร์กับพอร์ต SPI ของ MAXM86146 โดยตรงหรือเชื่อมต่อกับตัววัดความเร่งอเนกประสงค์กับหน่วยประมวลผลโฮสต์

ตัวเลือกการเชื่อมต่อโฮสต์ทำให้มีความยืดหยุ่นในการเลือกอุปกรณ์สูงขึ้น แต่ต้องเป็นตัววัดความเร่งสามแกนอเนกประสงค์เท่านั้น เช่น MC3630 ของ Memsic ความสามารถ 25 sps อย่างไรก็ตามนักพัฒนาจำเป็นต้องตรวจสอบให้แน่ใจว่าข้อมูลของตัววัดความเร่งซิงค์กับการสุ่มตัวอย่างข้อมูลอัตราการเต้นของหัวใจ โดยที่ไมโครคอนโทรลเลอร์ออนบอร์ดจะถอดรหัสหรือสอดแทรกตัวอย่างตัววัดความเร่งภายในตามความจำเป็น เพื่อชดเชยการเบี่ยงเบนระหว่างข้อมูลอัตราการเต้นหัวใจและข้อมูลตัววัดความเร่ง

เริ่มต้นอย่างรวดเร็วด้วยการประเมินผล MAXM86146 และการสร้างต้นแบบอย่างรวดเร็ว

แม้ว่า MAXM86146 จะทำให้การออกแบบฮาร์ดแวร์ระบบง่ายขึ้น แต่นักพัฒนาต้องการประเมินผล MAXM86146 หรือสร้างต้นแบบตามการใช้งานอย่างรวดเร็วนั้นสามารถข้ามการออกแบบฮาร์ดแวร์และเริ่มทำงานกับอุปกรณ์ได้ทันทีโดยใช้ระบบประเมินผล MAXM86146EVSYS ใช้พลังงานจาก USB หรือแบตเตอรี่ลิเทียมพอลิเมอร์ (LiPo) 3.7 โวลต์ MAXM86146EVSYS ประกอบด้วยบอร์ดเซ็นเซอร์ออปติคัล (OSB) MAXM86146_OSB ที่ใช้ MAXM86146 เชื่อมต่อด้วยสายเคเบิลแบบยืดหยุ่นกับบอร์ดเก็บข้อมูลหลัก MAXSensorBLE ที่ใช้งานบลูทูธพลังงานต่ำ (BLE) (รูปที่ 3)

รูประบบประเมินผล MAXM86146EVSYS ของ Maxim Integratedรูปที่ 3: ระบบประเมินผล MAXM86146EVSYS ของ Maxim Integrated ประกอบไปด้วยบอร์ดโปรเซสเซอร์หลักที่รองรับ BLE และสายเคเบิลแบบยืดหยุ่นที่เชื่อมต่อกับบอร์ดเซ็นเซอร์ที่ใช้ MAXM86146 (แหล่งที่มาภาพ: Maxim Integrated)

บอร์ด MAXSensorBLE รวมไมโครคอนโทรลเลอร์โฮสต์ MAX32620 จาก Maxim Integrated และไมโครคอนโทรลเลอร์บลูทูธ NRF52832 จาก Nordic Semiconductor ในความเป็นจริงบอร์ด MAXSensorBLE เป็นการออกแบบอ้างอิงที่สมบูรณ์สำหรับการออกแบบอุปกรณ์สวมใส่ BLE ด้วยการรองรับอุปกรณ์แบบแอ็คทีฟและแบบพาสซีฟ การออกแบบบอร์ด MAXSensorBLE มาพร้อมกับวงจรรวมสำหรับการจัดการพลังงาน (PMIC) MAX20303 ของ Maxim Integrated ที่ออกแบบมาโดยเฉพาะเพื่อยืดอายุแบตเตอรี่ของอุปกรณ์ที่สวมใส่

บอร์ดเว็นเซอร์แสง MAXM86146_OSB ประกอบด้วยโมดูลตรวจวัดทางชีวภาพ MAXM86146 ที่มีสวิตซ์อนาล็อก MAX14689 และ LED ครบชุดเพื่อการวัดอัตราการเต้นหัวใจและ SpO2 พร้อมกัน นอกจากนั้นบอร์ดยังมีตัววัดความเร่งสามแกนที่รองรับเฟิร์มแวร์ ซึ่งเชื่อมต่อกับโมดูล MAXM86146 โดยตรง

เพื่อประเมินผลโมดูล MAXM86146 โดยใช้ระบบการประเมิน MAXM86146EVSYS นักพัฒนาจะต้องให้พลังงานแก่ระบบโดยใช้ USB-C หรือแบตเตอรี่ LiPo และต่อ BLE USB Dongle เมื่อใช้คอมพิวเตอร์ส่วนบุคคลในการใช้แอปพลิเคชัน ซอฟต์แวร์ระบบ MAXM86146 EV ของ Maxim Integrated โดยแอปพลิเคชันของ Windows นี้มีอินเตอร์เฟสกราฟิกสำหรับผู้ใช้ (GUI) เพื่อให้นักพัฒนาปรับการตั้งค่า MAXM86146 ได้อย่างง่ายดายและสังเกตผลลัพธ์ในรูปแบบข้อมูลได้ทันที พร้อมกับการเข้าถึงรีจิสเตอร์ของ MAXM86146 โดยที่ GUI มีเมนูที่ใช้งานง่ายสำหรับการตั้งค่าโหมดการทำงานและการกำหนดค่าต่าง ๆ ตัวอย่างเช่น นักพัฒนาสามารถใช้แท็บโหมด GUI เพื่อตั้งค่าลำดับ LED แบบต่าง ๆ (รูปที่ 4 บน) และใช้แท็บการกำหนดค่า GUI เพื่อใช้ลำดับ LED เหล่านั้นกับการวัดอัตราการเต้นหัวใจและ SpO2 (รูปที่ 4 ล่าง)

รูป GUI ของซอฟต์แวร์ระบบ MAXM86146 EV ของ Maxim Integratedรูปที่ 4: GUI ของซอฟต์แวร์ระบบ MAXM86146 EV ของ Maxim Integrated ช่วยให้พนักงานให้ประเมินประสิทธิภาพของ MAXM86146 โดยการกำหนดโหมดการทำงานแบบต่าง ๆ เช่น ลำดับ LED (บน) และใช้ลำดับต่าง ๆ เหล่านั้น (ล่าง) สำหรับการวัดอัตราการเต้นหัวใจและ SpO2 (แหล่งที่มาภาพ: Maxim Integrated)

สำหรับการพัฒนาซอฟต์แวร์แบบกำหนดเอง Maxim Integrated แพ็คเกจซอฟต์แวร์ Wearable HRM & SpO2 Algorithm for MAXM86146 เนื่องจาก MAXM86146 ให้การวัดอัตราการเต้นหัวใจและ SpO2 โดยใช้เฟิร์มแวร์ไมโครคอนโทรลเลอร์ในตัว ซึ่งกระบวนการดึงข้อมูลจากอุปกรณ์นั้นไม่มีอะไรซับซ้อน แพ็คเกจซอฟต์แวร์ของ Maxim Integrated แสดงขั้นตอนในการตั้งค่าเริ่มต้นอุปกรณ์ ไปจนถึงการอ่านข้อมูลจาก MAXM86146 FIFO และแยกวิเคราะห์รายการข้อมูลแต่ละรายการ (รายการ 1)

คัดลอก
typedef struct{
   uint32_t green_led_cnt;
   uint32_t ir_led_cnt;
   uint32_t red_led_cnt;
   uint32_t hr;
   uint32_t hr_conf;
   uint32_t spo2;
   uint32_t spo2_conf;
   uint32_t scd_state;
} mes_repor_t;
 
typedef struct {
   uint32_t led1;
   uint32_t led2;
   uint32_t led3;
   uint32_t led4;
   uint32_t led5;
   uint32_t led6;
} max8614x_mode1_data;
 
typedef struct {
   int16_t x;
   int16_t y;
   int16_t z;
} accel_mode1_data;
 
typedef struct __attribute__((packed)){
   uint8_t current_operating_mode; // mode 1 & 2
   // WHRM data
   uint16_t hr;                  // mode 1 & 2
   uint8_t hr_conf;              // mode 1 & 2
   uint16_t rr;                  // mode 1 & 2
   uint8_t rr_conf;              // mode 1 & 2
   uint8_t activity_class;       // mode 1 & 2
   // WSPO2 data
   uint16_t r;                   // mode 1 & 2
   uint8_t spo2_conf;            // mode 1 & 2
   uint16_t spo2;                // mode 1 & 2
   uint8_t percentComplete;      // mode 1 & 2
   uint8_t lowSignalQualityFlag; // mode 1 & 2
   uint8_t motionFlag;           // mode 1 & 2
  uint8_t lowPiFlag;            // mode 1 & 2
   uint8_t unreliableRFlag;      // mode 1 & 2
   uint8_t spo2State;            // mode 1 & 2
   uint8_t scd_contact_state;
} whrm_wspo2_suite_mode1_data;
 
void execute_data_poll( mes_repor_t* mesOutput ) {
 
[deleted lines of code]
 
  status = read_fifo_data(num_samples, WHRMWSPO2_FRAME_SIZE, &databuf[0], sizeof(databuf));
  if(status == SS_SUCCESS &&  num_samples > 0 && num_samples < MAX_WHRMWSPO2_SAMPLE_COUNT){  
 
  max8614x_mode1_data             ppgDataSample;
    accel_mode1_data                accelDataSamp;
    whrm_wspo2_suite_mode1_data     algoDataSamp;
 
    int sampleIdx = 0;
    int ptr =0;
    while( sampleIdx < num_samples ) {
 
      ppgDataSample.led1                 = (databuf[ptr+1] << 16) + (databuf[ptr+2] << 8) + (databuf[ptr+3] << 0);
      ppgDataSample.led2                 = (databuf[ptr+4] << 16) + (databuf[ptr+5] << 8) + (databuf[ptr+6] << 0);
      ppgDataSample.led3                 = (databuf[ptr+7] << 16) + (databuf[ptr+8] << 8) + (databuf[ptr+9] << 0);
      ppgDataSample.led4                 = (databuf[ptr+10] << 16)+ (databuf[ptr+11] << 8)+ (databuf[ptr+12] << 0);
      ppgDataSample.led5                 = (databuf[ptr+13] << 16)+ (databuf[ptr+14] << 8)+ (databuf[ptr+15] << 0);
      ppgDataSample.led6                 = (databuf[ptr+16] << 16)+ (databuf[ptr+17] << 8)+ (databuf[ptr+18] << 0);
      accelDataSamp.x                    = (databuf[ptr+19] << 8) + (databuf[ptr+20] << 0);
      accelDataSamp.y                    = (databuf[ptr+21] << 8) + (databuf[ptr+22] << 0);
      accelDataSamp.z                    = (databuf[ptr+23] << 8) + (databuf[ptr+24] << 0);
      algoDataSamp.current_operating_mode= (databuf[ptr+25]);
      algoDataSamp.hr                    = (databuf[ptr+26] << 8) + (databuf[ptr+27] << 0);
      algoDataSamp.hr_conf               = (databuf[ptr+28]);
      algoDataSamp.rr                    = (databuf[ptr+29] << 8) + (databuf[ptr+30] << 0);
      algoDataSamp.rr_conf               = (databuf[ptr+31]);
      algoDataSamp.activity_class        = (databuf[ptr+32]);
      algoDataSamp.r                     = (databuf[ptr+33] << 8) + (databuf[ptr+34] << 0);
      algoDataSamp.spo2_conf             = (databuf[ptr+35]);
      algoDataSamp.spo2                  = (databuf[ptr+36] << 8) + (databuf[ptr+37] << 0);
      algoDataSamp.percentComplete       = (databuf[ptr+38]);
      algoDataSamp.lowSignalQualityFlag  = (databuf[ptr+39]);
      algoDataSamp.motionFlag            = (databuf[ptr+40]);
      algoDataSamp.lowPiFlag             = (databuf[ptr+41]);
      algoDataSamp.unreliableRFlag       = (databuf[ptr+42]);
      algoDataSamp.spo2State             = (databuf[ptr+43]);
      algoDataSamp.scd_contact_state     = (databuf[ptr+44]);
 
      mesOutput->green_led_cnt           = ppgDataSample.led1;
      mesOutput->ir_led_cnt              = ppgDataSample.led2;
      mesOutput->red_led_cnt             = ppgDataSample.led3;
      mesOutput->hr                      = algoDataSamp.hr / 10;
      mesOutput->hr_conf                 = algoDataSamp.hr_conf;
      mesOutput->spo2                    = algoDataSamp.spo2 / 10;
      mesOutput->spo2_conf               = algoDataSamp.spo2_conf;
      mesOutput->scd_state               = algoDataSamp.scd_contact_state;
 
   /* printf(" greenCnt= %d , irCnt= %d , redCnt = %d ,"
                     " hr= %d , hr_conf= %d , spo2= %d , spo2_conf= %d , skin_contact = %d \r\n"
                     , mesOutput->green_led_cnt , mesOutput->ir_led_cnt , mesOutput->red_led_cnt
                     , mesOutput->hr , mesOutput->hr_conf , mesOutput->spo2 , mesOutput->spo2_conf , mesOutput->scd_state);
         */            
[deleted lines of code]

รายการที่ 1: กลุ่มโค้ดจากแพ็คเกจซอฟต์แวร์ของ Maxim Integrated แสดงเทคนิคพื้นฐานสำหรับการแยกวิเคราะห์ข้อมูลการวัดและข้อมูลอื่น ๆ จากโมดูลตรวจวัดทางชีวภาพ (แหล่งที่มาโค้ด: Maxim Integrated)

รายการที่ 1 อธิายถึงการใช้ execute_data_poll() ของภาษา C ที่ใช้ประจำเพื่อส่งค่าอัตราการเต้นหัวใจและ SpO2 ที่จาก MAXM86146 โค้ดจะอ่านข้อมูล FIFO ของอุปกรณ์ใน Databuf บัฟเฟอร์ในเครื่อง จากนั้นจับคู่เนื้อหาของ Databuf ในอินสแตนซ์โครงสร้างซอฟต์แวร์ภาษา C ที่แตกต่างกัน พร้อมกับการจัดเก็บข้อมูลการกำหนดค่าและข้อมูลอภิพันธุ์อื่น ๆ ลงในอินสแตนซ์โครงสร้าง สุดท้ายแล้วชุดคำสั่งที่ใช้ประจำให้การวัดอัตราการเต้นหัวใจและ SpO2 ใน mesOutput ซึ่งเป็นอินสแตนซ์ของโครงสร้าง mes_repor_t นักพัฒนาสามารถลบคอมเมนต์ในคำสั่ง printf สุดท้าย เพื่อแสดงผลลัพธ์บนคอนโซล

สำหรับการใช้งานอุปกรณ์สวมใส่เพื่อสุขภาพและการออกกำลังกาย ซอฟต์แวร์และฮาร์ดแวร์ MAXM86146 ช่วยลดความซับซ้อนในการพัฒนาอย่างมาก อย่างไรก็ตามสำหรับอุปกรณ์ต้องขออนุญาตเพื่อให้ได้รับการอนุมัติจากสำนักงานคณะกรรมการอาหารและยาแห่งสหรัฐอเมริกา (FDA) นักพัฒนาต้องทำการทดสอบอย่างเหมาะสม เพื่อตรวจสอบประสิทธิภาพระดับ FDA ของผลิตภัณฑ์สุดท้าย แม้ว่า MAXM86146 ของ Maxim Integrated และอัลกอริทึมภายในจะให้ประสิทธิภาพการวัดระดับ FDA แต่นักพัฒนาจะต้องตรวจสอบให้แน่ใจว่า ระบบทั้งหมดซึ่งไม่ใช่แค่เซ็นเซอร์เท่านั้นจะต้องเป็นไปตามข้อกำหนดด้านประสิทธิภาพของ FDA

บทสรุป

ความสนใจในอุปกรณ์สวมใส่สามารถทำให้เกิดการวัดอัตราการเต้นหัวใจและ SpO2 เพิ่มขึ้นอย่างต่อเนื่อง และมีบทบาทของข้อมูล SpO2 ในการติดตามอาการของโรคโควิด-19 เป็นตัวกระตุ้น แม้ว่าตัวตรวจวัดทางชีวภาพแบบพิเศษสามารถให้การวัดค่าเหล่านี้ได้ แต่มีโซลูชันไม่มากนักที่สามารถตอบสนองต่อความต้องการสำหรับอุปกรณ์ขนาดเล็กที่สามารถยืดอายุแบตเตอรี่ในอุปกรณ์สวมใส่ขนาดกะทัดรัดแบบมัลติฟังก์ชั่น ดังที่แสดงไว้โมดูลตรวจวัดทางชีวภาพขนาดเล็กจาก Maxim Integrated ซึ่งใช้ชุดสร้างต้นแบบอย่างรวดเร็วเป็นทางเลือกที่มีประสิทธิภาพ นำเสนอการวัดระดับ FDA โดยใช้พลังงานน้อยที่สุด

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

About this author

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk มีประสบการณ์มากกว่า 20 ปีในการเขียนรวมทั้งประสบการณ์เกี่ยวกับอุตสาหกรรมอิเล็กทรอนิกส์ในด้านต่าง ๆ มากมายซึ่งรวมถึงฮาร์ดแวร์ซอฟต์แวร์ระบบและแอพพลิเคชั่นรวมถึง IoT เขาสำเร็จการศึกษาระดับปริญญาเอกทางด้านระบบประสาทเกี่ยวกับเครือข่ายเซลล์ประสาทและทำงานในอุตสาหกรรมการบินและอวกาศเกี่ยวกับระบบความปลอดภัยแบบกระจายจำนวนมากและวิธีการเร่งอัลกอริทึม ปัจจุบัน หากว่าเขาไม่ยุ่งกับการเขียนบทความเกี่ยวกับเทคโนโลยีและวิศวกรรม ก็จะทำงานเกี่ยวกับการประยุกต์ใช้การเรียนรู้เชิงลึกกับระบบการจดจำและการแนะนำ

About this publisher

DigiKey's North American Editors