Satura rādītājs:

Reģistrējiet ātrgaitas EKG vai citus datus nepārtraukti vairāk nekā mēnesi: 6 soļi
Reģistrējiet ātrgaitas EKG vai citus datus nepārtraukti vairāk nekā mēnesi: 6 soļi

Video: Reģistrējiet ātrgaitas EKG vai citus datus nepārtraukti vairāk nekā mēnesi: 6 soļi

Video: Reģistrējiet ātrgaitas EKG vai citus datus nepārtraukti vairāk nekā mēnesi: 6 soļi
Video: НЛО: НАСТОЯЩАЯ ПРАВДА! / ПОЛНЫЙ ДОКУМЕНТАЛЬНЫЙ ФИЛЬМ 2024, Novembris
Anonim
Reģistrējiet ātrgaitas EKG vai citus datus nepārtraukti vairāk nekā mēnesi
Reģistrējiet ātrgaitas EKG vai citus datus nepārtraukti vairāk nekā mēnesi

Šis projekts tika izstrādāts, lai atbalstītu universitātes medicīnas pētnieku komandu, kurai bija nepieciešams valkājams apģērbs, kas 30 dienas nepārtraukti varētu reģistrēt 2 x EKG signālus ar ātrumu 1000 paraugi sekundē (kopā 2K paraugi sekundē), lai noteiktu aritmijas. Šeit iesniegtais projekts ietver mežizstrādes tālvadību un uzraudzību. Tālvadības pults tiek veikta, izmantojot izvēlnes, kas tiek parādītas sērijveida terminālī vai nu datorā, vai mobilajā tālrunī. Šis projekts neattiecas uz EKG mērījumiem vai iepakojumu vai akumulatoru, kas nepieciešams galīgajai valkāšanai.

Šajā ātrgaitas/ilgstošā versijā datu reģistrēšanai tiek izmantots Teensy 3.2, Adafruit Micro-SD sadalīšanas modulis, kvalitatīva 16G SDHC 10. klases SD karte, kā arī Bluetooth sakaru modulis vadībai un uzraudzībai. Pieejama arī šī projekta mazāk attīstīta un lēnāka UNO/Mega2560 versija. Kamēr šis projekts reģistrēšanas kontrolei un uzraudzībai izmanto Bluetooth sakaru moduli, varat izmantot arī WiFi vai BLE moduļus.

Šī versija, kuras pamatā ir Teensy 3.2, var nodrošināt daudz augstāku paraugu ņemšanas ātrumu nekā UNO/Mega2560 versija. Izmantojot šo kodu, Teensy 3.2 var ņemt paraugus un reģistrēt divus ADC paraugus pie> 30Khz ar aparatūru vidēji vairāk nekā 4 paraugiem un tik viegli atbilst iepriekšminētajai 1000 paraugu/sek. Kods atbalsta 100.bin failu saglabāšanu, katrs 128K. Pie 30 Khz, kas aptver 29 stundas 30 minūtes. Pie 1000 paraugiem sekundē tas aptver 37 dienas. Kodu var viegli pagarināt, lai apstrādātu vairāk nekā 100 failus, tādējādi pagarinot izpildes ilgumu. Izpildes beigās jums būs> 10Gig datu,.bin, faili un.met fails ar metadatiem, kas apraksta izpildi un rezultātus. Piegādāto SDtoCSV.jar (avota kods SDtoCSV_src.zip) var izmantot, lai.bin failus pārvērstu par.csv failiem datorā tālākai apstrādei. Iegūtie dati ir> 60Gig. UNO/Mega2560 versijā Arduino skicē ir iekļauta konvertēšana no.bin uz.csv, taču, ņemot vērā Teensy versijā reģistrēto datu apjomu, tas nav efektīvs veids, kā veikt reklāmguvumu.

Piegādes

Teensy 3.2, autors PJRC

Adafruit MicroSD kartes sadalīšanas panelis+ vai līdzīgs.

16G SDHC 10. klases MicroSD karte ar labu kvalitāti, piem. SanDisk.

5V USB barošana

LED ar sērijas 470R rezistoru.

2 x 100R rezistori (nodrošina aizsardzību pret bojājumiem Tx/Rx vadu kļūdu dēļ)

Bluetooth Mate Silver VAI viens no Arduino UNO/Mega Starter aprakstītajiem moduļiem, ko kontrolē Android/pfodApp

1. solis: būvniecība

Būvniecība
Būvniecība

Lejupielādējiet un instalējiet Arduino IDE V1.8.9+ no vietnes https://arduino.cc/en/Main/Software. Šajā tīmekļa lapā ir saites uz dažādām operētājsistēmām un saite uz GettingStarted (https://arduino.cc/en/Guide/HomePage).

Lejupielādējiet un instalējiet Teensyduino (Arduino IDE Teensy atbalsts). Uzmanīgi ievērojiet pirmās lietošanas instrukcijas.

Kā dēli izvēlieties Teensy 3.2 un pārbaudiet, vai BLINK parauga programma tiek ielādēta un darbojas.

Lejupielādējiet un instalējiet šādas bibliotēkas:- millisDelay un SdFat (šiem testiem izmantotās SdFat bibliotēkas vietējais momentuzņēmums ir šeit.) Un pfodParser.zip (klasēm pfodBufferedStream un pfodNonBlockingInput)

Lejupielādējiet bibliotēkas ZIP failus un pēc tam izmantojiet Arduino IDE → Skice → Iekļaut bibliotēku → Pievienot. ZIP bibliotēkas izvēlni, lai instalētu bibliotēkas no zip failiem.

Izsaiņojiet failu Teensy32AnalogLogger.zip savā Arduino skice direktorijā un ieprogrammējiet Teensy 3.2 dēli ar Teensy32AnalogLogger.ino (versija 0.01)

Pievienojiet Teensy 3.2, Bluetooth moduli un SD kartes moduli, kā parādīts iepriekš (pdf versija)

2. darbība: programmas palaišana - pārbaude

Vispirms formatējiet SD karti, izmantojot vietni

Lai sāktu reģistrēšanu, SD kartei jābūt tukšai.

Sākotnējai pārbaudei jums nav jāpievieno sakaru modulis, vienkārši pievienojiet Teensy 3.2 + SD moduli (ar tukšu karti) ar Arduino IDE, izmantojot USB seriālo kabeli. Kā paredzēts, skicē Teensy32AnalogLogger.ino vadībai un uzraudzībai tiek izmantots USB savienojums. Lai saziņai izmantotu vadību un uzraudzību, skatiet tālāk norādīto reālo datu reģistrēšanas darbību.

Rediģējiet Teensy32AnalogLogger.ino skices augšdaļu, lai iestatītu COM_SERIAL uz Serial, lai izvadītu uz Teensy USB savienojumu.

#define COM_SERIAL Sērija

Pēc tam augšupielādējiet skici vietnē Teensy 3.2

Atveriet Arduino IDE sērijas monitoru ar 115200 bodu (gan NL, gan CR komplektā). Pēc dažām sekundēm Teensy 3.2 parādīs komandu izvēlni

Ver: 0.01 ievadiet vienu no šīm komandām:? - pašreizējais statuss un metadatai - inicializēt failusl - sarakstu faili>

Vai? cmd parāda informāciju par pašreizējiem iestatījumiem. (Skatiet Teensy32AnalogLogger.ino augšdaļu, lai mainītu šos iestatījumus.) Cmds ir jābeidz ar NL vai CR vai abiem.

0: 00: 00 000 no 720: 00: 00 000

Parauga tapas: 16 17 Baitu secība: Little-Endian ADC biti: 10 ADC paraugu vidējie rādītāji vairāk nekā: 4 Sample Rate: 1000.00 Paraugu intervāls: 1000uS Paraugi blokā: 127 Bloka aizpildīšanas laiks: 127000uS Laiks faila aizpildīšanai: 9:01: 52.000 VISU failu aizpildīšanas laiks: 894: 04: 48.000 Maksimālais SD latentums (ieskaitot faila aizvēršanu/atvēršanu): 0uS Maksimālais faila aizvēršanas/atvēršanas latentums: 0uS Buferbloku skaits: 28 VISU bloku buferu aizpildīšanas laiks: 3556000uS Maksimālais buferu skaits saglabāts zvanā uz veikaluSampleBuffers (): 0 Neatbildētie taimeri kopā: 0 Kopā līdz šim neatbildētie paraugi: 0 Kopējais rakstīto bloku skaits: 0 Kopējais uzrakstīto paraugu skaits: 0 aptver: 0: 00: 00.000 Pašreizējais fails:

Šajā gadījumā pašreizējais reģistrācijas izpildlaiks ir 0 no pieprasītajām 720 stundām (30 dienām), paraugu ņemšana D16/A2 un D17/A3 (turpmāk tekstā ADC ievades izvēles ierobežojumus skatīt zemāk) 1000 reizes sekundē. Maksimālais darbības laiks var būt līdz 894 stundām (37,25 dienas). Galveno cilpu () var aizņemt līdz 3,5 sekundēm (laiks aizpildīt VISUS bloķēšanas buferus), pirms tiek aizpildīti visi pieejamie buferi un sāk zaudēt paraugus. Saglabātie buferi utt tiek atjaunināti, palaižot.

Ievietojiet tukšu SD karti, izmantojiet 'i' cmd, lai inicializētu 99 failus, kas izmantoti datu glabāšanai. Iepriekšēja to inicializēšana šeit samazina laika aizkavi, pārslēdzoties no viena faila uz otru, un ļauj ātrāk veikt paraugu ņemšanu.

Notiek 99 failu inicializēšana

Jauna faila izveide: log00.bin Pagājušais laiks: 368mS Jaunā faila izveide: log01.bin Pagājušais laiks: 520mS… Jauna faila izveide: log98.bin Pagājušais laiks: 15660mS Jaunā faila izveide: log99.bin Pagājušais laiks: 15812mS

Pēc tam varat izmantot r cmd, lai sāktu reģistrēšanu. Darbība tiks veikta pieprasīto laiku vai līdz brīdim, kad s cmd tiks izmantots, lai to apturētu. Vai varat izmantot arī? cmd, reģistrējoties, lai iegūtu atjauninātu laiku un skaitu. Šeit ir īss skrējiens, kas apstājās agri, izmantojot s cmd.

REĢISTRĒŠANAS DATI ….

Ver: 0.01 ievadiet vienu no šīm komandām:? - pašreizējais statuss un metadati s - pārtraukt datu reģistrēšanu

LOGGING DATA … Pārbaudīt ar? komandu

Pagājušais darbības laiks: 0: 00: 10.000 no 720: 00: 00.000 Pagājušais darbības laiks: 0: 00: 20.000 no 720: 00: 00.000…

Reģistrēšanas pārtraukšana un neizmantoto failu noņemšana.

… Neizmantotā faila noņemšana: log98.bin Neizmantotā faila noņemšana: log99.bin

0: 01: 04.976 no 720: 00: 00.000

Parauga tapas: 16 17 Baitu secība: Little-Endian ADC biti: 10 ADC paraugu vidējie rādītāji vairāk nekā: 4 Sample Rate: 1000.00 Paraugu intervāls: 1000uS Paraugi blokā: 127 Bloka aizpildīšanas laiks: 127000uS Laiks faila aizpildīšanai: 9:01: 52.000 VISU failu aizpildīšanas laiks: 894: 04: 48.000 Maksimālais SD latentums (ieskaitot faila aizvēršanu/atvēršanu): 204uS Maksimālais faila aizvēršanas/atvēršanas latentums: 0uS Buferbloku skaits: 28 VISU bloku buferu aizpildīšanas laiks: 3556000uS Maksimālais buferu skaits saglabāts zvanā uz veikaluSampleBuffers (): 1 Neatbildētie taimeri kopā: 0 Kopā līdz šim neatbildētie paraugi: 0 Kopā rakstītie bloki: 511 Kopējais rakstīto paraugu skaits: 64832 aptver: 0: 01: 04.832 Pašreizējais fails: log00.bin

ls:

2000-01-01 01:00:00 261632 log00.bin 2000-01-01 01:00:00 240 log.met

DATU APSKATĪŠANA Pabeigta!

Ver: 0.01 ievadiet vienu no šīm komandām:? - pašreizējais statuss un metadati ** r - ierakstīt ADC datus ** nav pieejami. Dati jau pastāv ** i - failu inicializēšana ** nav pieejama. Dati jau pastāv l - saraksta faili

DATI JAU IR AIZLIEGTI, pārbaudiet?

LED displejs

Ar D3 savienotā gaismas diode (ar D2 nodrošina GND savienojumu) iedegsies nepārtraukti, ja kāds paraugs tiek izlaists, un mirgos, ja ir kļūda. Skice mēģina turpināt pēc kļūdām, bet, iespējams, to neizdodas.

3. darbība: reālu datu reģistrēšana

Reģistrējot reālus datus ilgākā laika periodā, ir ērtāk savienot sakaru moduli ar D0/D1 tapām un kontrolēt un uzraudzīt reģistrēšanu attālināti. Šeit tika izmantots Bluetooth Mate Silver modulis ar noklusējuma iestatījumiem, 115200 bodu, bez aparatūras rokasspiediena (RTC, CTS), pin kods 1234.

Piezīme: Kad Mate Silver modulim tiek pievadīta barošana, tas nonāk konfigurācijas režīmā, ātri mirgo sarkana gaismas diode 60 sekundes. Šajā laikā jūs varat nosūtīt $$$, izmantojot seriālo savienojumu, uz moduli, lai to konfigurētu, bet jūs nevarat savienot moduli. Kad sarkanā gaismas diode mirgo lēni, Bluetooth modulis pieņems savienojumus.

Mainiet COM_SERIAL definīciju vietnē Teensy32AnalogLogger.ino uz aparatūras sērijas (D0/D1) savienojumu Serial1

#define COM_SERIAL Serial1

Pēc savienošanas pārī ar datoru datorā tika izveidots jauns COM ports, un CoolTerm var izmantot, lai izveidotu savienojumu, kontrolētu un uzraudzītu reģistrēšanu. Var izmantot arī citus sērijveidā savienotus sakaru moduļus, piemēram, WiFi vai BLE, sīkāku informāciju skatiet sadaļā Arduino UNO/Mega Starter, kuru kontrolē Android/pfodApp.

Jūs varat arī kontrolēt un pārraudzīt reģistrēšanu no sava Android mobilā tālruņa, izmantojot Bluetooth termināla lietotni, piemēram, lietotni Bluetooth Terminal, vai izmantojot WiFi un TCP termināļa lietotni, piemēram, TCP Telnet Terminal Pro, vai Uart to BLE mdoule un BLE termināla lietotni, piemēram, nRF UART V2

4. solis: ADC ievades izvēles ierobežojumi

ADC ievades izvēles ierobežojumi
ADC ievades izvēles ierobežojumi

Teensy 3.2 mikroprocesorā ir divi atsevišķi ADC aparatūras moduļi-ADC_0 un ADC_1, lai tas varētu vienlaikus izlasīt divas ieejas. Tam ir arī iebūvēta aparatūras vidējā aprēķināšana, kas ņem vairākus ADC paraugus un aprēķina tos pirms rezultāta pagriešanas.

Ir ierobežojumi, kādus ievadus var savienot ar ADC_0, ADC_1. Teensy3_1_AnalogCard-p.webp

Rezumējot: -Vienreizējiem lasījumiem, ti, +volti, kas attiecas uz GND ADC_0, var nolasīt no A0 līdz A9, A10, A11, A12, A14 ADC_1 var nolasīt A2, A3, A10, A13, A15 līdz A20 Ja izvēlaties tapu, ko ADC nevar izlasīt, atgriezīsies 0 (vienmēr)

Šajā projektā tiek izmantoti A2, A3, kuriem katram var piekļūt, izmantojot ADC_0 vai ADC_1.

5. darbība.. Bin failu konvertēšana.csv failos

Teensy32AnalogLogger.ino saglabā paraugus kā binārus failos logxx.bin, t.i., log00.bin uz log99.bin. Teensy32AnalogLogger.ino arī saglabā log.met failu ar metadatiem par izpildi.

Varat izmantot SDtoCSV.jar (avota kods SDtoCSV_src.zip), lai.bin failus pārvērstu.csv tālākai apstrādei. Kopējiet failus no SD kartes uz datora cieto disku ar vismaz 70 Gig brīvas vietas un nokopējiet SDtoCSV.jar tajā pašā direktorijā. Atveriet komandu logu šajā direktorijā un palaidiet

java -jar SDtoCSV.jar žurnāls

Ja jūsu datorā nav instalēta Java, instalējiet to no vietnes www.java.com

SDtoCSV apstrādās failu log.met un pēc tam katru no katalogā esošajiem logxx.bin failiem un izvadīs.csv failu katram.bin.. Csv failam ir parauga kārtas numurs, kam seko divi rādījumi.

Šeit ir parādīta konsoles izlaide 2 adc rādījumam, kuras paraugs ir 30303 reizes sekundē, output.txt. Tas parāda, kā tiek ziņots par neatbildētiem paraugiem. (Buferu skaita dubultošana galīgajā skicē novērsa šos izlaistos paraugus)

SD_Logging to CSV conversion. Pārbaudiet SDtoCSV.log progresa un kļūdu ziņojumus. Apstrādes žurnāls Apstrādāti 256000 bloki Apstrādes žurnāls01 Apstrādāti 256000 bloki… Apstrādes žurnāls25 Apstrādāti 256000 bloki Apstrādes žurnāls26 Apstrādāti 256000 bloki Apstrādes žurnāls27 Apstrādāts 256000 bloki Neatbildētie paraugi: 2715 Apstrādes žurnāls28 Apstrādāti 256000 bloki… Apstrādes žurnāls29 Apstrādāti 256000 bloki… Apstrādes žurnāls47 Apstrādāti 256000 bloki Apstrādes žurnāls48 Apstrādāti 35935 bloki --- Pabeigta apstrāde

Katrai SDtoCSV palaišanai tiek pievienots pilnīgāks žurnālfails SDtoCSV.log. Tas ietver metadatu izvadi un visus kļūdu ziņojumus. Šeit skaits: 254 ir šajā blokā saglabāto datu skaits, ti, 127 paraugi x 2 adc rādījumi vienā blokā. MissSamples ir nokavēto lasīšanas pāru skaits, t.i., rindas.csv izvadā.

=== Žurnāla fails SD_Logging CSV konvertēšanai Sat Jul 13 13:19:51 AEST 2019 33 adcBits: 10 adcAvgs: 4 pinSkaitlis: 2 tapas: 16, 17 paraugiPerBlock: 127 noBufferBlocks: 28 ilgums mS: 51649820 pieprasītais izpildes laiks mS: 106216704 maxBuffersIzmantots: 32 Brīdinājums: Pārsniedz pieejamo buferu skaitu (28). Daži paraugi var nebūt. maxLatency uS: 221476 Brīdinājums: pārsniedz laiku, ko nodrošina bufera bloki (117348uS). Dažu paraugu trūks. maxFileOpenTime uS: 20998 neatbildētie Taimeri: 0 neatbildētie Paraugi Kopā: kopā 2715 Bloki Rakstīts: kopā 12323935 Paraugi Rakstīts: 1565139665 Apstrāde log00.bin Apstrādāti 256000 bloki Apstrādes žurnāls01.bin Apstrādāti 256000 bloki… Apstrāde log26.bin Apstrādāti 256000 bloki Apstrāde log27.bin !!! Bloks: 57696 skaits: 254 nokavēti Paraugi: 2339 !!! Bloks: 57697 skaits: 254 neatbildēti Paraugi: 376 Apstrādāti 256000 bloki --- Kopā neatbildētie paraugi: 2715

Apstrāde log28.bin Apstrādāti 256000 bloki

… Apstrādes žurnāls47.bin Apstrādāti 256000 bloki Apstrādes žurnāls48.bin Apstrādāti 35935 bloki --- Pabeigta apstrāde

Log00.csv izvades faila paraugs ir

SampleCounter (uz 33uS), 16. tapa, 170, 248, 205 1, 273, 195 2, 228, 337 3, 360, 302 4, 355, 369 5, 220, 281…

Parauga skaitītājs palielinās no faila uz failu, tāpēc to var izmantot kā laika zīmogu. Ja trūkst paraugu, tad pirms nākamās rindas izvadīšanas paraugu skaitītāju palielina par nokavēto skaitu, lai skaitītājs/laika zīmogs ierakstītajiem paraugiem paliktu precīzs.

6. darbība: komentāri par kodeksu un paplašinājumiem

Teensy32AnalogLogger ir Bila Greimana AnalogBinLogger piemēra stipri pārveidota versija viņa SdFat Arduino bibliotēkā. Šeit bibliotēka ir pārrakstīta, lai darbotos vietnē Teensy 3.2.

Teensy32AnalogLogger parauga intervāla iestatīšanai izmanto taimer0. Pārtraukumu apstrādātājs taimer0 sāk divus ADC pārveidojumus. Otrā ADC moduļa pārtraukšanas apstrādātājs tiek pastāvīgi izsaukts, līdz tie abi ir pabeigti, parasti pirmais ADC sāktais ADC_0 tiks pabeigts pirms otrā ieslēgšanas, tāpēc pārtraukuma apstrādātājs tiek izsaukts tikai vienu reizi. Pārtraukuma apstrādātājs ADC_1 saglabā paraugus datu buferī.

Galvenajā cilpā () storeSampleBuffer () saglabā visus pilnos buferus SD kartē un pārstrādā buferus tukšā bufera rindā. Lielais RAM apjoms, kas pieejams Teensy 3.2, nozīmē, ka var piešķirt lielu skaitu buferšķīdumu, un tāpēc storeSampleBuffer () nav bieži jāzvana. Tas atstāj laiku galvenajai cilpai () veikt citus darbus, piemēram, apstrādāt komandas un nosūtīt izvadi.

Paplašinājumi

Lai gan šis projekts darbojas kā ātrgaitas datu reģistrētājs, pilnīgai valkāšanai tas joprojām ir jāiepako un jāpiegādā akumulatora sistēma un EKG sensori. Kā arī tas, ka ir daži paplašinājumi, kas jāņem vērā.

  1. Pievienojiet reāllaika paraugu ņemto viļņu formu kontroli un uzraudzību, izmantojot pfodApp, izmantojot pfodApp diagrammas funkciju, lai parādītu viļņu formas momentuzņēmumus
  2. Pagariniet faila skaitu, kas pārsniedz 99, lai iegūtu ilgāku izlases kārtu
  3. Izlasiet vairāk nekā 2 ievades. Tā kā Teensy 3.2 ir divi ADC moduļi, varat modificēt kodu, lai pa pāriem pievienotu papildu ievadi, lai palielinātu izlases ātrumu.
  4. Pievienojiet akumulatora uzraudzību, lai izsekotu akumulatora uzlādi. Teensy 3.2 izmanto aptuveni 1100 mAh 24 stundu laikā, ieskaitot Bluetooth un SD moduli, bet neņemot vērā sensora moduli
  5. Pievienojiet dubultu akumulatora padeves ķēdi, lai varētu mainīt akumulatoru, nepārtraucot reģistrēšanu.

Ieteicams: