การใช้โมดูล Biosensing เพื่อพัฒนาอุปกรณ์สวมใส่เพื่อสุขภาพและความแข็งแรงของร่างกาย
Contributed By DigiKey's North American Editors
2020-10-21
เนื่องด้วยความตระหนักด้านสุขภาพจากโควิด-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 เพื่อให้เหมาะกับการตรวจจับทางชีวภาพ
(รูปที่ 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)
รูปที่ 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)
รูปที่ 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 ล่าง)
รูปที่ 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 โดยใช้พลังงานน้อยที่สุด

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.