สารบัญ:

วิธีแสดงอัตราการเต้นของหัวใจบน LCD STONE ด้วย Ar: 31 ขั้นตอน
วิธีแสดงอัตราการเต้นของหัวใจบน LCD STONE ด้วย Ar: 31 ขั้นตอน

วีดีโอ: วิธีแสดงอัตราการเต้นของหัวใจบน LCD STONE ด้วย Ar: 31 ขั้นตอน

วีดีโอ: วิธีแสดงอัตราการเต้นของหัวใจบน LCD STONE ด้วย Ar: 31 ขั้นตอน
วีดีโอ: คลิปสุดท้าย ผดส.ไลฟ์ชมวิว ก่อนเครื่องตก | สำนักข่าววันนิวส์ 2024, กรกฎาคม
Anonim
วิธีแสดงอัตราการเต้นของหัวใจบนจอ LCD STONE ด้วย Ar
วิธีแสดงอัตราการเต้นของหัวใจบนจอ LCD STONE ด้วย Ar

แนะนำสั้น ๆ

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

ขั้นตอนที่ 1: ฉันตัดสินใจใช้ Arduino เพื่อตรวจสอบอัตราการเต้นของหัวใจและฟังก์ชันการรวบรวมออกซิเจนในเลือดของ MAX30100

ฉันตัดสินใจใช้ Arduino เพื่อตรวจสอบอัตราการเต้นของหัวใจและฟังก์ชันการเก็บออกซิเจนในเลือดของ MAX30100
ฉันตัดสินใจใช้ Arduino เพื่อตรวจสอบอัตราการเต้นของหัวใจและฟังก์ชันการเก็บออกซิเจนในเลือดของ MAX30100

หมายเหตุ: โมดูลนี้โดยค่าเริ่มต้นเฉพาะกับการสื่อสาร MCU ระดับ 3.3 V เนื่องจากค่าเริ่มต้นจะใช้ขา IIC ดึงความต้านทาน 4.7 K ถึง 1.8 V ดังนั้นจึงไม่มีการสื่อสารกับ Arduino โดยค่าเริ่มต้น หากคุณต้องการสื่อสารกับ Arduino และต้องการตัวต้านทานแบบดึงขึ้นของพิน IIC 4.7 K สองตัวที่เชื่อมต่อกับพิน VIN เนื้อหาเหล่านี้จะถูกแนะนำที่ด้านหลังของบท

ขั้นตอนที่ 2: การมอบหมายหน้าที่

ก่อนเริ่มโครงการนี้ ฉันได้คิดถึงคุณลักษณะง่ายๆ บางอย่าง:

  • เก็บข้อมูลอัตราการเต้นของหัวใจและข้อมูลออกซิเจนในเลือด
  • อัตราการเต้นของหัวใจและข้อมูลออกซิเจนในเลือดจะแสดงผ่านหน้าจอ LCD

นี่เป็นเพียงสองคุณลักษณะเท่านั้น แต่ถ้าเราต้องการนำไปใช้ เราต้องคิดให้มากขึ้น:

  • ใช้ MCU หลักใด
  • ชนิดของจอแสดงผล LCD?

ดังที่เราได้กล่าวไว้ก่อนหน้านี้ เราใช้ Arduino สำหรับ MCU แต่นี่เป็นโครงการแสดงผล Arduino LCD ดังนั้นเราจึงต้องเลือกโมดูลการแสดงผล LCD ที่เหมาะสม ฉันวางแผนที่จะใช้หน้าจอแสดงผล LCD พร้อมพอร์ตอนุกรม ฉันมีเครื่องแสดงผล STONE STVI070WT-01 ที่นี่ แต่ถ้า Arduino ต้องการสื่อสารกับมัน จำเป็นต้องใช้ MAX3232 ในการแปลงระดับ จากนั้นกำหนดวัสดุอิเล็กทรอนิกส์พื้นฐานดังนี้:

1. บอร์ดพัฒนา Arduino Mini Pro

2. MAX30100 อัตราการเต้นของหัวใจและโมดูลเซ็นเซอร์ออกซิเจนในเลือด

3. STONE STVI070WT-01 โมดูลแสดงผลพอร์ตอนุกรม LCD

4. โมดูล MAX3232

ขั้นตอนที่ 3: บทนำฮาร์ดแวร์

MAX30100

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

MAX30100 ทำงานจากแหล่งจ่ายไฟ 1.8V และ 3.3V และสามารถปิดเครื่องได้โดยใช้ซอฟต์แวร์ที่มีกระแสไฟสแตนด์บายเพียงเล็กน้อย ทำให้แหล่งจ่ายไฟยังคงเชื่อมต่ออยู่ตลอดเวลา

ขั้นตอนที่ 4: แอปพลิเคชัน

● อุปกรณ์สวมใส่

● อุปกรณ์ช่วยออกกำลังกาย

● อุปกรณ์ตรวจสอบทางการแพทย์

ขั้นตอนที่ 5: ประโยชน์และคุณสมบัติ

1、โซลูชัน Pulse Oximeter และ Heart-Rate ที่สมบูรณ์ช่วยให้การออกแบบง่ายขึ้น

  • ไฟ LED ในตัว โฟโต้เซนเซอร์ และอนาล็อกประสิทธิภาพสูง -End
  • ขนาดเล็ก 5.6 มม. x 2.8 มม. x 1.2 มม. 14 พิน OpticallyEnhanced System-in-Package

2、Ultra-Low-Power Operation เพิ่มอายุการใช้งานแบตเตอรี่สำหรับอุปกรณ์สวมใส่

  • อัตราตัวอย่างที่ตั้งโปรแกรมได้และกระแสไฟ LED เพื่อการประหยัดพลังงาน
  • กระแสไฟปิดต่ำพิเศษ (0.7µA, ประเภท)

3、ฟังก์ชั่นขั้นสูงช่วยปรับปรุงประสิทธิภาพการวัด

  • SNR สูงให้ความยืดหยุ่นของสิ่งประดิษฐ์เคลื่อนไหวที่แข็งแกร่ง
  • การยกเลิกแสงโดยรอบในตัว
  • ความสามารถในการสุ่มตัวอย่างสูง
  • ความสามารถในการส่งออกข้อมูลที่รวดเร็ว

ขั้นตอนที่ 6: หลักการตรวจจับ

หลักการตรวจจับ
หลักการตรวจจับ

เพียงกดนิ้วของคุณกับเซ็นเซอร์เพื่อประมาณความอิ่มตัวของออกซิเจนในพัลส์ (SpO2) และชีพจร (เทียบเท่ากับการเต้นของหัวใจ)

เครื่องวัดความอิ่มตัวของออกซิเจนในเลือด (oximeter) เป็นเครื่องวัดค่าออกซิเจนขนาดเล็กที่ใช้หลักการของสเปกตรัมการดูดซึมเซลล์เม็ดเลือดแดงที่แตกต่างกันเพื่อวิเคราะห์ความอิ่มตัวของออกซิเจนในเลือด วิธีการวัดแบบเรียลไทม์และรวดเร็วนี้ยังใช้กันอย่างแพร่หลายในข้อมูลอ้างอิงทางคลินิกจำนวนมาก ฉันจะไม่แนะนำ MAX30100 มากเกินไปเพราะเนื้อหาเหล่านี้มีอยู่ในอินเทอร์เน็ต เพื่อนที่สนใจสามารถค้นหาข้อมูลของโมดูลทดสอบอัตราการเต้นของหัวใจบนอินเทอร์เน็ต และทำความเข้าใจหลักการตรวจจับของโมดูลให้ลึกซึ้งยิ่งขึ้น

ขั้นตอนที่ 7: หิน STVI070WT-01

หิน STVI070WT-01
หิน STVI070WT-01

บทนำสู่ตัวแสดง

ในโครงการนี้ ฉันจะใช้ STONE STVI070WT-01 เพื่อแสดงข้อมูลอัตราการเต้นของหัวใจและข้อมูลออกซิเจนในเลือด ชิปไดรเวอร์ถูกรวมเข้ากับหน้าจอแสดงผลและมีซอฟต์แวร์สำหรับผู้ใช้ ผู้ใช้เพียงแค่เพิ่มปุ่ม กล่องข้อความ และตรรกะอื่นๆ ผ่านรูปภาพ UI ที่ออกแบบ จากนั้นจึงสร้างไฟล์การกำหนดค่าและดาวน์โหลดลงในหน้าจอแสดงผลเพื่อเรียกใช้ การแสดงผลของ STVI070WT-01 สื่อสารกับ MCU ผ่านสัญญาณ uart-rs232 ซึ่งหมายความว่าเราจำเป็นต้องเพิ่มชิป MAX3232 เพื่อแปลงสัญญาณ RS232 เป็นสัญญาณ TTL เพื่อให้เราสามารถสื่อสารกับ Arduino MCU ได้

ขั้นตอนที่ 8: หากคุณไม่แน่ใจว่าจะใช้ MAX3232 อย่างไร โปรดดูรูปภาพต่อไปนี้:

หากคุณไม่แน่ใจว่าจะใช้ MAX3232 อย่างไร โปรดดูภาพต่อไปนี้
หากคุณไม่แน่ใจว่าจะใช้ MAX3232 อย่างไร โปรดดูภาพต่อไปนี้

หากคุณคิดว่าการแปลงระดับนั้นลำบากเกินไป คุณสามารถเลือกตัวแสดงประเภทอื่นของ STONE ได้ ซึ่งบางประเภทสามารถส่งสัญญาณ uart-ttl ได้โดยตรง

เว็บไซต์อย่างเป็นทางการมีข้อมูลโดยละเอียดและบทนำ:

ขั้นตอนที่ 9: หากคุณต้องการวิดีโอบทแนะนำและบทช่วยสอนในการใช้งาน คุณสามารถค้นหาได้จากเว็บไซต์ทางการ

หากคุณต้องการวิดีโอบทแนะนำและบทช่วยสอนในการใช้งาน คุณสามารถค้นหาได้จากเว็บไซต์ทางการ
หากคุณต้องการวิดีโอบทแนะนำและบทช่วยสอนในการใช้งาน คุณสามารถค้นหาได้จากเว็บไซต์ทางการ

ขั้นตอนที่ 10: ขั้นตอนการพัฒนา

สามขั้นตอนของการพัฒนาหน้าจอแสดงผลของ STONE:

  • ออกแบบตรรกะการแสดงผลและตรรกะของปุ่มด้วยซอฟต์แวร์ STONE TOOL และดาวน์โหลดไฟล์การออกแบบไปยังโมดูลการแสดงผล
  • MCU สื่อสารกับโมดูลแสดงผล LCD STONE ผ่านพอร์ตอนุกรม
  • ด้วยข้อมูลที่ได้รับในขั้นตอนที่ 2 MCU จะดำเนินการอื่นๆ

ขั้นตอนที่ 11: การติดตั้งซอฟต์แวร์ STONE TOOL

การติดตั้งซอฟต์แวร์ STONE TOOL
การติดตั้งซอฟต์แวร์ STONE TOOL

ดาวน์โหลดซอฟต์แวร์ STONE TOOL เวอร์ชันล่าสุด (ปัจจุบันคือ TOOL2019) จากเว็บไซต์ และทำการติดตั้ง

หลังจากติดตั้งซอฟต์แวร์แล้ว อินเทอร์เฟซต่อไปนี้จะเปิดขึ้น:

คลิกปุ่ม "ไฟล์" ที่มุมซ้ายบนเพื่อสร้างโครงการใหม่ ซึ่งเราจะพูดถึงในภายหลัง

ขั้นตอนที่ 12: Arduino

Arduino เป็นแพลตฟอร์มต้นแบบอิเล็กทรอนิกส์แบบโอเพนซอร์สที่ใช้งานง่ายและใช้งานง่าย ประกอบด้วยส่วนฮาร์ดแวร์ (บอร์ดพัฒนาต่างๆ ที่สอดคล้องกับข้อกำหนดของ Arduino) และชิ้นส่วนซอฟต์แวร์ (Arduino IDE และชุดพัฒนาที่เกี่ยวข้อง)

ส่วนฮาร์ดแวร์ (หรือบอร์ดพัฒนา) ประกอบด้วยไมโครคอนโทรลเลอร์ (MCU) หน่วยความจำแฟลช (แฟลช) และชุดอินเทอร์เฟซอินพุต/เอาต์พุตสากล (GPIO) ซึ่งคุณสามารถคิดได้ว่าเป็นมาเธอร์บอร์ดไมโครคอมพิวเตอร์ ส่วนซอฟต์แวร์ส่วนใหญ่ประกอบด้วย Arduino IDE บนพีซี แพ็คเกจสนับสนุนระดับบอร์ดที่เกี่ยวข้อง (BSP) และไลบรารีฟังก์ชันของบุคคลที่สามที่หลากหลาย ด้วย Arduino IDE คุณสามารถดาวน์โหลด BSP ที่เกี่ยวข้องกับบอร์ดพัฒนาและไลบรารีที่คุณต้องการได้อย่างง่ายดาย เพื่อเขียนโปรแกรมของคุณ Arduino เป็นแพลตฟอร์มโอเพ่นซอร์ส จนถึงปัจจุบัน มีหลายรุ่นและตัวควบคุมที่ได้รับมามากมาย รวมถึง Arduino Uno, Arduino Nano, ArduinoYun เป็นต้น นอกจากนี้ Arduino IDE ไม่เพียงแต่รองรับบอร์ดพัฒนาซีรีส์ Arduino เท่านั้น แต่ยังเพิ่มการรองรับสำหรับบอร์ดพัฒนายอดนิยมเช่น เช่น Intel Galileo และ NodeMCU โดยแนะนำ BSP

Arduino ตรวจจับสภาพแวดล้อมผ่านเซ็นเซอร์ต่างๆ ควบคุมไฟ มอเตอร์ และอุปกรณ์อื่นๆ เพื่อป้อนกลับและส่งผลต่อสิ่งแวดล้อม ไมโครคอนโทรลเลอร์บนบอร์ดสามารถตั้งโปรแกรมด้วยภาษาการเขียนโปรแกรม Arduino คอมไพล์เป็นไบนารี และเบิร์นลงในไมโครคอนโทรลเลอร์ได้ สำหรับ Arduino นั้นใช้กับภาษาการเขียนโปรแกรม Arduino (ตาม Wiring) และสภาพแวดล้อมการพัฒนา Arduino (ตามการประมวลผล) โปรเจ็กต์ที่ใช้ Arduino สามารถมี Arduino ได้เท่านั้น เช่นเดียวกับ Arduino และซอฟต์แวร์อื่น ๆ ที่ทำงานบนพีซีและสื่อสารกับแต่ละ อื่นๆ (เช่น Flash, Processing, MaxMSP)

ขั้นตอนที่ 13: สภาพแวดล้อมการพัฒนา

การพัฒนาสภาพแวดล้อม
การพัฒนาสภาพแวดล้อม

สภาพแวดล้อมการพัฒนา Arduino คือ Arduino IDE ซึ่งสามารถดาวน์โหลดได้จากอินเทอร์เน็ต

ลงชื่อเข้าใช้เว็บไซต์ทางการของ Arduino และดาวน์โหลดซอฟต์แวร์ https://www.arduino.cc/en/Main/Software?setlang=c… หลังจากติดตั้ง Arduino IDE อินเทอร์เฟซต่อไปนี้จะปรากฏขึ้นเมื่อคุณเปิดซอฟต์แวร์:

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

ขั้นตอนที่ 14: กระบวนการดำเนินการโครงการ Arduino LCD

กระบวนการดำเนินการโครงการ Arduino LCD
กระบวนการดำเนินการโครงการ Arduino LCD

การเชื่อมต่อฮาร์ดแวร์

เพื่อให้แน่ใจว่าขั้นตอนต่อไปในการเขียนโค้ดจะดำเนินไปอย่างราบรื่น ก่อนอื่นเราต้องกำหนดความน่าเชื่อถือของการเชื่อมต่อฮาร์ดแวร์

โครงการนี้ใช้ฮาร์ดแวร์เพียงสี่ชิ้นเท่านั้น:

1. บอร์ดพัฒนา Arduino Mini pro

2. STONE STVI070WT-01 หน้าจอแสดงผล tft-lcd

3. MAX30100 อัตราการเต้นของหัวใจและเซ็นเซอร์ออกซิเจนในเลือด

4. MAX3232 (rs232-> TTL) บอร์ดพัฒนา Arduino Mini Pro และหน้าจอแสดงผล TFT-LCD STVI070WT-01 เชื่อมต่อผ่าน UART ซึ่งต้องมีการแปลงระดับผ่าน MAX3232 จากนั้นจึงเชื่อมต่อบอร์ดพัฒนา Arduino Mini Pro และโมดูล MAX30100 ผ่าน อินเทอร์เฟซ IIC หลังจากคิดให้ชัดเจนแล้ว เราสามารถวาดภาพการเดินสายไฟได้ดังนี้

ขั้นตอนที่ 15:

ภาพ
ภาพ

ตรวจสอบให้แน่ใจว่าไม่มีข้อผิดพลาดในการเชื่อมต่อฮาร์ดแวร์ และดำเนินการในขั้นตอนต่อไป

ขั้นตอนที่ 16: การออกแบบส่วนต่อประสานผู้ใช้ TFT LCD

การออกแบบส่วนต่อประสานผู้ใช้ TFT LCD
การออกแบบส่วนต่อประสานผู้ใช้ TFT LCD

ก่อนอื่น เราต้องออกแบบรูปภาพที่แสดง UI ซึ่งสามารถออกแบบโดย PhotoShop หรือเครื่องมือออกแบบรูปภาพอื่นๆ หลังจากออกแบบรูปภาพที่แสดง UI แล้ว ให้บันทึกรูปภาพในรูปแบบ JPG

เปิดซอฟต์แวร์ STONE TOOL2019 และสร้างโครงการใหม่:

ขั้นตอนที่ 17: ลบรูปภาพที่โหลดโดยค่าเริ่มต้นในโปรเจ็กต์ใหม่ และเพิ่มอิมเมจ UI ที่เราออกแบบ

ลบรูปภาพที่โหลดโดยค่าเริ่มต้นในโปรเจ็กต์ใหม่ และเพิ่มอิมเมจ UI ที่เราออกแบบ
ลบรูปภาพที่โหลดโดยค่าเริ่มต้นในโปรเจ็กต์ใหม่ และเพิ่มอิมเมจ UI ที่เราออกแบบ

ขั้นตอนที่ 18: เพิ่มส่วนประกอบการแสดงข้อความ

เพิ่มส่วนประกอบการแสดงข้อความ
เพิ่มส่วนประกอบการแสดงข้อความ

เพิ่มองค์ประกอบการแสดงข้อความ ออกแบบตัวเลขที่แสดงและจุดทศนิยม รับตำแหน่งที่จัดเก็บส่วนประกอบการแสดงข้อความในโปรแกรมแสดงข้อความ

ผลกระทบมีดังนี้:

ขั้นตอนที่ 19:

ที่อยู่องค์ประกอบการแสดงข้อความ:

  • สถานะการเชื่อมต่อ: 0x0008
  • อัตราการเต้นของหัวใจ: 0x0001

ออกซิเจนในเลือด: 0x0005 เนื้อหาหลักของอินเทอร์เฟซ UI มีดังนี้:

  • สถานะการเชื่อมต่อ
  • แสดงอัตราการเต้นของหัวใจ
  • ออกซิเจนในเลือดแสดงให้เห็น

ขั้นตอนที่ 20: สร้างไฟล์กำหนดค่า

สร้างไฟล์กำหนดค่า
สร้างไฟล์กำหนดค่า

เมื่อการออกแบบ UI เสร็จสมบูรณ์ ไฟล์การกำหนดค่าจะถูกสร้างขึ้นและดาวน์โหลดไปยังจอแสดงผล STVI070WT-01

ขั้นแรก ให้ทำตามขั้นตอนที่ 1 จากนั้นเสียบแฟลชไดรฟ์ usb เข้ากับคอมพิวเตอร์ จากนั้นสัญลักษณ์ดิสก์จะปรากฏขึ้น จากนั้นคลิก "ดาวน์โหลดลงดิสก์ u" เพื่อดาวน์โหลดไฟล์การกำหนดค่าไปยังแฟลชไดรฟ์ usb จากนั้นใส่แฟลชไดรฟ์ usb ลงใน STVI070WT-01 เพื่อสิ้นสุดการอัพเกรด

ขั้นตอนที่ 21: MAX30100

MAX30100
MAX30100

MAX30100 สื่อสารผ่าน IIC หลักการทำงานคือสามารถรับค่า ADC ของอัตราการเต้นของหัวใจได้ผ่านการฉายรังสีอินฟราเรด LED การลงทะเบียน MAX30100 สามารถแบ่งออกเป็นห้าประเภท: การลงทะเบียนสถานะ FIFO การลงทะเบียนการควบคุมการลงทะเบียนอุณหภูมิและการลงทะเบียน ID การลงทะเบียนอุณหภูมิ อ่านค่าอุณหภูมิของชิปเพื่อแก้ไขค่าเบี่ยงเบนที่เกิดจากอุณหภูมิ การลงทะเบียน ID สามารถอ่านหมายเลข ID ของชิปได้

MAX30100 เชื่อมต่อกับบอร์ดพัฒนา Arduino Mini Pro ผ่านอินเทอร์เฟซการสื่อสาร IIC เนื่องจากมีไฟล์ไลบรารี MAX30100 สำเร็จรูปใน Arduino IDE เราจึงสามารถอ่านข้อมูลอัตราการเต้นของหัวใจและออกซิเจนในเลือดได้โดยไม่ต้องศึกษาการลงทะเบียนของ MAX30100 สำหรับผู้ที่สนใจสำรวจการลงทะเบียน MAX30100 โปรดดูเอกสารข้อมูล MAX30100

ขั้นตอนที่ 22: ปรับเปลี่ยน MAX30100 IIC Pull-up Resistor

แก้ไข MAX30100 IIC Pull-up Resistor
แก้ไข MAX30100 IIC Pull-up Resistor

ควรสังเกตว่าความต้านทานการดึงขึ้น 4.7k ของพิน IIC ของโมดูล MAX30100 เชื่อมต่อกับ 1.8v ซึ่งไม่ใช่ปัญหาในทางทฤษฎี อย่างไรก็ตาม ระดับตรรกะในการสื่อสารของขา Arduino IIC คือ 5V ดังนั้นจึงไม่สามารถสื่อสารกับ Arduino ได้โดยไม่ต้องเปลี่ยนฮาร์ดแวร์ของโมดูล MAX30100 การสื่อสารโดยตรงเป็นไปได้หาก MCU เป็น STM32 หรือ MCU ระดับตรรกะ 3.3v อื่น

ดังนั้น ต้องทำการเปลี่ยนแปลงดังต่อไปนี้:

ถอดตัวต้านทาน 4.7k สามตัวที่ทำเครื่องหมายไว้ในภาพด้วยหัวแร้งไฟฟ้า จากนั้นเชื่อมตัวต้านทาน 4.7k สองตัวที่พินของ SDA และ SCL เข้ากับ VIN เพื่อให้เราสื่อสารกับ Arduino ได้

ขั้นตอนที่ 23: Arduino

Arduino
Arduino

เปิด Arduino IDE และค้นหาปุ่มต่อไปนี้:

ขั้นตอนที่ 24: ค้นหา "MAX30100" เพื่อค้นหาสองไลบรารีสำหรับ MAX30100 จากนั้นคลิกดาวน์โหลดและติดตั้ง

ค้นหา
ค้นหา

ขั้นตอนที่ 25: หลังการติดตั้ง คุณสามารถค้นหาการสาธิตของ MAX30100 ในโฟลเดอร์ไลบรารี LIB ของ Arduino:

หลังการติดตั้ง คุณสามารถค้นหาการสาธิตของ MAX30100 ในโฟลเดอร์ไลบรารี LIB ของ Arduino
หลังการติดตั้ง คุณสามารถค้นหาการสาธิตของ MAX30100 ในโฟลเดอร์ไลบรารี LIB ของ Arduino

ขั้นตอนที่ 26: ดับเบิลคลิกที่ไฟล์เพื่อเปิด

ดับเบิลคลิกที่ไฟล์เพื่อเปิด
ดับเบิลคลิกที่ไฟล์เพื่อเปิด

ขั้นตอนที่ 27: รหัสที่สมบูรณ์มีดังนี้:

การสาธิตนี้สามารถทดสอบได้โดยตรง หากการเชื่อมต่อฮาร์ดแวร์ใช้ได้ คุณสามารถดาวน์โหลดการคอมไพล์โค้ดลงในบอร์ดพัฒนา Arduibo และดูข้อมูลของ MAX30100 ในเครื่องมือแก้ไขจุดบกพร่องแบบอนุกรม

รหัสที่สมบูรณ์มีดังนี้:

/* Arduino-MAX30100 oximetry / heart rate integrated sensor library ลิขสิทธิ์ (C) 2016 OXullo Intersecans โปรแกรมนี้เป็นซอฟต์แวร์ฟรี: คุณสามารถแจกจ่ายซ้ำและ/หรือแก้ไขภายใต้เงื่อนไขของ GNU General Public License ตามที่เผยแพร่โดย Free Software Foundation เวอร์ชัน 3 ของใบอนุญาต หรือ (ตามที่คุณเลือก) เวอร์ชันที่ใหม่กว่า โปรแกรมนี้เผยแพร่ด้วยความหวังว่าจะเป็นประโยชน์ แต่ไม่มีการรับประกันใดๆ โดยไม่มีการรับประกันโดยนัยของความสามารถในการขายสินค้าหรือความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ ดูสัญญาอนุญาตสาธารณะทั่วไปของ GNU สำหรับรายละเอียดเพิ่มเติม คุณควรได้รับสำเนา GNU General Public License พร้อมกับโปรแกรมนี้ ถ้าไม่ดู */ #include #include "MAX30100_PulseOximeter.h" #define REPORTING_PERIOD_MS 1000 // PulseOximeter เป็นอินเทอร์เฟซระดับที่สูงกว่าสำหรับเซ็นเซอร์ // มีให้: // * การรายงานการตรวจจับจังหวะ // * การคำนวณอัตราการเต้นของหัวใจ // * SpO2 (ระดับออกซิเดชัน) การคำนวณ โรคฝี PulseOximeter; uint32_t tsLastReport = 0; // การโทรกลับ (ลงทะเบียนด้านล่าง) เริ่มทำงานเมื่อตรวจพบพัลส์เป็นโมฆะ onBeatDetected () { Serial.println ("Beat!"); } การตั้งค่าเป็นโมฆะ () { Serial.begin (115200); Serial.print("กำลังเริ่มต้นชีพจร oximeter.."); // เริ่มต้นอินสแตนซ์ 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); } void loop() { // อย่าลืมโทร update ให้เร็วที่สุด pox.update(); // ถ่ายโอนข้อมูลอัตราการเต้นของหัวใจและระดับออกซิเดชันแบบอะซิงโครนัสไปที่ซีเรียล // สำหรับทั้งสองค่า 0 หมายถึง "ไม่ถูกต้อง" ถ้า (มิลลิวินาที () - tsLastReport > REPORTING_PERIOD_MS) { Serial.print ("อัตราการเต้นของหัวใจ:"); Serial.print(pox.getHeartRate()); Serial.print("bpm / SpO2:"); Serial.print(pox.getSpO2()); Serial.println("%"); tsLastReport = มิลลิวินาที (); } }

ขั้นตอนที่ 28:

ภาพ
ภาพ

รหัสนี้ง่ายมาก ฉันเชื่อว่าคุณสามารถเข้าใจได้อย่างรวดเร็ว ฉันต้องบอกว่าการเขียนโปรแกรมโมดูลาร์ของ Arduino นั้นสะดวกมาก และฉันไม่จำเป็นต้องเข้าใจด้วยซ้ำว่าโค้ดไดรเวอร์ของ Uart และ IIC ถูกนำไปใช้อย่างไร

แน่นอน รหัสด้านบนเป็นการสาธิตอย่างเป็นทางการ และฉันยังต้องทำการเปลี่ยนแปลงบางอย่างเพื่อแสดงข้อมูลไปยังตัวแสดงของ STONE

ขั้นตอนที่ 29: แสดงข้อมูลไปยัง STONE Displayer ผ่าน Arduino

อันดับแรก เราต้องได้รับที่อยู่ของส่วนประกอบที่แสดงข้อมูลอัตราการเต้นของหัวใจและข้อมูลออกซิเจนในเลือดในเครื่องแสดงผลของ STONE:

ในโครงการของฉัน ที่อยู่เป็นดังนี้: ที่อยู่ส่วนประกอบแสดงอัตราการเต้นของหัวใจ: 0x0001 ที่อยู่ของโมดูลแสดงออกซิเจนในเลือด: 0x0005 ที่อยู่สถานะการเชื่อมต่อเซ็นเซอร์: 0x0008 หากคุณต้องการเปลี่ยนเนื้อหาที่แสดงในพื้นที่ที่เกี่ยวข้อง คุณสามารถเปลี่ยนเนื้อหาที่แสดง โดยส่งข้อมูลไปยังที่อยู่ที่สอดคล้องกันของหน้าจอแสดงผลผ่านพอร์ตอนุกรมของ Arduino

ขั้นตอนที่ 30: รหัสที่แก้ไขมีดังนี้:

/* Arduino-MAX30100 oximetry / heart rate integrated sensor library ลิขสิทธิ์ (C) 2016 OXullo Intersecans โปรแกรมนี้เป็นซอฟต์แวร์ฟรี: คุณสามารถแจกจ่ายซ้ำและ/หรือแก้ไขภายใต้เงื่อนไขของ GNU General Public License ตามที่เผยแพร่โดย Free Software Foundation เวอร์ชัน 3 ของใบอนุญาต หรือ (ตามที่คุณเลือก) เวอร์ชันที่ใหม่กว่า โปรแกรมนี้เผยแพร่ด้วยความหวังว่าจะเป็นประโยชน์ แต่ไม่มีการรับประกันใดๆ โดยไม่มีการรับประกันโดยนัยของความสามารถในการขายสินค้าหรือความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ ดูสัญญาอนุญาตสาธารณะทั่วไปของ GNU สำหรับรายละเอียดเพิ่มเติม คุณควรได้รับสำเนา GNU General Public License พร้อมกับโปรแกรมนี้ ถ้าไม่ดู */ #include #include "MAX30100_PulseOximeter.h" #define REPORTING_PERIOD_MS 1000 #define Heart_dis_addr 0x01 #define Sop2_dis_addr 0x05 #define connect_sta_addr 0x08 unsigned char heart_rate_send, [8]= {0xA5, 0x00, 0x5A, \,\,\ 0x00}; ถ่านที่ไม่ได้ลงชื่อ Sop2_send[8]= {0xA5, 0x5A, 0x05, 0x82, 0x00, / Sop2_dis_addr, 0x00, 0x00}; ถ่านที่ไม่ได้ลงชื่อ connect_sta_send[8]={0xA5, 0x5A, 0x05, 0x82, 0x00, / connect_sta_addr, 0x00, 0x00}; // PulseOximeter เป็นอินเทอร์เฟซระดับสูงกว่าสำหรับเซ็นเซอร์ // มี: // * การรายงานการตรวจจับการเต้น // * การคำนวณอัตราการเต้นของหัวใจ // * การคำนวณ SpO2 (ระดับออกซิเดชัน) PulseOximeter โรคฝี; uint32_t tsLastReport = 0; // การโทรกลับ (ลงทะเบียนด้านล่าง) เริ่มทำงานเมื่อตรวจพบพัลส์เป็นโมฆะ onBeatDetected () { // Serial.println ("Beat!"); } การตั้งค่าเป็นโมฆะ () { Serial.begin (115200); // Serial.print("กำลังเริ่มต้นชีพจร oximeter.."); // เริ่มต้นอินสแตนซ์ 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("สำเร็จ"); } // กระแสไฟเริ่มต้นสำหรับ IR LED คือ 50mA และสามารถเปลี่ยนแปลงได้ // โดยยกเลิกการใส่ความคิดเห็นในบรรทัดต่อไปนี้ ตรวจสอบ MAX30100_Registers.h สำหรับตัวเลือกที่มีทั้งหมด //pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA); // ลงทะเบียนการโทรกลับสำหรับการตรวจจับจังหวะ pox.setOnBeatDetectedCallback(onBeatDetected); } void loop() { // อย่าลืมโทร update ให้เร็วที่สุด pox.update(); // ถ่ายโอนข้อมูลอัตราการเต้นของหัวใจและระดับออกซิเดชันแบบอะซิงโครนัสไปที่ซีเรียล // สำหรับทั้งสองค่า 0 หมายถึง "ไม่ถูกต้อง" ถ้า (มิลลิวินาที () - tsLastReport > REPORTING_PERIOD_MS) { // Serial.print ("อัตราการเต้นของหัวใจ:"); // Serial.print(pox.getHeartRate()); // Serial.print("bpm / SpO2:"); // Serial.print(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: แสดงอัตราการเต้นของหัวใจบน LCD ด้วย Arduino

แสดงอัตราการเต้นของหัวใจบน LCD ด้วย Arduino
แสดงอัตราการเต้นของหัวใจบน LCD ด้วย Arduino

รวบรวมโค้ด ดาวน์โหลดลงในบอร์ดพัฒนา Arduino และคุณพร้อมที่จะเริ่มการทดสอบแล้ว

เราจะเห็นได้ว่าเมื่อนิ้วออกจาก MAX30100 อัตราการเต้นของหัวใจและออกซิเจนในเลือดจะแสดงเป็น 0 วางนิ้วของคุณบนตัวสะสม MAX30100 เพื่อดูอัตราการเต้นของหัวใจและระดับออกซิเจนในเลือดแบบเรียลไทม์

เอฟเฟกต์สามารถเห็นได้ในภาพต่อไปนี้:

แนะนำ: