Mündəricat:

Bir Ay ərzində Davamlı Yüksək Sürətli EKQ və ya digər məlumatları daxil edin: 6 addım
Bir Ay ərzində Davamlı Yüksək Sürətli EKQ və ya digər məlumatları daxil edin: 6 addım

Video: Bir Ay ərzində Davamlı Yüksək Sürətli EKQ və ya digər məlumatları daxil edin: 6 addım

Video: Bir Ay ərzində Davamlı Yüksək Sürətli EKQ və ya digər məlumatları daxil edin: 6 addım
Video: Beyin Gücünü 10 Dəfə Artırır - Mütləq Edin! 2024, Noyabr
Anonim
Bir ay ərzində davamlı olaraq yüksək sürətli EKQ və ya digər məlumatları qeyd edin
Bir ay ərzində davamlı olaraq yüksək sürətli EKQ və ya digər məlumatları qeyd edin

Bu layihə, aritmiyanı aşkar etmək üçün hər biri 1000 nümunə/saniyədə (hər biri 2K nümunə/saniyə) 2 x EKQ siqnalını 30 gün ərzində daxil edə bilən geyilə bilən bir cihaza ehtiyacı olan bir universitet tibbi araşdırma qrupunu dəstəkləmək üçün hazırlanmışdır. Burada təqdim olunan layihəyə uzaqdan idarəetmə və qeydlərin izlənməsi daxildir. Uzaqdan idarəetmə, kompüterdə və ya cib telefonunda serial terminalda təqdim olunan menyular vasitəsilə həyata keçirilir. Bu layihə, son geyinmək üçün lazım olan EKQ ölçüsünü, qablaşdırmasını və ya batareyasını əhatə etmir.

Bu yüksək sürətli/uzun müddətli versiya, məlumatları daxil etmək üçün Teensy 3.2, Adafruit Micro-SD qırılma modulu, keyfiyyətli 16G SDHC sinif 10 SD kartdan və nəzarət və izləmə üçün Bluetooth rabitə modulundan istifadə edir. Bu layihənin daha az inkişaf etmiş və daha yavaş UNO/Mega2560 versiyası da mövcuddur. Bu layihə qeydlərin idarə edilməsi və monitorinqi üçün Bluetooth rabitə modulundan istifadə edərkən, WiFi və ya BLE modullarından da istifadə edə bilərsiniz.

Teensy 3.2 -ə əsaslanan bu versiya, UNO/Mega2560 versiyasına nisbətən daha yüksək nümunə götürmə qabiliyyətinə malikdir. Bu kodu istifadə edərək Teensy 3.2, 4 nümunənin ortalaması olan hardware ilə> 30Khz -də iki ADC nümunəsini seçə və qeyd edə bilər və yuxarıdakı 1000 nümunə/saniyə tələbini asanlıqla təmin edir. Kod, hər biri 128K olan 100.bin faylını saxlamağı dəstəkləyir. 30Hz -də 29 saat 30 dəqiqəni əhatə edir. 1000 nümunə/saniyədə 37 günü əhatə edir. Kod 100 -dən çox faylı idarə etmək üçün asanlıqla uzadıla bilər, buna görə də işləmə müddəti uzadılır. İşin sonunda> 10Gig data,.bin, faylları və.met faylını, qaçışı və nəticələri izah edən meta məlumatlarınız olacaq. Verilən SDtoCSV.jar (mənbə kodu SDtoCSV_src.zip), sonrakı emal üçün.bin fayllarını kompüterinizdəki.csv fayllarına çevirmək üçün istifadə edilə bilər. Nəticədə alınan məlumatlar> 60 Gig. UNO/Mega2560 versiyasında Arduino eskizinə daxil olan.bin to.csv çevrilməsi var, lakin Teensy versiyası tərəfindən daxil edilən məlumatların həcmi nəzərə alınmaqla bu dönüşüm üçün təsirli bir yol deyil.

Təchizat

PJRC tərəfindən Teensy 3.2

Adafruit MicroSD kart kəsmə lövhəsi+ və ya bənzəri.

16G SDHC sinif 10 keyfiyyətli MicroSD kartı, məsələn. SanDisk.

5V USB təchizatı

Seriyalı 470R müqavimətçisi olan bir led.

2 x 100R rezistorlar (Tx/Rx naqillərindəki səhvlər səbəbindən zədələnmədən qorunma təmin edir)

Bluetooth Mate Silver OR Android/pfodApp tərəfindən idarə olunan Arduino UNO/Mega Starter -də təsvir edilən modullardan biri

Addım 1: Tikinti

Tikinti
Tikinti

Http://arduino.cc/en/Main/Software saytından Arduino IDE V1.8.9+ yükləyin və quraşdırın. Bu veb səhifədə müxtəlif əməliyyat sistemləri üçün bağlantılar və GettingStarted bağlantısı var (https://arduino.cc/en/Guide/HomePage).

Teensyduino'yu yükləyin və quraşdırın (Arduino IDE üçün Teensy Dəstəyi). İlk İstifadə Təlimatlarına diqqətlə baxın.

Lövhə olaraq Teensy 3.2 seçin və BLINK nümunə proqramının yükləndiyini və işlədiyini yoxlayın.

Aşağıdakı kitabxanaları yükləyin:

Kitabxana zip fayllarını yükləyin və sonra kitabxanaları zip fayllarından yükləmək üçün Arduino IDE → Eskiz → Kitabxanaya Daxil et → ZIP kitabxana menyusundan istifadə edin.

Teensy32AnalogLogger.zip faylını Arduino eskizlər qovluğuna açın və Teensy32AnalogLogger.ino ilə Teensy 3.2 lövhəsini proqramlaşdırın (Versiya 0.01)

Teensy 3.2, Bluetooth modulu və SD kart modulunu yuxarıda göstərildiyi kimi bağlayın (pdf versiyası)

Addım 2: Proqramı işə salın - Test edin

Əvvəlcə https://www.sdcard.org/downloads/formatter/ istifadə edərək SD kartınızı formatlaşdırın

Daxil olmağa başlamaq üçün SD kart boş olmalıdır.

İlkin sınaq üçün Rabitə modulunu bağlamağa ehtiyac yoxdur, sadəcə Teensy 3.2 + SD modulunu (boş kart quraşdırılmış halda) USB seriyalı kabel vasitəsilə Arduino IDE -yə qoşun. Təmin edildiyi kimi Teensy32AnalogLogger.ino eskizində nəzarət və izləmə üçün USB bağlantısı istifadə olunur. Nəzarət və izləmə üçün ünsiyyət qurğusundan istifadə etmək üçün Aşağıdakı Real Məlumatların Girişinə baxın.

COM_SERIAL -ı Serial olaraq, Teensy USB bağlantısına çıxarmaq üçün Teensy32AnalogLogger.ino eskizinin üst hissəsini düzəldin.

#COM_SERIAL Serialını təyin edin

Sonra eskizi Teensy 3.2 -yə yükləyin

Arduino IDE Serial Monitorunu 115200 baudda açın (həm NL, həm də CR dəsti ilə). Bir neçə saniyə sonra Teensy 3.2 əmrlər menyusunu göstərəcək

Ver: 0.01 aşağıdakı əmrlərdən birini daxil edin:? - cari vəziyyət və metadatay - faylları işə salın - faylları siyahıya salın>

? cmd cari parametrlərin detallarını göstərir. (Bu parametrləri dəyişdirmək üçün Teensy32AnalogLogger.inonun yuxarı hissəsinə baxın) Cmds bir NL və ya CR və ya hər ikisi ilə sonlandırılmalıdır.

720: 00: 00.000 arasında 0: 00: 00.000

Nümunə pinləri: 16 17 Bayt sırası: Little-Endian ADC bitləri: 10 ADC nümunəsinin ortalaması: 4 Nümunə Dərəcəsi: 1000.00 Nümunə aralığı: 1000 uS Nümunələr hər blok üçün: 127 Blokun doldurulma vaxtı: 127000 uS Faylın doldurulması vaxtı: 9:01: 52.000 BÜTÜN faylları doldurma vaxtı: 894: 04: 48.000 Maksimum SD gecikməsi (faylın bağlanması/açılması daxildir): 0uS Maksimum faylın bağlanması/açılmasının gecikməsi: 0uS Bufer bloklarının sayı: 28 BÜTÜN blok tamponlarının doldurulma vaxtı: 3556000uS Maksimum tampon sayı storeSampleBuffers (): 0 buraxılmış Taymerlər cəmi: 0 İndiyə qədər buraxılmış bütün nümunələr: 0 Yazılan Toplam Bloklar: 0 Yazılan Toplam Nümunələr: 0 əhatə: 0: 00: 00.000 Cari Fayl:

Bu halda, cari giriş müddəti saniyədə 1000 dəfə D16/A2 və D17/A3 (aşağıda ADC Girişlərinin Seçiminə dair Məhdudiyyətlər üçün bax) tələb olunan 720 saatdan (30 gün) 0 -a bərabərdir. Maksimum işləmə müddəti 894 saata (37.25 gün) qədər ola bilər. Əsas döngə (), bütün mövcud tamponlar doldurulmadan və nümunələr itirməyə başlamazdan əvvəl 3.5 saniyəyə qədər (BÜTÜN blok tamponlarını doldurma vaxtı) tutula bilər. İşlədikcə buferlər saxlanılır və s.

Boş bir SD kart daxil edin, məlumatları saxlamaq üçün istifadə olunan 99 faylı başlatmaq üçün 'i' cmd istifadə edin. Onları burada əvvəlcədən başlatmaq bir fayldan digərinə keçərkən gecikməni azaldır və daha sürətli nümunə götürməyə imkan verir.

99 faylın işə salınması

Yeni fayl yaradılır: log00.bin Keçən vaxt: 368mS Yeni fayl yaradılır: log01.bin Keçən vaxt: 520mS… Yeni fayl yaradılır: log98.bin Keçən vaxt: 15660mS Yeni fayl yaradılır: log99.bin Keçən vaxt: 15812mS

Daha sonra qeyd işinə başlamaq üçün r cmd istifadə edə bilərsiniz. Qaçış istədiyiniz vaxt üçün və ya dayandırmaq üçün s cmd istifadə olunana qədər davam edəcək. Siz də istifadə edə bilərsiniz? Yenilənmiş vaxt və sayları əldə etmək üçün giriş edərkən cmd. Burada s cmd istifadə edərək erkən dayandırılan qısa bir qaçış var.

MƏLUMAT GİRİŞİ ….

Ver: 0.01 aşağıdakı əmrlərdən birini daxil edin:? - cari vəziyyət və metadata s - məlumat girişini dayandırın

MƏLUMAT QAYDALANIR … Yoxlanılsın? əmr

Keçmiş Çalışma Zamanı: 0: 00: 10.000 of 720: 00: 00.000 Keçmiş Çalışma Zamanı: 0: 00: 20.000 of 720: 00: 00.000…

Girişin dayandırılması və istifadə olunmamış faylların silinməsi.

… İstifadə edilməmiş fayl silinir: log98.bin İstifadə olunmamış fayl silinir: log99.bin

0: 01: 04.976 / 720: 00: 00.000

Nümunə pinləri: 16 17 Bayt sırası: Little-Endian ADC bitləri: 10 ADC nümunəsinin ortalaması: 4 Nümunə Dərəcəsi: 1000.00 Nümunə aralığı: 1000 uS Nümunələr hər blok üçün: 127 Blokun doldurulma vaxtı: 127000 uS Faylın doldurulması vaxtı: 9:01: 52.000 BÜTÜN faylları doldurma vaxtı: 894: 04: 48.000 Maksimum SD gecikməsi (faylın bağlanması/açılması daxildir): 204uS Maksimum fayl bağlanma/açılma gecikməsi: 0uS Bufer bloklarının sayı: 28 BÜTÜN blok tamponlarının doldurulma vaxtı: 3556000uS Maksimum tampon sayı mağaza zəngində saxlanıldıSampleBuffers (): 1 Buraxılmış Taymerlərin cəmi: 0 İndiyə qədər Ümumi buraxılmış Nümunələr: 0 Yazılan Toplam Bloklar: 511 Yazılan Toplam Nümunələr: 64832 əhatə: 0: 01: 04.832 Mövcud Fayl: log00.bin

ls:

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

DATA LOGGING BİTDİ!

Ver: 0.01 aşağıdakı əmrlərdən birini daxil edin:? - cari vəziyyət və metadata ** r - qeyd ADC məlumatları ** mövcud deyil. Məlumat artıq mövcuddur ** i - faylları işə salmaq ** mövcud deyil. Məlumatlar artıq var l - siyahı faylları

MƏLUMAT artıq qeyd edildi, yoxlayın?

LED ekran

D3 -ə qoşulmuş LED (GND bağlantısı təmin edən D2 ilə) hər hansı bir nümunə buraxıldıqda möhkəm yanacaq və səhv olarsa yanıb sönəcək. Eskiz səhvlərdən sonra davam etməyə çalışır, lakin uğurla davam edə bilməz.

Addım 3: Real Məlumatların Qeydiyyatı

Uzun müddət ərzində real məlumatları qeyd edərkən, ünsiyyət modulunu D0/D1 sancaqlarına bağlamaq və qeydləri uzaqdan idarə etmək və izləmək daha rahatdır. Burada Bluetooth Mate Silver modulu standart parametrləri ilə istifadə edildi, 115200 baud, heç bir hardware əl sıxma (RTC, CTS), pin kodu 1234.

Qeyd: Mate Silver moduluna güc tətbiq edildikdə konfiqurasiya rejiminə keçir, 60 saniyə ərzində sürətli qırmızı işıq yanıb -sönür. Bu müddət ərzində modulu konfiqurasiya etmək üçün serial bağlantısı ilə $$$ göndərə bilərsiniz, ancaq modulu bağlaya bilməzsiniz. Qırmızı led yavaş -yavaş yanıb -sönəndə, bluetooth modulu əlaqələri qəbul edəcək.

Teensy32AnalogLogger.inoda COM_SERIAL tərifini Serial1, hardware serial (D0/D1) bağlantısına dəyişdirin

#COM_SERIAL Serial1 təyin edin

Kompüterlə əlaqələndirildikdən sonra kompüterdə yeni bir COM portu yaradıldı və CoolTerm qeydləri birləşdirmək, idarə etmək və izləmək üçün istifadə edilə bilər. WiFi və ya BLE kimi ardıcıl əlaqəli digər ünsiyyət modullarından da istifadə edilə bilər, ətraflı məlumat üçün Android/pfodApp tərəfindən idarə olunan Arduino UNO/Mega Starter -ə baxın.

Bluetooth Terminal tətbiqi kimi bir bluetooth terminal tətbiqindən və ya TCP Telnet Terminal Pro kimi WiFi və TCP terminal tətbiqindən və ya Uart to BLE mdoule və bir BLE terminal tətbiqindən istifadə edərək Android mobil cihazınızdan qeydləri idarə edə və izləyə bilərsiniz. nRF UART V2

Addım 4: ADC Girişlərinin Seçimində Məhdudiyyətlər

ADC Girişlərinin Seçimində Məhdudiyyətlər
ADC Girişlərinin Seçimində Məhdudiyyətlər

Teensy 3.2-nin mikro prosessorunda ADC_0 və ADC_1 adlı iki ayrı ADC hardware modulu var, beləliklə eyni anda iki girişdən nümunə götürə bilər. Nəticəni çevirməzdən əvvəl birdən çox ADC nümunəsi götürən və onları ortalayan bir qurğu ortalamasına malikdir.

Girişlərin ADC_0, ADC_1 -ə qoşula biləcəyi məhdudiyyətlər var. Teensy32AnalogLogger.zip faylına daxil olan Teensy3_1_AnalogCard-p.webp

Xülasə: -Tək Uçlu Oxumalar üçün yəni GND ADC_0-a istinad edilən +Voltlar A0-dan A9-a, A10, A11, A12, A14-ə oxuya bilər ADC_1, A2, A3, A10, A13, A15-dən A20-ə qədər oxuya bilər. oxuya bilmirem 0 qaytaracaq (her zaman)

Bu layihə hər birinə ADC_0 və ya ADC_1 tərəfindən daxil ola bilən A2, A3 istifadə edir.

Addım 5:.bin Dosyalarını.csv Dosyalarına çevirmək

Teensy32AnalogLogger.ino nümunələri logxx.bin sənədlərində ikili olaraq saxlayır, yəni log00.bin log99.bin. Teensy32AnalogLogger.ino da qaçış haqqında meta məlumatların log.met faylını saxlayır.

. Bin fayllarını əlavə emal üçün.csv -ə çevirmək üçün SDtoCSV.jar (mənbə kodu SDtoCSV_src.zip) istifadə edə bilərsiniz. Faylları ən az 70Gig boş yerə malik SD kartdan kompüterinizin sabit diskinə kopyalayın və SDtoCSV.jar faylını eyni qovluğa kopyalayın. Bu qovluqda bir əmr pəncərəsi açın və işə salın

java -jar SDtoCSV.jar girişi

Kompüterinizdə Java qurulumu yoxdursa, www.java.com saytından quraşdırın

SDtoCSV, log.met faylını və sonra qovluqdakı mövcud logxx.bin fayllarının hər birini işləyəcək və hər bir.bin üçün.csv faylını çıxaracaq.. Csv faylında iki oxunuşdan sonra nümunə sıra nömrəsi var.

Burada 30303 dəfə/saniyə nümunəsi olan 2 adc oxu üçün nümunə konsol çıxışı, output.txt göstərilir. Buraxılmış nümunələrin necə bildirildiyini göstərir. (Son eskizdəki tamponların sayını iki dəfə artırmaq, bu buraxılmış nümunələri düzəltdi)

CSV dönüşümünə SD_Logging. Tərəqqi və səhv mesajları üçün SDtoCSV.log -u yoxlayın. Log00 işlənir 256000 blok işlənir log01 emal olunur 256000 blok… İşləmə jurnalı25 İşlənmiş 256000 blok İşlənmə jurnalı26 İşlənmiş 256000 blok İşlənmə jurnalı27 İşlənmiş 256000 blok Qaçırılan Nümunələr: 2715 İşləmə log28 İşlənmiş 256000 blok… İşləmə log29 256000 blok işləndi… İşləmə log47 İşlənmiş 256000 blok İşləmə log48 İşlənmiş 35935 blok-İşlənmiş Bitdi

SDtoCSV.log adlı daha dolğun bir günlük faylı SDtoCSV -nin hər bir işinə əlavə olunur. Meta məlumat çıxışı və hər hansı bir səhv mesajı daxildir. Burada say: 254, bu blokda saxlanan məlumatların sayıdır, yəni hər blok üçün 127 nümunə x 2 reklam oxunuşu. MissSamples,.csv çıxışındakı buraxılmış oxunan cütlərin sayıdır.

=== CSV dönüşümünə SD_Logging üçün Günlük Dosyası Sat Jul 13 13:19:51 AEST 2019 Konsol üzrə irəliləyiş mesajlarını görmək üçün java -jar SDtoCSV.jar Base Fayl Adı 'log' Metadata Versiyasını istifadə edin: 0 (Little Endian) sampleInterval uS: 33 adcBits: 10 adcAvgs: 4 pinCount: 2 Pin: 16, 17 nümunəPerBlock: 127 noBufferBlocks: 28 müddəti mS: 51649820 run run Time mS: 106216704 maxBuffersİstifadə: 32 Xəbərdarlıq: Mövcud tampon sayını aşır (28). Bəzi nümunələr itkin ola bilər. maxLatency uS: 221476 Xəbərdarlıq: Tampon blokları (117348uS) tərəfindən verilən vaxtdan artıqdır. Bəzi nümunələr yox olacaq. maxFileOpenTime uS: 20998 buraxılan Zamanlayıcılar: 0 buraxılmış Nümunələr Cəmi: 2715 cəmiBloklarYazı: 12323935 cəmiNümunələrYazı: 1565139665 İşlənmə log00.bin 256000 blok emal olunur log01.bin emal olunur 256000 blok… Log26.bin işlənir 256000 blok işlənir log27.bin işlənir !!! Blok: 57696 sayı: 254 buraxılmış Nümunələr: 2339 !!! Blok: 57697 sayı: 254 buraxılmış Nümunə: 376 İşlənmiş 256000 blok --- Ümumi buraxılmış nümunələr: 2715

Log28.bin işlənir 256000 blok işlənir

… İşləmə log47.bin 256000 blok emal olunur Log48.bin işlənir 35935 blok-İşlənmişdir

Log00.csv çıxış faylının nümunəsidir

SampleCounter (33uS başına), Pin 16, Pin 170, 248, 205 1, 273, 195 2, 228, 337 3, 360, 302 4, 355, 369 5, 220, 281…

Nümunə sayğacı fayldan fayla artır, belə ki, zaman möhürü kimi istifadə oluna bilər. Nümunələr çatışmırsa, nümunə sayğacı, növbəti sətri çıxarmazdan əvvəl buraxılmış sayla artırılır, beləliklə sayğac/vaxt möhürü qeydə alınmış nümunələr üçün dəqiq olaraq qalır.

Addım 6: Kod və Uzantılar haqqında şərhlər

Teensy32AnalogLogger, Bill Greiman'ın AnalogBinLogger nümunəsinin SdFat Arduino kitabxanasında çox dəyişdirilmiş bir versiyasıdır. Burada kitabxana Teensy 3.2 üzərində çalışmaq üçün yenidən yazılmışdır.

Teensy32AnalogLogger, nümunə aralığını təyin etmək üçün timer0 istifadə edir. Timer0 üçün kəsmə işçisi iki ADC çevrilməsini başlayır. İkinci ADC modulu üçün bir kəsmə işləyicisi hər ikisi bitənə qədər davamlı olaraq çağırılır, adətən ADC_0 -ın işə salındığı ilk ADC modulu ikincidən əvvəl başa çatacaq, buna görə kəsmə işləyicisi yalnız bir dəfə çağırılır. ADC_1 kəsmə işçisi nümunələri məlumat buferinə saxlayır.

Əsas döngədə (), storeSampleBuffer () hər hansı bir tam tamponu SD karta saxlayır və tamponları boş tampon növbəsinə qaytarır. Teensy 3.2 -də mövcud olan böyük miqdarda RAM, çox sayda buferin ayrılacağı deməkdir və buna görə də storeSampleBuffer () -ə tez -tez zəng etmək lazım deyil. Bu, əsas loopun () proses əmrləri və çıxışı göndərmə kimi digər işləri görməsinə vaxt buraxır.

Artırmalar

Bu layihə yüksək sürətli məlumat qeyd etmə funksiyasını yerinə yetirsə də, tam geyilə bilən üçün hələ də qablaşdırılmalı və bir batareya sistemi və EKQ sensorlar verilməlidir. Həm də nəzərə alınmalı olan bəzi uzantılar var.

  1. Dalğa formasının anlarını göstərmək üçün pfodApp -ın qurma funksiyasından istifadə edərək pfodApp vasitəsilə nümunə götürülmüş dalğa formasına real vaxt nəzarəti və monitorinqi əlavə edin.
  2. Daha uzun nümunə götürmə işləri üçün fayl nömrələrini 99 -a qədər uzadın
  3. 2 -dən çox giriş nümunəsi. Teensy 3.2 -də ikili ADC modulu olduğundan, nümunə nisbətini artırmaq üçün cüt olaraq əlavə girişlər əlavə etmək üçün kodu dəyişə bilərsiniz.
  4. Batareya şarjını izləmək üçün batareya monitorinqini əlavə edin. Teensy 3.2, bluetooth və SD modulu daxil olmaqla 24 saat ərzində təxminən 1100 mAh istifadə edir, lakin sensor modulu istisna olmaqla
  5. Girişin kəsilməməsi ilə batareyanın dəyişməsinə icazə vermək üçün ikili batareya təchizatı dövrəsi əlavə edin.

Tövsiyə: