找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
樓主: eagler8
打印 上一主題 下一主題
收起左側(cè)

【Arduino】108種傳感器模塊系列實(shí)驗(yàn)(資料+代碼+圖形+仿真)

  [復(fù)制鏈接]
2041#
ID:513258 發(fā)表于 2019-9-2 18:51 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2042#
ID:513258 發(fā)表于 2019-9-2 18:56 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2043#
ID:513258 發(fā)表于 2019-9-2 19:11 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2044#
ID:513258 發(fā)表于 2019-9-2 20:38 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2045#
ID:513258 發(fā)表于 2019-9-2 20:39 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2046#
ID:513258 發(fā)表于 2019-9-2 20:41 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2047#
ID:513258 發(fā)表于 2019-9-2 20:43 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2048#
ID:513258 發(fā)表于 2019-9-2 20:44 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2049#
ID:513258 發(fā)表于 2019-9-2 20:45 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2050#
ID:513258 發(fā)表于 2019-9-3 10:32 | 只看該作者
37款傳感器與模塊的提法,在網(wǎng)絡(luò)上廣泛流傳,其實(shí)Arduino能夠兼容的傳感器模塊肯定是不止37種的。鑒于本人手頭積累了一些傳感器和模塊,依照實(shí)踐出真知(一定要?jiǎng)邮肿觯┑睦砟睿詫W(xué)習(xí)和交流為目的,這里準(zhǔn)備逐一動(dòng)手試試做實(shí)驗(yàn),不管成功與否,都會(huì)記錄下來---小小的進(jìn)步或是搞不定的問題,希望能夠拋磚引玉。

【Arduino】108種傳感器模塊系列實(shí)驗(yàn)(資料+代碼+圖形+仿真)
實(shí)驗(yàn)一百零四: MAX30102血氧儀手腕心率脈搏檢測心跳傳感器模塊



回復(fù)

使用道具 舉報(bào)

2051#
ID:513258 發(fā)表于 2019-9-3 10:34 | 只看該作者

MAX31020
是一種綜合性脈搏血氧測定法,心率監(jiān)測模塊。它包括內(nèi)部LED,光電探測器、光學(xué)元件和低噪聲電子設(shè)備具有環(huán)境光抑制功能。max30102提供了完整的系統(tǒng)解決方案,簡化流程設(shè)計(jì)適用于移動(dòng)和可穿戴設(shè)備。MAX31020在單個(gè)1.8V電源上工作為內(nèi)部LED提供單獨(dú)的5.0V電源。通信通過標(biāo)準(zhǔn)I2c兼容接口。模塊可以通過軟件關(guān)閉零備用電流,允許電源軌始終保持通電。


應(yīng)用
●可穿戴設(shè)備
●健身輔助設(shè)備
回復(fù)

使用道具 舉報(bào)

2052#
ID:513258 發(fā)表于 2019-9-3 10:37 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2053#
ID:513258 發(fā)表于 2019-9-3 10:44 | 只看該作者
優(yōu)點(diǎn)和特點(diǎn)
●心率監(jiān)測器和脈搏血氧計(jì)傳感器輸入LED反射溶液
●微型5.6毫米x 3.3毫米x 1.55毫米14針光學(xué)模塊
•集成的蓋玻片提供最佳、堅(jiān)固的
●移動(dòng)設(shè)備超低功率運(yùn)行
•可編程采樣率和LED電流節(jié)電
•低功率心率監(jiān)測器(<1兆瓦)
•超低停機(jī)電流(0.7μA,典型值)
●快速數(shù)據(jù)輸出能力
•采樣率高
●強(qiáng)大的運(yùn)動(dòng)偽影復(fù)原能力
•高信噪比
-40°C至+85°C工作溫度范圍




回復(fù)

使用道具 舉報(bào)

2054#
ID:513258 發(fā)表于 2019-9-3 10:46 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2055#
ID:513258 發(fā)表于 2019-9-3 10:48 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2056#
ID:513258 發(fā)表于 2019-9-3 10:50 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2057#
ID:513258 發(fā)表于 2019-9-3 10:51 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2058#
ID:513258 發(fā)表于 2019-9-3 10:52 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2059#
ID:513258 發(fā)表于 2019-9-3 10:54 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2060#
ID:513258 發(fā)表于 2019-9-3 10:54 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2061#
ID:513258 發(fā)表于 2019-9-3 14:33 | 只看該作者

模塊有兩個(gè)發(fā)光二極管,一個(gè)光檢測器,優(yōu)化光學(xué)和低噪聲的仿真信號處理,以檢測脈搏血氧飽和度和心臟速率信號。
1、只需要將手指頭緊貼在傳感器上,就能估計(jì) 脈搏血氧飽和度(SpO2)及脈搏(相當(dāng)于心跳)。
2、攜帶氧氣的紅血球能吸收較多紅外光(850-1000nm),未攜帶氧氣的紅血球則是吸收較多的紅光(600-750nm)。
3、因此pulse oximeter就是一個(gè)迷你的分光計(jì),利用不同紅血球之吸收光譜的原理,來分析血氧飽和度。
4、這種實(shí)時(shí)而快速的測量方式,也廣泛被運(yùn)用在許多臨床的參考。

回復(fù)

使用道具 舉報(bào)

2062#
ID:513258 發(fā)表于 2019-9-3 14:44 | 只看該作者
模塊電原理圖




回復(fù)

使用道具 舉報(bào)

2063#
ID:513258 發(fā)表于 2019-9-3 14:48 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2064#
ID:513258 發(fā)表于 2019-9-3 14:50 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2065#
ID:513258 發(fā)表于 2019-9-3 14:52 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2066#
ID:513258 發(fā)表于 2019-9-3 14:54 | 只看該作者

經(jīng)過多方尋找,從一個(gè)研究MAX30102算法的程序中找到了一個(gè)經(jīng)過親自驗(yàn)證有效的實(shí)際血氧標(biāo)定計(jì)算公式:

                           SpO2=-45.060*R*R+ 30.354 *R + 94.845

其中的R可以通過紅光和紅外光光強(qiáng)的對數(shù)值計(jì)算得到,這個(gè)標(biāo)定表達(dá)式實(shí)際上是對血氧飽和度的二次曲線擬合,是經(jīng)過測量得到的。最后終于可以輸出血氧飽和度數(shù)據(jù)了。

回復(fù)

使用道具 舉報(bào)

2067#
ID:513258 發(fā)表于 2019-9-3 15:03 | 只看該作者



回復(fù)

使用道具 舉報(bào)

2068#
ID:513258 發(fā)表于 2019-9-3 15:05 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2069#
ID:513258 發(fā)表于 2019-9-3 15:07 | 只看該作者
應(yīng)用
輔助健身設(shè)備
智能電話
平板電腦
可穿戴設(shè)備



回復(fù)

使用道具 舉報(bào)

2070#
ID:513258 發(fā)表于 2019-9-3 15:10 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2071#
ID:513258 發(fā)表于 2019-9-3 15:36 | 只看該作者
與Pulse sensor這種傳感器(具體見系列實(shí)驗(yàn)之95)相比,MAX30102的有點(diǎn)在于:
1.集成度高:MAX30102將兩個(gè)發(fā)光LED、光電檢測二極管、ADC、環(huán)境光抑制電路和光學(xué)機(jī)械外殼都集成在了一起,形成了一個(gè)完整模塊。這樣的優(yōu)勢就是體積小、能耗小、外界干擾小,易于集成系統(tǒng)。
2.數(shù)字輸出:MAX30102本身自帶18位高精度ADC,使用I2C接口與外接MCU通信。而且自身還有FIFO,可以減輕MCU負(fù)擔(dān),降低功耗。
3.功能豐富:MAX30102集成了LED驅(qū)動(dòng)電路,可以根據(jù)不同情況調(diào)節(jié)LED電流,采樣率也可以根據(jù)不同應(yīng)用進(jìn)行選擇。此外還集成了片上溫度傳感器,可以隨時(shí)監(jiān)測片上溫度(對血氧飽和度計(jì)算有用)。
       正是有以上一些優(yōu)點(diǎn),現(xiàn)在的模擬集成前端(AFE)都走向了集成化、小型化、數(shù)字化的方向,模擬電路的門檻越來越低了。



回復(fù)

使用道具 舉報(bào)

2072#
ID:513258 發(fā)表于 2019-9-3 18:08 | 只看該作者
MAX30102的發(fā)光部分包括兩個(gè)LED,一個(gè)是紅光LED(660nm),另一個(gè)是紅外光LED(880nm),這個(gè)是測量血氧飽和度SPO2最常見的配置。接收部分是一個(gè)對可見光和紅外光都敏感的光電二極管,其接收的光強(qiáng)度信號轉(zhuǎn)換為電流信號,經(jīng)過環(huán)境光消除電路后,最后被自帶的18位ADC進(jìn)行采樣轉(zhuǎn)化,至此模擬部分完成。AD轉(zhuǎn)化后的數(shù)字經(jīng)過數(shù)字濾波后儲(chǔ)存在數(shù)據(jù)寄存器中,最后可通過I2C總線被外接MCU讀取。在硬件上,LED的電源和其他部分的電源不是同一個(gè),因?yàn)長ED為了保證足夠的出射光強(qiáng),需要瞬間大電流(最大50ma),這就要求LED的正向電壓足夠大(要求3.1V以上)。而其余的AD轉(zhuǎn)換和I2C總線部分,為了實(shí)現(xiàn)低功耗要求電壓足夠。ㄒ1.8V),所以傳感器需要兩路獨(dú)立的電源。此外,由于LED電源會(huì)產(chǎn)生瞬間大電流,所以電源引腳附近要加一個(gè)大電容減輕對電源電壓的影響。
傳統(tǒng)的脈搏測量方法主要有三種:一是從心電信號中提取;二是從測量血壓時(shí)壓力傳感器測到的波動(dòng)來計(jì)算脈率;三是光電容積法。前兩種方法提取信號都會(huì)限制病人的活動(dòng),如果長時(shí)間使用會(huì)增加病人生理和心理上的不舒適感。而光電容積法脈搏測量作為監(jiān)護(hù)測量中最普遍的方法之一,其具有方法簡單、佩戴方便、可靠性高等特點(diǎn)。

光電容積法的基本原理是利用人體組織在血管搏動(dòng)時(shí)造成透光率不同來進(jìn)行脈搏和血氧飽和度測量的。其使用的傳感器由光源和光電變換器兩部分組成,通過綁帶或夾子固定在病人的手指、手腕或耳垂上。光源一般采用對動(dòng)脈血中氧合血紅蛋白(HbO2)和去氧血紅蛋白(Hb)有選擇性的特定波長的發(fā)光二極管(一般選用660nm附近的紅光和900nm附近的紅外光)。當(dāng)光束透過人體外周血管,由于動(dòng)脈搏動(dòng)充血容積變化導(dǎo)致這束光的透光率發(fā)生改變,此時(shí)由光電變換器接收經(jīng)人體組織反射的光線,轉(zhuǎn)變?yōu)殡娦盘柌⑵浞糯蠛洼敵觥S捎诿}搏是隨心臟的搏動(dòng)而周期性變化的信號,動(dòng)脈血管容積也呈現(xiàn)周期性變化,因此光電變換器的電信號變化周期就是脈搏率。





回復(fù)

使用道具 舉報(bào)

2073#
ID:513258 發(fā)表于 2019-9-3 18:24 | 只看該作者
  1. /*
  2. 【Arduino】108種傳感器模塊系列實(shí)驗(yàn)(資料+代碼+圖形+仿真)
  3. 實(shí)驗(yàn)一百零四: MAX30102血氧儀手腕心率脈搏檢測心跳傳感器模塊
  4. 1、安裝庫:IDE-工具-管理庫-搜索“MAX30105”-安裝
  5. 2、項(xiàng)目:串口讀取測量數(shù)據(jù)
  6. 3、連線(I2C):
  7. VIN  → 3.3V
  8. GND  →  GND
  9. SDA  接 A4
  10. SCL  接 A5
  11. */

  12. #include <Wire.h>
  13. #include "MAX30105.h"
  14. #include "heartRate.h"

  15. MAX30105 particleSensor;

  16. const byte RATE_SIZE = 4; //Increase this for more averaging. 4 is good.
  17. byte rates[RATE_SIZE]; //Array of heart rates
  18. byte rateSpot = 0;
  19. long lastBeat = 0; //Time at which the last beat occurred

  20. float beatsPerMinute;
  21. int beatAvg;

  22. void setup()
  23. {
  24.   Serial.begin(115200);
  25.   Serial.println("Initializing...");

  26.   // Initialize sensor
  27.   if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) //Use default I2C port, 400kHz speed
  28.   {
  29.     Serial.println("MAX30105 was not found. Please check wiring/power. ");
  30.     while (1);
  31.   }
  32.   
  33.   Serial.println("Place your index finger on the sensor with steady pressure.");

  34.   particleSensor.setup(); //Configure sensor with default settings
  35.   particleSensor.setPulseAmplitudeRed(0x0A); //Turn Red LED to low to indicate sensor is running
  36.   particleSensor.setPulseAmplitudeGreen(0); //Turn off Green LED
  37. }

  38. void loop()
  39. {
  40.   long irValue = particleSensor.getIR();

  41.   if (checkForBeat(irValue) == true)
  42.   {
  43.     //We sensed a beat!
  44.     long delta = millis() - lastBeat;
  45.     lastBeat = millis();

  46.     beatsPerMinute = 60 / (delta / 1000.0);

  47.     if (beatsPerMinute < 255 && beatsPerMinute > 20)
  48.     {
  49.       rates[rateSpot++] = (byte)beatsPerMinute; //Store this reading in the array
  50.       rateSpot %= RATE_SIZE; //Wrap variable

  51.       //Take average of readings
  52.       beatAvg = 0;
  53.       for (byte x = 0 ; x < RATE_SIZE ; x++)
  54.         beatAvg += rates[x];
  55.       beatAvg /= RATE_SIZE;
  56.     }
  57.   }

  58.   Serial.print("IR=");
  59.   Serial.print(irValue);
  60.   Serial.print(", BPM=");
  61.   Serial.print(beatsPerMinute);
  62.   Serial.print(", Avg BPM=");
  63.   Serial.print(beatAvg);
  64.   Serial.println();
  65.   delay(1000);
  66. }
復(fù)制代碼


回復(fù)

使用道具 舉報(bào)

2074#
ID:513258 發(fā)表于 2019-9-3 18:29 | 只看該作者
Initializing...
Place your index finger on the sensor with steady pressure.
正在初始化…
將食指穩(wěn)定地放在傳感器上。
(初始化后的串口數(shù)據(jù)-未放上手指)




回復(fù)

使用道具 舉報(bào)

2075#
ID:513258 發(fā)表于 2019-9-3 18:33 | 只看該作者


放上手指,只有一組數(shù)據(jù),比較平穩(wěn)估計(jì)是血氧值,大約95%
回復(fù)

使用道具 舉報(bào)

2076#
ID:513258 發(fā)表于 2019-9-3 19:04 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2077#
ID:513258 發(fā)表于 2019-9-4 06:54 | 只看該作者
37款傳感器與模塊的提法,在網(wǎng)絡(luò)上廣泛流傳,其實(shí)Arduino能夠兼容的傳感器模塊肯定是不止37種的。鑒于本人手頭積累了一些傳感器和模塊,依照實(shí)踐出真知(一定要?jiǎng)邮肿觯┑睦砟,以學(xué)習(xí)和交流為目的,這里準(zhǔn)備逐一動(dòng)手試試做實(shí)驗(yàn),不管成功與否,都會(huì)記錄下來---小小的進(jìn)步或是搞不定的問題,希望能夠拋磚引玉。

【Arduino】108種傳感器模塊系列實(shí)驗(yàn)(資料+代碼+圖形+仿真)
實(shí)驗(yàn)一百零五:12位 WS2812 5050 RGB LED 智能全彩RGB環(huán)開發(fā)板大環(huán)




回復(fù)

使用道具 舉報(bào)

2078#
ID:513258 發(fā)表于 2019-9-4 07:40 | 只看該作者

WS2812B
是一種將控制電路和rgb芯片集成在一起的智能控制led光源。5050組件的包裝。內(nèi)部包括智能數(shù)字端口數(shù)據(jù)鎖存和信號整形放大驅(qū)動(dòng)電路。還包括精密內(nèi)部振蕩器和12V電壓可編程恒流控制部分,有效保證了像素點(diǎn)光色高度一致。數(shù)據(jù)傳輸協(xié)議采用單NZR通信方式。像素上電復(fù)位后,DIN端口接收數(shù)據(jù)來自控制器,第一個(gè)像素收集初始24位數(shù)據(jù),然后發(fā)送到內(nèi)部數(shù)據(jù)鎖存器,其他數(shù)據(jù)由內(nèi)部信號整形放大電路通過DO端口發(fā)送到下一個(gè)級聯(lián)像素進(jìn)行整形。后對于每個(gè)像素的傳輸,信號要減少24位。像素采用自動(dòng)整形傳輸技術(shù),使像素級聯(lián)數(shù)不受信號傳輸?shù)南拗,只取決于信號傳輸?shù)乃俣取?fù)位時(shí)間>280μs,中斷時(shí)不會(huì)造成誤復(fù)位,支持較低頻率,價(jià)格低廉單片機(jī)。刷新頻率更新到2kHz,畫面頻率低,高清攝像機(jī)無閃爍,提高出色的展示效果。LED具有驅(qū)動(dòng)電壓低、環(huán)保節(jié)能、亮度高、散射角大、一致性好、功率低、壽命長等優(yōu)點(diǎn)。集成在led上的控制芯片越來越多電路簡單,體積小,安裝方便。

回復(fù)

使用道具 舉報(bào)

2079#
ID:513258 發(fā)表于 2019-9-4 08:02 | 只看該作者

回復(fù)

使用道具 舉報(bào)

2080#
ID:513258 發(fā)表于 2019-9-4 08:04 | 只看該作者

回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表