Πίνακας περιεχομένων:

Καταγράψτε ΗΚΓ υψηλής ταχύτητας ή άλλα δεδομένα, συνεχώς για περισσότερο από ένα μήνα: 6 βήματα
Καταγράψτε ΗΚΓ υψηλής ταχύτητας ή άλλα δεδομένα, συνεχώς για περισσότερο από ένα μήνα: 6 βήματα

Βίντεο: Καταγράψτε ΗΚΓ υψηλής ταχύτητας ή άλλα δεδομένα, συνεχώς για περισσότερο από ένα μήνα: 6 βήματα

Βίντεο: Καταγράψτε ΗΚΓ υψηλής ταχύτητας ή άλλα δεδομένα, συνεχώς για περισσότερο από ένα μήνα: 6 βήματα
Βίντεο: 🟡 POCO X5 PRO - ΠΙΟ ΛΕΠΤΟΜΕΡΗΣ ΑΝΑΚΟΙΝΩΣΗ και ΔΟΚΙΜΕΣ 2024, Ιούλιος
Anonim
Καταγράψτε ΗΚΓ υψηλής ταχύτητας ή άλλα δεδομένα, συνεχώς για περισσότερο από ένα μήνα
Καταγράψτε ΗΚΓ υψηλής ταχύτητας ή άλλα δεδομένα, συνεχώς για περισσότερο από ένα μήνα

Αυτό το έργο αναπτύχθηκε για να υποστηρίξει μια πανεπιστημιακή ιατρική ερευνητική ομάδα, η οποία χρειαζόταν ένα φορετό που θα μπορούσε να καταγράψει 2 x σήματα ΗΚΓ σε 1000 δείγματα/δευτερόλεπτο το καθένα (2K δείγματα/δευτερόλεπτο συνολικά) συνεχώς για 30 ημέρες, προκειμένου να ανιχνεύσει αρρυθμίες. Το έργο που παρουσιάζεται εδώ περιλαμβάνει τηλεχειρισμό και παρακολούθηση της καταγραφής. Το τηλεχειριστήριο γίνεται μέσω μενού που παρουσιάζονται σε σειριακό τερματικό, είτε σε υπολογιστή είτε σε κινητό τηλέφωνο. Αυτό το έργο δεν καλύπτει τη μέτρηση ΗΚΓ ή τη συσκευασία ή την μπαταρία που απαιτούνται για το τελικό φορετό.

Αυτή η έκδοση υψηλής ταχύτητας/μεγάλης διάρκειας χρησιμοποιεί το Teensy 3.2, Adafruit Micro-SD breakout module, μια ποιοτική κάρτα SD 16G SDHC κλάσης 10 για την καταγραφή των δεδομένων και μια μονάδα επικοινωνιών Bluetooth για έλεγχο και παρακολούθηση. Μια λιγότερο ανεπτυγμένη και πιο αργή έκδοση UNO/Mega2560 αυτού του έργου είναι επίσης διαθέσιμη. Ενώ αυτό το έργο χρησιμοποιεί μια ενότητα επικοινωνιών Bluetooth για τον έλεγχο και την παρακολούθηση της καταγραφής, μπορείτε επίσης να χρησιμοποιήσετε μονάδες WiFi ή BLE.

Αυτή η έκδοση, βασισμένη στο Teensy 3.2, είναι ικανή για πολύ υψηλότερα ποσοστά δειγματοληψίας από την έκδοση UNO/Mega2560. Χρησιμοποιώντας αυτόν τον κωδικό, το Teensy 3.2 μπορεί να δοκιμάσει και να καταγράψει δύο δείγματα ADC στα> 30Khz με μέσο όρο υλικού πάνω από 4 δείγματα και έτσι ικανοποιεί εύκολα τις παραπάνω απαιτήσεις 1000 δειγμάτων/δευτ. Ο κωδικός υποστηρίζει την αποθήκευση 100 αρχείων.bin 128K το καθένα. Στα 30Khz που καλύπτει 29 ώρες 30 λεπτά. Με 1000 δείγματα/δευτερόλεπτο καλύπτει 37 ημέρες. Ο κώδικας μπορεί εύκολα να επεκταθεί για να χειριστεί περισσότερα από 100 αρχεία, παρατείνοντας έτσι τη διάρκεια της εκτέλεσης. Στο τέλος της εκτέλεσης θα έχετε> 10Gig δεδομένων,.bin, αρχεία και.met αρχείο μεταδεδομένων που περιγράφουν την εκτέλεση και τα αποτελέσματα. Το παρεχόμενο SDtoCSV.jar (πηγαίος κωδικός SDtoCSV_src.zip) μπορεί να χρησιμοποιηθεί για τη μετατροπή των αρχείων.bin σε αρχεία.csv του υπολογιστή σας για περαιτέρω επεξεργασία. Τα δεδομένα που προκύπτουν είναι> 60Gig. Η έκδοση UNO/Mega2560 έχει μετατροπή.bin σε.csv που περιλαμβάνεται στο σκίτσο του Arduino, αλλά δεδομένου του όγκου δεδομένων που καταγράφονται από την έκδοση Teensy, αυτός δεν είναι ένας αποτελεσματικός τρόπος για να γίνει η μετατροπή.

Προμήθειες

Teensy 3.2 από PJRC

Adafruit MicroSD card breakout board+ ή παρόμοια.

Κάρτα MicroSD 16G SDHC κλάσης 10 καλής ποιότητας π.χ. SanDisk.

Τροφοδοσία USB 5V

Ένα led με ανθεκτικό 470R σε σειρά.

2 αντιστάσεις 100R (παρέχει προστασία από ζημιές λόγω σφαλμάτων καλωδίωσης Tx/Rx)

Bluetooth Mate Silver one μία από τις ενότητες που περιγράφονται στο Arduino UNO/Mega Starter, ελέγχεται από Android/pfodApp

Βήμα 1: Κατασκευή

Κατασκευή
Κατασκευή

Κατεβάστε και εγκαταστήστε το Arduino IDE V1.8.9+ από τη διεύθυνση https://arduino.cc/en/Main/Software. Αυτή η ιστοσελίδα έχει συνδέσμους για διάφορα λειτουργικά συστήματα και έναν σύνδεσμο προς το GettingStarted (https://arduino.cc/en/Guide/HomePage).

Κατεβάστε και εγκαταστήστε το Teensyduino (Teensy Support for the Arduino IDE). ΣΗΜΕΙΩΣΤΕ προσεκτικά τις οδηγίες πρώτης χρήσης.

Επιλέξτε Teensy 3.2 ως πίνακα και ελέγξτε ότι το παράδειγμα του προγράμματος BLINK φορτώνεται και εκτελείται.

Κατεβάστε και εγκαταστήστε τις ακόλουθες βιβλιοθήκες:- millisDelay και SdFat (Ένα τοπικό στιγμιότυπο της βιβλιοθήκης SdFat που χρησιμοποιείται για αυτές τις δοκιμές είναι εδώ.) Και το pfodParser.zip (για την κλάση pfodBufferedStream και pfodNonBlockingInput)

Κατεβάστε τα αρχεία zip της βιβλιοθήκης και στη συνέχεια χρησιμοποιήστε το Arduino IDE ket Sketch → Include Library → Add. ZIP Library menu για να εγκαταστήσετε τις βιβλιοθήκες από τα αρχεία zip.

Αποσυμπιέστε το αρχείο Teensy32AnalogLogger.zip στον κατάλογο σκίτσων του Arduino και προγραμματίστε τον πίνακα Teensy 3.2 με το Teensy32AnalogLogger.ino (Έκδοση 0.01)

Συνδέστε το Teensy 3.2, τη μονάδα Bluetooth και τη μονάδα κάρτας SD όπως φαίνεται παραπάνω (έκδοση pdf)

Βήμα 2: Εκτέλεση του προγράμματος - Δοκιμή

Πρώτα μορφοποιήστε την κάρτα SD σας χρησιμοποιώντας το

Η κάρτα SD πρέπει να είναι κενή για να ξεκινήσει η καταγραφή.

Για αρχικές δοκιμές δεν χρειάζεται να συνδέσετε τη μονάδα Επικοινωνιών, απλώς συνδέστε τη μονάδα Teensy 3.2 + SD (με κενή κάρτα εγκατεστημένη) στο Arduino IDE μέσω του σειριακού καλωδίου USB. Όπως προβλέπεται, το σκίτσο Teensy32AnalogLogger.ino χρησιμοποιεί τη σύνδεση USB για έλεγχο και παρακολούθηση. Ανατρέξτε παρακάτω στο βήμα καταγραφής πραγματικών δεδομένων για τη χρήση μιας συσκευής επικοινωνίας για έλεγχο και παρακολούθηση.

Επεξεργαστείτε το επάνω μέρος του σκίτσου Teensy32AnalogLogger.ino για να ορίσετε το COM_SERIAL σε Serial, για έξοδο στη σύνδεση USB Teensy.

#define COM_SERIAL Serial

Στη συνέχεια, ανεβάστε το σκίτσο στο Teensy 3.2

Ανοίξτε το Arduino IDE Serial Monitor σε 115200 baud (με σετ NL & CR). Μετά από μερικά δευτερόλεπτα, το Teensy 3.2 θα εμφανίσει ένα μενού εντολών

Ver: 0.01 πληκτρολογήστε μία από τις ακόλουθες εντολές:? - τρέχουσα κατάσταση και μεταδεδομένα - προετοιμασία αρχείωνl - λίστα αρχείων>

Ο ? cmd εμφανίζει λεπτομέρειες για τις τρέχουσες ρυθμίσεις. (Δείτε την κορυφή του Teensy32AnalogLogger.ino για να αλλάξετε αυτές τις ρυθμίσεις) Τα Cmds πρέπει να τερματιστούν με NL ή CR ή και τα δύο.

0: 00: 00.000 από 720: 00: 00.000

Δείγμα καρφίτσες: 16 17 Byte σειρά: Little-Endian ADC bits: 10 ADC μέσο όρο δείγματος πάνω: 4 Ρυθμός δειγμάτων: 1000.00 Δείγμα δειγμάτων: 1000uS Δείγματα ανά μπλοκ: 127 Timeρα πλήρωσης μπλοκ: 127000uS Timeρα συμπλήρωσης αρχείου: 9:01: 52.000 Χρόνος πλήρωσης ΟΛΩΝ των αρχείων: 894: 04: 48.000 Μέγιστος χρόνος καθυστέρησης SD (περιλαμβάνει κλείσιμο/άνοιγμα αρχείου): 0uS Μέγιστο κλείσιμο/άνοιγμα καθυστέρησης αρχείου: 0uS Αριθμός μπλοκ buffer: 28 Χρόνος πλήρωσης ΟΛΩΝ των buffer μπλοκ: 3556000uS Μέγιστος αριθμός buffer αποθηκευμένο στην κλήση στο storeSampleBuffers (): 0 Σύνολο χαμένων χρονομέτρων: 0 Σύνολο μέχρι στιγμής χαμένων δειγμάτων: 0 Σύνολο εγγραφών μπλοκ: 0 Σύνολο γραμμένων δειγμάτων: 0 κάλυψη: 0: 00: 00.000 Τρέχον αρχείο:

Σε αυτήν την περίπτωση, ο τρέχων χρόνος εκτέλεσης καταγραφής είναι 0 των αιτούμενων 720 ωρών (30 ημέρες), δειγματοληψία D16/A2 και D17/A3 (βλ. Παρακάτω για Περιορισμούς στην επιλογή των εισόδων ADC παρακάτω) 1000 φορές το δευτερόλεπτο. Ο μέγιστος χρόνος εκτέλεσης μπορεί να είναι έως 894 ώρες (37,25 ημέρες). Ο κύριος βρόχος () μπορεί να καταληφθεί έως και 3,5 δευτερόλεπτα (Χρόνος για να γεμίσετε ΟΛΑ τα buffer μπλοκ) προτού γεμίσουν όλα τα διαθέσιμα buffer και αρχίσουν να χάνονται δείγματα. Τα buffer που αποθηκεύονται κλπ ενημερώνονται καθώς προχωρά η εκτέλεση.

Τοποθετήστε μια κενή κάρτα SD, χρησιμοποιήστε το 'i' cmd για να αρχικοποιήσετε τα 99 αρχεία που χρησιμοποιούνται για την αποθήκευση των δεδομένων. Η προ-προετοιμασία τους εδώ μειώνει τη χρονική καθυστέρηση κατά την εναλλαγή από το ένα αρχείο στο άλλο και επιτρέπει ταχύτερη δειγματοληψία.

Αρχικοποίηση 99 αρχείων

Δημιουργία νέου αρχείου: log00.bin Χρόνος που παρέλειψε: 368mS Δημιουργία νέου αρχείου: log01.bin Χρόνος που πέρασε: 520mS. Το Το Δημιουργία νέου αρχείου: log98.bin Χρόνος που πέρασε: 15660mS Δημιουργία νέου αρχείου: log99.bin Χρόνος που πέρασε: 15812mS

Στη συνέχεια, μπορείτε να χρησιμοποιήσετε το r cmd για να ξεκινήσετε μια εκτέλεση καταγραφής. Η εκτέλεση θα γίνει για τον απαιτούμενο χρόνο ή μέχρι να χρησιμοποιηθεί το s cmd για να το σταματήσει. Μπορείτε επίσης να χρησιμοποιήσετε το; cmd κατά την εγγραφή για να λαμβάνετε ενημερωμένους χρόνους και μετρήσεις. Εδώ είναι μια σύντομη διαδρομή που σταμάτησε νωρίς χρησιμοποιώντας το s cmd.

ΑΓΑΠΗ ΔΕΔΟΜΕΝΑ…..

Ver: 0.01 πληκτρολογήστε μία από τις ακόλουθες εντολές:? - τρέχουσα κατάσταση και μεταδεδομένα s - διακοπή καταγραφής δεδομένων

LOGGING DATA… Έλεγχος με; εντολή

Χρόνος Εκτέλεσης: 0: 00: 10.000 από 720: 00: 00.000 Χρόνος Εκτέλεσης: 0: 00: 20.000 από 720: 00: 00.000. Το Το

Διακοπή καταγραφής και αφαίρεση αχρησιμοποίητων αρχείων.

Το Το Το Αφαίρεση αχρησιμοποίητου αρχείου: log98.bin Αφαίρεση αχρησιμοποίητου αρχείου: log99.bin

0: 01: 04.976 από 720: 00: 00.000

Δείγμα καρφίτσες: 16 17 Byte order: Little-Endian ADC bit: 10 ADC μέσο όρο δείγματος άνω: 4 Ρυθμός δειγμάτων: 1000.00 Δείγμα δειγμάτων: 1000uS Δείγματα ανά μπλοκ: 127 Χρόνος πλήρωσης μπλοκ: 127000uS Χρόνος πλήρωσης αρχείου: 9:01: 52.000 Χρόνος πλήρωσης ΟΛΩΝ των αρχείων: 894: 04: 48.000 Μέγιστος χρόνος καθυστέρησης SD (περιλαμβάνει κλείσιμο/άνοιγμα αρχείου): 204uS Μέγιστο κλείσιμο/άνοιγμα καθυστέρησης αρχείου: 0uS Αριθμός μπλοκ buffer: 28 Χρόνος πλήρωσης ΟΛΩΝ των buffer μπλοκ: 3556000uS Μέγιστος αριθμός buffer αποθηκευμένα στην κλήση στο storeSampleBuffers (): 1 Σύνολο χαμένων χρονομετρητών: 0 Σύνολο μέχρι στιγμής χαμένων δειγμάτων: 0 Σύνολο εγγραφών μπλοκ: 511 Συνολικά δείγματα γραμμένα: 64832 κάλυψη: 0: 01: 04.832 Τρέχον αρχείο: log00.bin

ls:

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

ΟΛΟΚΛΗΡΩΘΗΚΕ Η ΛΟΓΟΓΡΑΦΗ ΔΕΔΟΜΕΝΩΝ!

Ver: 0.01 πληκτρολογήστε μία από τις ακόλουθες εντολές:? - τρέχουσα κατάσταση και μεταδεδομένα ** r - εγγραφή δεδομένων ADC ** μη διαθέσιμα. Υπάρχουν ήδη δεδομένα ** i - προετοιμασία αρχείων ** μη διαθέσιμα. Υπάρχουν ήδη δεδομένα l - αρχεία αρχείων

ΤΑ ΔΕΔΟΜΕΝΑ ΕΧΟΥΝ ΗΓΕΙ ΑΚΟΜΑ, ελέγξτε με;

Οθόνη LED

Η λυχνία LED που είναι συνδεδεμένη στο D3 (με το D2 παρέχει τη σύνδεση GND) θα ανάψει σταθερά εάν παραλείψει οποιοδήποτε δείγμα και θα αναβοσβήνει εάν υπάρχει σφάλμα. Το σκίτσο προσπαθεί να συνεχίσει μετά από σφάλματα, αλλά μπορεί να μην το κάνει με επιτυχία.

Βήμα 3: Καταγραφή πραγματικών δεδομένων

Κατά την καταγραφή πραγματικών δεδομένων για μεγάλες χρονικές περιόδους, είναι πιο βολικό να συνδέσετε μια μονάδα επικοινωνίας στις ακίδες D0/D1 και να ελέγχετε και να παρακολουθείτε την καταγραφή από απόσταση. Εδώ χρησιμοποιήθηκε μια μονάδα Bluetooth Mate Silver με τις προεπιλεγμένες ρυθμίσεις, 115200 baud, χωρίς χειραψία υλικού (RTC, CTS), κωδικός PIN 1234.

Σημείωση: Όταν εφαρμόζεται ισχύς στη μονάδα Mate Silver, μεταβαίνει σε λειτουργία διαμόρφωσης, αναβοσβήνει με γρήγορο κόκκινο led, για 60 δευτερόλεπτα. Κατά τη διάρκεια αυτής της περιόδου, μπορείτε να στείλετε $ $ $ μέσω της σειριακής σύνδεσης στη μονάδα για να τη διαμορφώσετε, αλλά δεν μπορείτε να τη συνδέσετε. Μόλις το κόκκινο led αναβοσβήνει αργά, η μονάδα bluetooth θα δέχεται συνδέσεις.

Αλλάξτε τον ορισμό COM_SERIAL στο Teensy32AnalogLogger.ino στη σύνδεση σειριακού υλικού (D0/D1), Serial1

#define COM_SERIAL Serial1

Μετά τη σύζευξη με τον υπολογιστή, δημιουργήθηκε μια νέα θύρα COM στον υπολογιστή και το CoolTerm μπορεί να χρησιμοποιηθεί για τη σύνδεση και τον έλεγχο και την παρακολούθηση της καταγραφής. Μπορούν επίσης να χρησιμοποιηθούν άλλες σειριακά συνδεδεμένες μονάδες επικοινωνίας, όπως WiFi ή BLE, ανατρέξτε στο Arduino UNO/Mega Starter, που ελέγχεται από Android/pfodApp για λεπτομέρειες.

Μπορείτε επίσης να ελέγχετε και να παρακολουθείτε την καταγραφή από το κινητό σας Android χρησιμοποιώντας μια εφαρμογή τερματικού bluetooth, όπως η εφαρμογή Bluetooth Terminal, ή χρησιμοποιώντας μια εφαρμογή τερματικού WiFi και TCP, όπως το TCP Telnet Terminal Pro, ή ένα mdoule Uart to BLE και μια εφαρμογή τερματικού BLE, όπως nRF UART V2

Βήμα 4: Περιορισμοί στην επιλογή εισόδων ADC

Περιορισμοί στην επιλογή των εισόδων ADC
Περιορισμοί στην επιλογή των εισόδων ADC

Το Teensy 3.2 διαθέτει δύο ξεχωριστές μονάδες υλικού ADC, ADC_0 και ADC_1, στον μικροεπεξεργαστή του, ώστε να μπορεί να δοκιμάσει δύο εισόδους ταυτόχρονα. Διαθέτει επίσης ενσωματωμένο μέσο όρο υλικού που παίρνει πολλά δείγματα ADC και τα υπολογίζει κατά μέσο όρο πριν γυρίσει το αποτέλεσμα.

Υπάρχουν περιορισμοί στους οποίους οι είσοδοι μπορούν να συνδεθούν στο ADC_0, ADC_1. Η εικόνα Teensy3_1_AnalogCard-p.webp

Συνοπτικά: -Για ενιαίες αναγνώσεις δηλαδή +Volts που αναφέρονται στο GND ADC_0 μπορεί να διαβάσει A0 έως A9, A10, A11, A12, A14 ADC_1 μπορεί να διαβάσει A2, A3, A10, A13, A15 έως A20 Εάν επιλέξετε μια καρφίτσα που το ADC δεν μπορώ να διαβάσω θα επιστρέψει 0 (πάντα)

Αυτό το έργο χρησιμοποιεί A2, A3 στα οποία μπορεί να έχει πρόσβαση το καθένα μέσω ADC_0 ή ADC_1.

Βήμα 5: Μετατροπή των αρχείων.bin σε αρχεία.csv

Το Teensy32AnalogLogger.ino αποθηκεύει τα δείγματα ως δυαδικά σε αρχεία logxx.bin, δηλαδή log00.bin στο log99.bin. Το Teensy32AnalogLogger.ino αποθηκεύει επίσης ένα αρχείο log.met μεταδεδομένων σχετικά με την εκτέλεση.

Μπορείτε να χρησιμοποιήσετε το SDtoCSV.jar (πηγαίο κώδικα SDtoCSV_src.zip) για να μετατρέψετε τα αρχεία.bin σε.csv για περαιτέρω επεξεργασία. Αντιγράψτε τα αρχεία από την κάρτα SD στον σκληρό δίσκο του υπολογιστή σας με τουλάχιστον 70Gig ελεύθερου χώρου και αντιγράψτε το SDtoCSV.jar στον ίδιο κατάλογο. Ανοίξτε ένα παράθυρο εντολών σε αυτόν τον κατάλογο και εκτελέστε

αρχείο καταγραφής java -jar SDtoCSV.jar

Εάν ο υπολογιστής σας δεν έχει εγκατάσταση Java, εγκαταστήστε τον από τη διεύθυνση www.java.com

Το SDtoCSV θα επεξεργαστεί το αρχείο log.met και στη συνέχεια καθένα από τα διαθέσιμα αρχεία logxx.bin στον κατάλογο και θα εξάγει ένα αρχείο.csv για κάθε.bin. Το αρχείο.csv έχει τον αριθμό ακολουθίας δείγματος που ακολουθείται από τις δύο ενδείξεις.

Ένα δείγμα εξόδου κονσόλας για ένδειξη 2 adc δειγματοληψία 30303 φορές/δευτερόλεπτο εμφανίζεται εδώ, output.txt. Εξηγεί πώς αναφέρονται δείγματα που χάθηκαν. (Διπλασιάζοντας τον αριθμό των buffer στο τελικό σκίτσο αυτό διορθώθηκε αυτά τα χαμένα δείγματα)

SD_Σύνδεση σε μετατροπή CSV. Ελέγξτε το SDtoCSV.log για μηνύματα προόδου και σφαλμάτων. Επεξεργασία log00 Επεξεργασία 256000 μπλοκ Επεξεργασία log01 Επεξεργασία 256000 μπλοκ. Το Το Επεξεργασία log25 Επεξεργασμένο 256000 μπλοκ Επεξεργασία log26 Επεξεργασία 256000 μπλοκ Επεξεργασία ημερολογίου27 Επεξεργασμένο 256000 μπλοκ Χαμένα δείγματα: 2715 Επεξεργασία log28 Επεξεργασμένα 256000 μπλοκ. Το Το Επεξεργασία log29 Επεξεργασία 256000 μπλοκ. Το Το Επεξεργασία log47 Επεξεργασία 256000 μπλοκ Επεξεργασία log48 Επεξεργασία 35935 μπλοκ --- Ολοκληρωμένη επεξεργασία

Ένα πληρέστερο αρχείο καταγραφής, το SDtoCSV.log, προσαρτάται σε κάθε εκτέλεση του SDtoCSV. Περιλαμβάνει την έξοδο μεταδεδομένων και τυχόν μηνύματα σφάλματος. Εδώ η καταμέτρηση: 254 είναι ο αριθμός των δεδομένων που είναι αποθηκευμένα σε αυτό το μπλοκ, δηλαδή 127 δείγματα x 2 αναγνώσεις adc ανά μπλοκ. Το missSamples είναι ο αριθμός των ζευγών ανάγνωσης που χάθηκαν, δηλαδή γραμμές στην έξοδο.csv.

=== Αρχείο καταγραφής για μετατροπή SD_Σύνδεση σε μετατροπή CSV Σαβ 13 Ιουλίου 13:19:51 AEST 2019 Για να δείτε μηνύματα προόδου στο Console χρησιμοποιήστε java -jar SDtoCSV.jar Όνομα αρχείου βάσης 'log' Έκδοση μεταδεδομένων: 0 (Little Endian) sampleInterval uS: 33 adcBits: 10 adcAvgs: 4 pinCount: 2 Pins: 16, 17 δείγματαPerBlock: 127 noBufferBlocks: 28 διάρκεια mS: 51649820 ζητήθηκε runTime mS: 106216704 maxBuffersΧρησιμοποιήθηκαν: 32 Προειδοποίηση: Υπερβαίνει τον αριθμό των διαθέσιμων buffer (28). Ορισμένα δείγματα μπορεί να λείπουν. maxLatency uS: 221476 Προειδοποίηση: Υπερβαίνει το χρόνο που παρέχεται από τα μπλοκ buffer (117348uS). Ορισμένα δείγματα θα λείπουν. maxFileOpenTime uS: 20998 missTimers: 0 missSamplesTotal: 2715 totalBlocksWritten: 12323935 totalSamplesWritten: 1565139665 Επεξεργασία log00.bin Επεξεργασία 256000 μπλοκ Επεξεργασία log01.bin Επεξεργασία 256000 μπλοκ. Το Το Επεξεργασία log26.bin Επεξεργασία 256000 μπλοκ Επεξεργασία log27.bin !!! Μπλοκ: 57696 καταμέτρηση: 254 χαμέναΔείγματα: 2339 !!! Μπλοκ: 57697 πλήθος: 254 χαμένα Δείγματα: 376 Επεξεργασμένα 256000 μπλοκ --- Συνολικά χαμένα δείγματα: 2715

Επεξεργασία log28.bin Επεξεργασία 256000 μπλοκ

Το Το Το Επεξεργασία log47.bin Επεξεργασία 256000 μπλοκ Επεξεργασία log 48.bin Επεξεργασία 35935 μπλοκ --- Ολοκληρωμένη επεξεργασία

Ένα δείγμα αρχείου εξόδου log00.csv είναι

SampleCounter (ανά 33uS), Pin 16, Pin 170, 248, 205 1, 273, 195 2, 228, 337 3, 360, 302 4, 355, 369 5, 220, 281. Το Το

Ο μετρητής δείγματος αυξάνεται από αρχείο σε αρχείο, ώστε να μπορεί να χρησιμοποιηθεί ως χρονική σφραγίδα. Εάν λείπουν δείγματα, τότε ο μετρητής δειγμάτων αυξάνεται με τον αριθμό που χάθηκε πριν από την έξοδο της επόμενης γραμμής, έτσι ώστε ο μετρητής/η χρονική σφραγίδα να παραμείνει ακριβής για τα καταγεγραμμένα δείγματα.

Βήμα 6: Σχόλια για τον κώδικα και τις επεκτάσεις

Το Teensy32AnalogLogger είναι μια πολύ τροποποιημένη έκδοση του παραδείγματος του Bill Greiman's AnalogBinLogger στη βιβλιοθήκη του SdFat Arduino. Εδώ η βιβλιοθήκη έχει ξαναγραφεί για να λειτουργεί στο Teensy 3.2.

Το Teensy32AnalogLogger χρησιμοποιεί το timer0 για να ρυθμίσει το διάστημα δείγματος. Ο χειριστής διακοπών για το timer0 ξεκινά τις δύο μετατροπές ADC. Ένας χειριστής διακοπών για τη δεύτερη μονάδα ADC καλείται συνεχώς μέχρι να τελειώσουν και οι δύο, συνήθως η πρώτη μονάδα ADC που ξεκίνησε το ADC_0 τελειώνει πριν από τη δεύτερη, οπότε ο χειριστής διακοπών καλείται μόνο μία φορά. Ο χειριστής διακοπών ADC_1 αποθηκεύει τα δείγματα σε προσωρινή μνήμη δεδομένων.

Στον κύριο βρόχο (), το storeSampleBuffer () αποθηκεύει τυχόν πλήρη buffer στην κάρτα SD και ανακυκλώνει τα buffer στην κενή ουρά buffer. Η μεγάλη ποσότητα RAM που είναι διαθέσιμη στο Teensy 3.2 σημαίνει ότι μπορεί να διατεθεί μεγάλος αριθμός buffer και έτσι το storeSampleBuffer () δεν χρειάζεται να καλείται συχνά. Αυτό αφήνει χρόνο στον κύριο βρόχο () να κάνει άλλες εργασίες, όπως εντολές διεργασίας και αποστολή εξόδου.

Επεκτάσεις

Ενώ αυτό το έργο είναι λειτουργικό ως καταγραφέας δεδομένων υψηλής ταχύτητας, για πλήρη φορετό πρέπει να συσκευάζεται και να παρέχεται σύστημα μπαταρίας και αισθητήρες ΗΚΓ. Εκτός από το ότι υπάρχουν κάποιες επεκτάσεις που πρέπει να ληφθούν υπόψη.

  1. Προσθέστε έλεγχο σε πραγματικό χρόνο και παρακολούθηση της δειγματοληψίας κυματομορφής μέσω pfodApp χρησιμοποιώντας τη συνάρτηση σχεδίασης του pfodApp για την εμφάνιση στιγμιότυπων της κυματομορφής
  2. Επεκτείνετε τους αριθμούς αρχείων πέραν των 99 για μεγαλύτερες εκτελέσεις δειγματοληψίας
  3. Δείγμα περισσότερων από 2 εισόδων. Δεδομένου ότι το Teensy 3.2 διαθέτει δύο μονάδες ADC, μπορείτε να τροποποιήσετε τον κώδικα για να προσθέσετε επιπλέον εισόδους σε ζευγάρια για να μεγιστοποιήσετε το ρυθμό δείγματος.
  4. Προσθέστε την παρακολούθηση της μπαταρίας για να παρακολουθείτε τη φόρτιση της μπαταρίας. Το Teensy 3.2 χρησιμοποιεί περίπου 1100mAhrs σε 24 ώρες, συμπεριλαμβανομένης της μονάδας bluetooth και SD, αλλά εξαιρείται η μονάδα αισθητήρα
  5. Προσθέστε ένα κύκλωμα τροφοδοσίας διπλής μπαταρίας για να επιτρέψετε αλλαγές μπαταρίας χωρίς διακοπή της καταγραφής.

Συνιστάται: