Έλεγχος φώτων με τα μάτια σας: 9 βήματα (με εικόνες)
Έλεγχος φώτων με τα μάτια σας: 9 βήματα (με εικόνες)
Anonim
Έλεγχος φώτων με τα μάτια σας
Έλεγχος φώτων με τα μάτια σας
Έλεγχος φώτων με τα μάτια σας
Έλεγχος φώτων με τα μάτια σας

Αυτό το εξάμηνο στο κολέγιο, πήρα μια τάξη που ονομάζεται Instrumentation in Biomedicine στην οποία έμαθα τα βασικά της επεξεργασίας σήματος για ιατρικές εφαρμογές. Για το τελικό έργο της τάξης, η ομάδα μου δούλεψε πάνω στην τεχνολογία EOG (electrooculography). Ουσιαστικά, τα ηλεκτρόδια που συνδέονται με τους κροτάφους κάποιου στέλνουν μια διαφορά τάσης (με βάση το δίπολο του κερατοειδούς-αμφιβληστροειδούς) σε ένα κύκλωμα σχεδιασμένο να φιλτράρει και να ενισχύει το σήμα. Το σήμα τροφοδοτείται σε ένα ADC (μετατροπέα αναλογικού σε ψηφιακό-στην περίπτωσή μου, το ADC ενός Arduino Uno) και χρησιμοποιείται για την αλλαγή των χρωμάτων ενός κοσμήματος νεοπίξελ.

Αυτό το σεμινάριο είναι ένας τρόπος για μένα να καταγράψω ό, τι έμαθα και επίσης να μοιραστώ με τον τακτικό αναγνώστη πώς τα σήματα απομονώνονται από το ανθρώπινο σώμα (γι 'αυτό προειδοποιήστε: είναι γεμάτο επιπλέον λεπτομέρειες!). Αυτό το κύκλωμα μπορεί πραγματικά να χρησιμοποιηθεί, με μερικές μικρές αλλαγές, στις ηλεκτρικές παλμούς των κινητήρων ως κυματομορφή ΗΚΓ και πολλά άλλα! Ενώ σίγουρα δεν είναι τόσο εξελιγμένο και τελειοποιημένο όσο τα μηχανήματα που θα βρείτε σε ένα νοσοκομείο, αυτός ο λαμπτήρας με ελεγχόμενη θέση θέσης είναι εξαιρετικός για μια πρώτη κατανόηση και μια πρώτη ματιά.

Σημείωση: Δεν είμαι ειδικός στην επεξεργασία σήματος, οπότε εάν υπάρχουν σφάλματα ή εάν έχετε προτάσεις για βελτιώσεις, ενημερώστε με! Έχω ακόμα πολλά να μάθω, οπότε τα σχόλια εκτιμώνται. Επίσης, πολλά από τα έγγραφα που αναφέρω σε συνδέσμους σε όλο αυτό το σεμινάριο απαιτούν ακαδημαϊκή πρόσβαση την οποία έχω με την ευγένεια του πανεπιστημίου μου. συγνώμη εκ των προτέρων για όσους δεν θα έχουν πρόσβαση.

Βήμα 1: Υλικά

  • πρωτόπλοιο
  • αντιστάσεις (100, 1k, 10k, 33k, 1M + 0.5M)
  • πυκνωτής (0.1uF)
  • ενισχυτής οργάνων (INA111 στην περίπτωσή μου, αλλά υπάρχει ένα ζευγάρι που πρέπει να λειτουργήσει σχετικά καλά)
  • op ενισχυτής (οποιοδήποτε - έτυχε να έχω LM324N)
  • neopixel (οποιαδήποτε δουλειά, αλλά χρησιμοποίησα ένα κόσμημα)
  • Μπαταρίες 9V x2
  • Κεφαλίδες μπαταρίας 9V x2
  • στερεά ηλεκτρόδια γέλης (η επιλογή ηλεκτροδίων συζητείται στο βήμα 5)
  • ποτενσιόμετρο
  • μονωμένο σύρμα
  • απογυμνωτές σύρματος
  • συγκολλητικό σίδερο + συγκολλητικό
  • κλιπ αλιγάτορα (με συνδεδεμένα καλώδια - κολλήστε μερικά αν χρειαστεί)
  • θερμή κόλλα (για σταθεροποίηση καλωδίων που θα κάμπτονταν μπρος -πίσω)
  • Arduino (σχεδόν σανίδα σε οποιαδήποτε εργασία, αλλά χρησιμοποίησα ένα Arduino Uno)

ΣΥΝΙΣΤΗΣΗ: παλμογράφος, πολύμετρο και γεννήτρια λειτουργιών. Εξετάστε τις εξόδους σας αντί να βασίζεστε απλώς στις τιμές αντίστασης μου!

Βήμα 2: Φυσιολογικό υπόβαθρο και η ανάγκη για ένα κύκλωμα

Φυσιολογικό υπόβαθρο και η ανάγκη για ένα κύκλωμα
Φυσιολογικό υπόβαθρο και η ανάγκη για ένα κύκλωμα

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

Το EOG (ηλεκτρο-οφθαλμογραφία) λειτουργεί στο δίπολο του κερατοειδούς-αμφιβληστροειδούς. Ο κερατοειδής χιτώνας (μπροστά στο μάτι) είναι ελαφρώς θετικά φορτισμένος και ο αμφιβληστροειδής (πίσω από το μάτι) ελαφρώς αρνητικά φορτισμένος. Όταν εφαρμόζετε ηλεκτρόδια στους κροτάφους και γειώνετε το κύκλωμά σας στο μέτωπό σας (βοηθά στη σταθεροποίηση των μετρήσεων σας και απαλλαγείτε από παρεμβολές 60Hz), μπορείτε να μετρήσετε περίπου differences 1-10mV διαφορές τάσης για οριζόντιες κινήσεις των ματιών (δείτε την παραπάνω εικόνα). Για κάθετες κινήσεις των ματιών, τοποθετήστε αντίθετα ηλεκτρόδια πάνω και κάτω από το μάτι σας. Δείτε αυτό το άρθρο για μια καλή ανάγνωση για το πώς αλληλεπιδρά το σώμα με τον ηλεκτρισμό - εξαιρετικές πληροφορίες για τη σύνθετη αντίσταση του δέρματος κ.λπ. Οι EOG χρησιμοποιούνται συνήθως για τη διάγνωση οφθαλμολογικών παθήσεων όπως καταρράκτης, διαθλαστικών σφαλμάτων ή εκφύλισης της ωχράς κηλίδας. Υπάρχουν επίσης εφαρμογές στη ρομποτική ελεγχόμενη από τα μάτια στις οποίες μπορούν να εκτελεστούν απλές εργασίες με μια κίνηση των.. ματιών.

Για να διαβάσουμε αυτά τα σήματα, δηλαδή να υπολογίσουμε τη διαφορά τάσης μεταξύ των ηλεκτροδίων, ενσωματώνουμε ένα σημαντικό τσιπ που ονομάζεται ενισχυτής οργάνων στο κύκλωμά μας. Αυτός ο ενισχυτής οργάνων αποτελείται από οπαδούς τάσης, έναν ενισχυτή που δεν αντιστρέφεται και έναν διαφορικό ενισχυτή. Εάν δεν γνωρίζετε πολλά για τους ενισχυτές, διαβάστε αυτό για μια πορεία συντριβής - ουσιαστικά, παίρνουν μια τάση εισόδου, την κλιμακώνουν και εξάγουν την προκύπτουσα τάση χρησιμοποιώντας τις ράγες ισχύος. Η ενσωμάτωση όλων των αντιστάσεων μεταξύ κάθε σταδίου βοηθά στα σφάλματα ανοχής: συνήθως οι αντιστάσεις έχουν 5-10% ανοχή σε τιμές και το κανονικό κύκλωμα (δεν είναι πλήρως ενσωματωμένο σε ενισχυτή οργάνων) θα βασιστεί σε μεγάλο βαθμό στην ακρίβεια για καλό CMMR (δείτε το επόμενο βήμα). Οι οπαδοί τάσης είναι για υψηλή σύνθετη αντίσταση εισόδου (συζητήθηκε στην παραπάνω παράγραφο - σημαντική για την πρόληψη βλάβης στον ασθενή), ο μη αναστρέψιμος ενισχυτής πρέπει να εξασφαλίσει υψηλή απόδοση του σήματος (περισσότερα για την ενίσχυση στο επόμενο βήμα) και ο διαφορικός ενισχυτής παίρνει τη διαφορά μεταξύ των εισόδων (αφαιρεί τις τιμές από τα ηλεκτρόδια). Αυτά έχουν σχεδιαστεί για να συντρίβουν όσο το δυνατόν περισσότερους θορύβους/παρεμβολές (για περισσότερα σχετικά με την επεξεργασία σήματος, δείτε το επόμενο βήμα) για βιοϊατρικά σήματα, τα οποία είναι γεμάτα με ξένα τεχνουργήματα.

Τα ηλεκτρόδια αντιμετωπίζουν κάποια σύνθετη αντίσταση του δέρματος, καθώς οι ιστοί και το λίπος του δέρματος εμποδίζουν την άμεση μέτρηση των τάσεων, οδηγώντας στην ανάγκη για ενίσχυση και φιλτράρισμα σήματος. Εδώ, εδώ και εδώ είναι μερικά άρθρα στα οποία οι ερευνητές προσπάθησαν να ποσοτικοποιήσουν αυτήν την αντίσταση. Αυτή η φυσιολογική ποσότητα συνήθως διαμορφώνεται ως αντίσταση 51kOhm παράλληλα με έναν πυκνωτή 47nF, αν και υπάρχουν πολλές παραλλαγές και συνδυασμοί. Το δέρμα σε διαφορετικές θέσεις μπορεί να έχει διαφορετικές αντιστάσεις, ειδικά όταν λαμβάνετε υπόψη τα διαφορετικά πάχη και ποσότητες γειτονικών μυών. Η σύνθετη αντίσταση αλλάζει επίσης με το πόσο καλά το δέρμα σας είναι προετοιμασμένο για ηλεκτρόδια: ο γενικός καθαρισμός με σαπούνι και νερό προτείνεται γενικά για να εξασφαλιστεί εξαιρετική πρόσφυση και συνέπεια, και υπάρχουν ακόμη και ειδικά τζελ για ηλεκτρόδια αν πραγματικά επιθυμείτε την τελειότητα. Μια βασική σημείωση είναι ότι η σύνθετη αντίσταση αλλάζει με τη συχνότητα (χαρακτηριστικό των πυκνωτών), οπότε πρέπει να γνωρίζετε το εύρος ζώνης του σήματος για να προβλέψετε τη σύνθετη αντίσταση. Και ναι, η εκτίμηση της σύνθετης αντίστασης είναι σημαντική για την αντιστοίχιση θορύβου - δείτε το επόμενο βήμα για περισσότερες πληροφορίες σχετικά με αυτό.

Βήμα 3: Επεξεργασία σημάτων: Γιατί και πώς;

Επεξεργασία σημάτων: Γιατί και πώς
Επεξεργασία σημάτων: Γιατί και πώς

Τώρα, γιατί δεν μπορείτε απλά να χρησιμοποιήσετε τη διαφορά τάσης 1-10mV ως άμεση έξοδο για τον έλεγχο των LED; Λοιπόν, υπάρχουν πολλοί λόγοι για το φιλτράρισμα και την ενίσχυση σημάτων:

  • Πολλοί ADC (μετατροπείς αναλογικού σε ψηφιακό-λαμβάνουν την αναλογική είσοδό σας και τις ψηφιοποιούν για ανάγνωση και αποθήκευση δεδομένων στον υπολογιστή) απλά δεν μπορούν να εντοπίσουν τέτοιες μικρές αλλαγές. Για παράδειγμα, το ADC του Arduino Uno είναι συγκεκριμένα ένα 10-bit ADC με έξοδο 5V, πράγμα που σημαίνει ότι χαρτογραφεί τάσεις εισόδου 0-5V (εκτός τιμών τιμών θα "τρέχουν", πράγμα που σημαίνει ότι οι χαμηλότερες τιμές θα διαβάζονται ως 0V και οι υψηλότερες τιμές θα διαβάζονται ως 5V) σε ακέραιες τιμές μεταξύ 0 και 1023. Τα 10mV είναι τόσο μικρά σε αυτό το εύρος 5V, οπότε αν μπορείτε να ενισχύσετε το σήμα σας στο πλήρες εύρος των 5V, οι μικρές αλλαγές θα είναι πιο εύκολα ανιχνεύσιμες επειδή θα αντανακλώνται από μεγαλύτερες ποσοτικές αλλαγές (Αλλαγή 5mV σε 10mV σε αντίθεση με αλλαγή 2V σε 4V). Σκεφτείτε το σαν μια μικροσκοπική εικόνα στον υπολογιστή σας: οι λεπτομέρειες μπορεί να ορίζονται τέλεια από τα εικονοστοιχεία σας, αλλά δεν θα μπορείτε να διαφοροποιήσετε σχήματα αν δεν επεκτείνετε την εικόνα.

    Σημειώστε ότι το να έχετε περισσότερα bits για το ADC είναι καλύτερο γιατί μπορείτε να ελαχιστοποιήσετε τον θόρυβο κβαντοποίησης από τη μετατροπή του συνεχούς σήματος σε διακριτές, ψηφιοποιημένες τιμές. Για να υπολογίσετε πόσα bits χρειάζεστε για ret 96% διατήρηση του SNR εισόδου, χρησιμοποιήστε τον N = SNR (σε dB)/6 ως βασικό κανόνα. Θέλετε επίσης να έχετε κατά νου το πορτοφόλι σας: αν θέλετε περισσότερα κομμάτια, πρέπει να είστε πρόθυμοι να κερδίσετε περισσότερα χρήματα

  • Ο θόρυβος και η παρεμβολή (θόρυβος = τυχαία τεχνουργήματα που κάνουν τα σήματά σας ακανόνιστα αντί για ομαλά έναντι παρεμβολών = μη τυχαία, ημιτονοειδή τεχνουργήματα από παρακείμενα σήματα από ραδιοκύματα κ.λπ.) μαστίζουν όλα τα σήματα που μετρούνται από την καθημερινή ζωή.

    • Η πιο διάσημη είναι η παρεμβολή 60Hz (50Hz αν βρίσκεστε στην Ευρώπη και καμία στη Ρωσία επειδή χρησιμοποιούν DC σε αντίθεση με το AC για την πρίζα …), η οποία ονομάζεται συχνότητα χρησιμότητας από τα ηλεκτρομαγνητικά πεδία AC των πρίζων. Τα καλώδια μεταφέρουν AC υψηλής τάσης από ηλεκτρικές γεννήτριες σε κατοικημένες περιοχές, όπου οι μετασχηματιστές μειώνουν την τάση στα τυπικά ~ 120V στις αμερικανικές πρίζες. Η εναλλασσόμενη τάση οδηγεί σε αυτό το σταθερό λουτρό παρεμβολών 60Hz στο περιβάλλον μας, το οποίο παρεμβαίνει σε όλους τους τύπους σημάτων και πρέπει να φιλτραριστεί.
    • Η παρεμβολή 60Hz συνήθως ονομάζεται παρεμβολή κοινής λειτουργίας επειδή εμφανίζεται και στις δύο εισόδους σας (+ και -) σε ενισχυτές op. Τώρα, οι ενισχυτές έχουν κάτι που ονομάζεται κοινός λόγος απόρριψης κοινής λειτουργίας (CMRR) για τη μείωση των τεχνουργημάτων κοινής λειτουργίας, αλλά (διορθώστε με αν κάνω λάθος!) Αυτό είναι κυρίως καλό για θορύβους κοινής λειτουργίας (τυχαίο: θόρυβος αντί για μη τυχαίες: παρεμβολές) Το Για να απαλλαγείτε από τα 60Hz, τα φίλτρα bandstop μπορούν να χρησιμοποιηθούν για επιλεκτική αφαίρεση από το φάσμα συχνοτήτων, αλλά στη συνέχεια διατρέχετε επίσης τον κίνδυνο να αφαιρέσετε πραγματικά δεδομένα. Στην καλύτερη περίπτωση, μπορείτε να χρησιμοποιήσετε ένα φίλτρο χαμηλής διέλευσης για να διατηρήσετε ένα εύρος συχνοτήτων χαμηλότερο από 60Hz, έτσι ώστε όλα με υψηλότερες συχνότητες να φιλτράρονται. Αυτό έκανα για το EOG: το αναμενόμενο εύρος ζώνης του σήματος μου ήταν 0-10Hz (παραμελώντας τις γρήγορες κινήσεις των ματιών-δεν ήθελα να το αντιμετωπίσω στην απλοποιημένη μας έκδοση), έτσι αφαίρεσα συχνότητες μεγαλύτερες από 10Hz με φίλτρο χαμηλής διέλευσης Το

      • Τα 60Hz μπορούν να καταστρέψουν τα σήματά μας μέσω χωρητικής σύζευξης και επαγωγικής σύζευξης. Η χωρητική σύζευξη (διαβάστε τους πυκνωτές εδώ) συμβαίνει όταν ο αέρας λειτουργεί ως διηλεκτρικό για σήματα εναλλασσόμενου ρεύματος που πρέπει να διεξάγονται μεταξύ παρακείμενων κυκλωμάτων. Η επαγωγική σύζευξη προέρχεται από τον νόμο του Faraday καθώς τρέχετε ρεύμα σε μαγνητικό πεδίο. Υπάρχουν πολλά κόλπα για να ξεπεράσετε τη σύζευξη: θα μπορούσατε να χρησιμοποιήσετε μια γειωμένη ασπίδα ως ένα είδος κλωβού Faraday, για παράδειγμα. Το στρίψιμο/πλέξιμο των συρμάτων, όταν είναι δυνατόν, μειώνει την περιοχή που είναι διαθέσιμη για επαγωγική σύζευξη. Η συντόμευση καλωδίων και η μείωση του συνολικού μεγέθους του κυκλώματός σας έχει επίσης το ίδιο αποτέλεσμα για τον ίδιο λόγο. Το να βασίζεστε στην ισχύ της μπαταρίας για τις ράγες του ενισχυτή σε αντίθεση με την πρίζα σε μια πρίζα βοηθά επίσης επειδή οι μπαταρίες παρέχουν μια πηγή DC χωρίς ημιτονοειδή ταλάντωση. Διαβάστε περισσότερα εδώ!
      • Τα φίλτρα χαμηλής διέλευσης επίσης απαλλάσσουν από πολύ θόρυβο, καθώς ο τυχαίος θόρυβος αντιπροσωπεύεται από υψηλές συχνότητες. Πολλοί θόρυβοι είναι λευκός θόρυβος, που σημαίνει ότι υπάρχει θόρυβος για όλες τις συχνότητες, οπότε ο περιορισμός του εύρους ζώνης του σήματος όσο το δυνατόν περισσότερο βοηθά στον περιορισμό του ποσοστού αυτού του θορύβου στο σήμα σας.

        Ορισμένα φίλτρα χαμηλής διέλευσης ονομάζονται φίλτρα κατά της αλλοίωσης επειδή εμποδίζουν την αλλοτρίωση: όταν τα ημιτονοειδή είναι υπό δειγματοληψία, μπορεί να ανιχνευθούν ως διαφορετική συχνότητα από ό, τι στην πραγματικότητα είναι. Θα πρέπει πάντα να θυμάστε να ακολουθείτε το θεώρημα δειγματοληψίας του Nyquist (δείγματα σημάτων σε 2x υψηλότερη συχνότητα: χρειάζεστε συχνότητα δειγματοληψίας> 2Hz για αναμενόμενο ημιτονοειδές κύμα 1Hz, κλπ). Σε αυτήν την περίπτωση EOG, δεν χρειάστηκε να ανησυχώ για το Nyquist επειδή το σήμα μου αναμενόταν να είναι κυρίως στην περιοχή των 10Hz και τα δείγματα Arduino ADC μου στα 10kHz - περισσότερο από αρκετά γρήγορα για να πιάσουν τα πάντα

    • Υπάρχουν επίσης μικρά κόλπα για να απαλλαγείτε από τον θόρυβο. Το ένα είναι να χρησιμοποιήσετε ένα αστέρι γείωσης, ώστε όλα τα μέρη των κυκλωμάτων σας να έχουν την ίδια ακριβώς αναφορά. Διαφορετικά, αυτό που ένα μέρος ονομάζει "γείωση" μπορεί να διαφέρει από ένα άλλο μέρος λόγω της μικρής αντίστασης στα καλώδια, η οποία αθροίζεται σε ασυνέπειες. Η συγκόλληση στο protoboard αντί να κολλήσει με σανίδες ψωμιού μειώνει επίσης κάποιο θόρυβο και δημιουργεί ασφαλείς συνδέσεις που μπορείτε να εμπιστευτείτε σε αντίθεση με την εισαγωγή με πίεση.

Υπάρχουν πολλοί άλλοι τρόποι για την καταστολή του θορύβου και των παρεμβολών (δείτε εδώ και εδώ), αλλά μπορείτε να παρακολουθήσετε ένα μάθημα σε αυτό ή στο Google για περισσότερες πληροφορίες: ας προχωρήσουμε στο πραγματικό κύκλωμα!

Βήμα 4: Πώς λειτουργεί το κύκλωμα

Πώς λειτουργεί το κύκλωμα
Πώς λειτουργεί το κύκλωμα

Μην σας τρομάζει το διάγραμμα κυκλώματος: εδώ υπάρχει μια πρόχειρη ανάλυση του πώς λειτουργούν όλα: (ανατρέξτε στο προηγούμενο βήμα για κάποιες εξηγήσεις επίσης)

  • Στην άκρη αριστερά έχουμε τα ηλεκτρόδια. Το ένα είναι προσαρτημένο στον αριστερό κρόταφο, το άλλο στο δεξιό ναό και το τρίτο ηλεκτρόδιο είναι γειωμένο στο μέτωπο. Αυτή η γείωση σταθεροποιεί το σήμα έτσι ώστε να υπάρχει λιγότερη μετατόπιση και επίσης απαλλάσσεται από κάποια από τις παρεμβολές των 60Hz.
  • Ακολουθεί ο ενισχυτής οργάνων. Επιστρέψτε δύο βήματα πίσω για να εξηγήσετε τι κάνει για να δημιουργήσει τη διαφορά τάσης. Η εξίσωση για την αλλαγή του κέρδους του ενισχυτή βρίσκεται στη σελίδα 7 του φύλλου δεδομένων [G = 1+ (50kOhm/Rg) όπου το Rg είναι συνδεδεμένο στις ακίδες 1 και 8 του ενισχυτή]. Για το κύκλωμά μου, προσαρμόστηκα σε κέρδος 500 χρησιμοποιώντας Rg = 100Ohm.
  • Αφού ο ενισχυτής οργάνων εξάγει τη διαφορά τάσης ενισχυμένης 500x, υπάρχει ένα φίλτρο χαμηλής διέλευσης RC πρώτης τάξης, το οποίο αποτελείται από αντίσταση R_filter και πυκνωτή C_filter. Το φίλτρο χαμηλής διέλευσης εμποδίζει την καταπολέμηση της ψευδαισθήσεως (δεν με ανησυχεί όμως, γιατί από τη Nyquist, πρέπει να κάνω δειγματοληψία τουλάχιστον 20Hz για ένα αναμενόμενο εύρος ζώνης 10Hz και τα δείγματα Arduino ADC στα 10kHz-περισσότερο από αρκετό) και επίσης μειώνει τον θόρυβο σε όλες τις συχνότητες που δεν χρειάζομαι. Το σύστημα RC λειτουργεί επειδή οι πυκνωτές επιτρέπουν υψηλές συχνότητες εύκολα αλλά εμποδίζουν χαμηλότερες συχνότητες (σύνθετη αντίσταση Z = 1/(2*pi*f)) και η δημιουργία διαχωριστή τάσης με την τάση στον πυκνωτή έχει ως αποτέλεσμα ένα φίλτρο που επιτρέπει μόνο χαμηλότερες συχνότητες μέσω [η διακοπή για την ένταση 3dB διέπεται από τον τύπο f_c = 1/(2*pi*RC)]. Προσάρμοσα τις τιμές R και C του φίλτρου μου για να διακόψω σήματα υψηλότερα από ~ 10Hz επειδή το βιολογικό σήμα για EOG αναμένεται σε αυτό το εύρος. Αρχικά έκοψα μετά από 20Hz, αλλά μετά από πειραματισμούς τα 10Hz λειτούργησαν εξίσου καλά, έτσι πήγα με το μικρότερο εύρος ζώνης (μικρότερο εύρος ζώνης είναι καλύτερο να κόψω οτιδήποτε περιττό, για κάθε περίπτωση).
  • Με αυτό το φιλτραρισμένο σήμα, μέτρησα την έξοδο με έναν παλμογράφο για να δω το εύρος των τιμών μου από το να κοιτάζω αριστερά και δεξιά (τα δύο άκρα του εύρους μου). Αυτό με οδήγησε σε περίπου 2-4V (επειδή το κέρδος ενισχυτή οργάνων ήταν 500x για εύρος 4-8mV ~), όταν ο στόχος μου είναι 5V (πλήρες εύρος του Arduino ADC). Αυτό το εύρος ποικίλλει πολύ (με βάση το πόσο καλά το άτομο έπλυνε το δέρμα εκ των προτέρων, κλπ), οπότε δεν ήθελα να έχω τόσο μεγάλο κέρδος με τον δεύτερο μου μη αναστρέψιμο ενισχυτή. Κατέληξα να το προσαρμόζω ώστε να έχει κέρδος μόνο περίπου 1,3 (ρυθμίστε R1 και R2 στο κύκλωμα επειδή κέρδος του ενισχυτή = 1+R2/R1). Θα χρειαστεί να περιορίσετε τη δική σας έξοδο και να προσαρμοστείτε από εκεί, ώστε να μην υπερβείτε τα 5V! Μην χρησιμοποιείτε μόνο τις τιμές αντίστασης μου.
  • Αυτό το σήμα μπορεί τώρα να τροφοδοτηθεί στην αναλογική ακίδα Arduino για ανάγνωση ΑΛΛΑ το Arduino ADC δεν δέχεται αρνητικές εισόδους! Θα χρειαστεί να μετακινήσετε το σήμα σας προς τα πάνω, έτσι ώστε το εύρος να είναι 0-5V σε αντίθεση με -2.5V σε 2.5V. Ένας τρόπος για να το διορθώσετε είναι να συνδέσετε τη γείωση της πλακέτας σας στον ακροδέκτη 3,3V του Arduino: αυτό μετατοπίζει το σήμα σας κατά 3,3V (περισσότερο από 2,5V βέλτιστο αλλά λειτουργεί). Το εύρος μου ήταν πραγματικά ασταθές, οπότε σχεδίασα μια μεταβλητή τάση μετατόπισης: με αυτόν τον τρόπο, μπορούσα να περιστρέψω το ποτενσιόμετρο για να κεντράρω το εύρος στα 0-5V. Είναι ουσιαστικά ένας διαχωριστής μεταβλητής τάσης που χρησιμοποιεί τις ράγες ισχύος +/- 9V έτσι ώστε να μπορώ να συνδέσω τη γείωση του κυκλώματος σε οποιαδήποτε τιμή από -9 σε 9V και έτσι να μετατοπίσω το σήμα μου πάνω ή κάτω 9V.

Βήμα 5: Επιλογή στοιχείων και αξιών

Επιλογή εξαρτημάτων και αξιών
Επιλογή εξαρτημάτων και αξιών

Με το κύκλωμα να εξηγείται, πώς επιλέγουμε ποιο (ηλεκτρόδιο, op amp) να χρησιμοποιήσουμε;

  • Ως αισθητήρας, τα στερεά ηλεκτρόδια πηκτής έχουν υψηλή σύνθετη αντίσταση εισόδου και χαμηλή σύνθετη αντίσταση εξόδου: αυτό σημαίνει ουσιαστικά ότι το ρεύμα μπορεί εύκολα να περάσει κατάντη στο υπόλοιπο κύκλωμα (χαμηλή σύνθετη αντίσταση εξόδου), αλλά θα μπορούσε να ενοχλήσει το πέρασμα προς τα πάνω στους κροτάφους σας. (υψηλή σύνθετη αντίσταση εισόδου). Αυτό αποτρέπει τον τραυματισμό του χρήστη από τυχόν υψηλά ρεύματα ή τάσεις στο υπόλοιπο κύκλωμά σας. Στην πραγματικότητα, πολλά συστήματα έχουν κάτι που ονομάζεται αντίσταση προστασίας ασθενούς για πρόσθετη προστασία, για κάθε ενδεχόμενο.

    • Υπάρχουν πολλοί διαφορετικοί τύποι ηλεκτροδίων. Οι περισσότεροι άνθρωποι προτείνουν στερεά ηλεκτρόδια πηκτής Ag/AgCl για χρήση σε εφαρμογές EKG/EOG/κλπ. Έχοντας αυτό κατά νου, πρέπει να αναζητήσετε την αντίσταση πηγής αυτών των ηλεκτροδίων (πηγαίνετε δύο βήματα πίσω για τις σημειώσεις μου σχετικά με την αντίσταση του δέρματος) και να την αντιστοιχίσετε στην αντίσταση θορύβου (τάση θορύβου σε V/sqrt (Hz) διαιρούμενη με ρεύμα θορύβου σε A/sqrt (Hz) - δείτε φύλλα δεδομένων ενισχυτών op) των ενισχυτών op - έτσι επιλέγετε τον σωστό ενισχυτή οργάνων για τη συσκευή σας. Αυτό ονομάζεται αντιστοίχιση θορύβου και εξηγήσεις για το γιατί ταιριάζει η αντίσταση πηγής Rs με την αντίσταση θορύβου Rn μπορείτε να βρείτε στο διαδίκτυο όπως εδώ. Για το INA111 που επέλεξα, το Rn μπορεί να υπολογιστεί χρησιμοποιώντας την τάση θορύβου και το ρεύμα θορύβου του φύλλου δεδομένων (στιγμιότυπο οθόνης παραπάνω).

      • Υπάρχουν ΠΟΛΛΑ άρθρα που αξιολογούν την απόδοση των ηλεκτροδίων και κανένα ηλεκτρόδιο δεν είναι το καλύτερο για όλους τους σκοπούς: δοκιμάστε εδώ, για παράδειγμα. Η σύνθετη αντίσταση αλλάζει επίσης για διαφορετικά εύρη ζώνης όπως αντικατοπτρίζεται στα φύλλα δεδομένων op amp (ορισμένα φύλλα δεδομένων θα έχουν καμπύλες ή πίνακες σε διαφορετικές συχνότητες). Κάντε την έρευνά σας αλλά θυμηθείτε να έχετε κατά νου το πορτοφόλι σας. Είναι ωραίο να γνωρίζετε ποια ηλεκτρόδια/ενισχυτές είναι καλύτερα, αλλά δεν ωφελεί αν δεν μπορείτε να το αντέξετε οικονομικά. Θα χρειαστείτε 50 ηλεκτρόδια ~ τουλάχιστον για δοκιμές, όχι μόνο 3 για μία χρήση.

        • Για βέλτιστη αντιστοίχιση θορύβου, όχι μόνο το Rn ~ = Rs: θέλετε επίσης η τάση θορύβου * το ρεύμα θορύβου (Pn) να είναι όσο το δυνατόν χαμηλότερη. Αυτό θεωρείται πιο σημαντικό από την παραγωγή Rn ~ = Rs επειδή μπορείτε να ρυθμίσετε τα Rs και Rn χρησιμοποιώντας μετασχηματιστές εάν είναι απαραίτητο.

          Προειδοποιήσεις με μετασχηματιστές (διορθώστε με αν κάνω λάθος): μπορεί να είναι κάπως ογκώδεις και επομένως όχι βέλτιστες για συσκευές που πρέπει να είναι μικρές. Επίσης συσσωρεύουν θερμότητα, επομένως είναι απαραίτητοι οι καταβόθρες ή ο εξαερισμός

        • Ο θόρυβος ταιριάζει μόνο με τον πρώτο αρχικό ενισχυτή. ο δεύτερος ενισχυτής δεν επηρεάζει τόσο πολύ, οπότε οποιοσδήποτε ενισχυτής op θα το κάνει.

Βήμα 6: Δημιουργία κυκλώματος

Χτίζοντας το κύκλωμα
Χτίζοντας το κύκλωμα
Χτίζοντας το κύκλωμα
Χτίζοντας το κύκλωμα
Χτίζοντας το κύκλωμα
Χτίζοντας το κύκλωμα

Χρησιμοποιήστε το παραπάνω διάγραμμα ψεκασμού για να δημιουργήσετε το κύκλωμα (το δεύτερο αντίγραφο περιγράφει σε τι αναφέρεται το κάθε τμήμα στο διάγραμμα κυκλώματος από το προηγούμενο βήμα). Εάν χρειάζεστε βοήθεια για τον προσδιορισμό των LED στο διάγραμμα, χρησιμοποιήστε αυτήν την αριθμομηχανή κωδικού χρώματος αντίστασης, αλλά το Rg του ενισχυτή οργάνων είναι 100Ohm, το R_filter είναι 1.5MOhm, το C_filter είναι 0.1uF, το R1 του μη αναστρέψιμου ενισχυτή είναι τα 10kOhm, Το R2 είναι το 33kOhm και η αντίσταση για το ποτενσιόμετρο είναι το 1kOhm (το ποτενσιόμετρο κυμαίνεται από 0 έως 20kOhm). Θυμηθείτε να αλλάξετε τις τιμές αντίστασης όπως απαιτείται για να προσαρμόσετε τα κέρδη!

Επεξεργασία: υπάρχει σφάλμα στο τμήμα γείωσης μετατόπισης. Διαγράψτε το αριστερό μαύρο καλώδιο. Η αντίσταση πρέπει να συνδεθεί με το κόκκινο σύρμα στη ράγα ισχύος όπως φαίνεται, αλλά και στο δεύτερο πείρο, όχι πρώτο, του ποτενσιόμετρου. Ο πρώτος πείρος του ποτενσιόμετρου πρέπει να συνδεθεί με τον πείρο 5V του Arduino. Το πορτοκαλί σύρμα που είναι η μετατοπισμένη γείωση πρέπει να συνδεθεί με τον δεύτερο πείρο, όχι με τον πρώτο.

Συζήτησα πολύ για το offset ground. Στο διάγραμμα μπορείτε να δείτε ότι το έδαφος Arduino εμφανίζεται ως συνδεδεμένο με το έδαφος της σανίδας. Αυτό είναι στο σενάριο ότι δεν χρειάζεται να αλλάξετε θέση. Εάν το σήμα σας είναι εκτός εμβέλειας και πρέπει να αλλάξετε τη γείωση, δοκιμάστε πρώτα να συνδέσετε τη γείωση Arduino με τον ακροδέκτη 3.3V του Arduino και να δείτε το σήμα σας. Διαφορετικά, δοκιμάστε να συνδέσετε το πορτοκαλί σύρμα στο ποτενσιόμετρο που έχει ρυθμιστεί (offset ground) στον πείρο GND του Arduino.

ΣΗΜΕΙΩΣΗ ΑΣΦΑΛΕΙΑΣ: ΜΗΝ κρατάτε τις μπαταρίες μέσα κατά τη συγκόλληση και ΜΗΝ τοποθετείτε ή κολλάτε τις μπαταρίες προς τα πίσω. Το κύκλωμά σας θα αρχίσει να καπνίζει, οι πυκνωτές θα φυσούν και το ψωμί μπορεί επίσης να υποστεί ζημιά. Κατά κανόνα, χρησιμοποιήστε τις μπαταρίες μόνο όταν θέλετε να χρησιμοποιήσετε το κύκλωμα. Διαφορετικά, αφαιρέστε τα (η προσθήκη ενός flip switch για εύκολη αποσύνδεση των μπαταριών θα ήταν επίσης καλή ιδέα).

Σημειώστε ότι θα πρέπει να φτιάξετε το κύκλωμα κομμάτι προς κομμάτι (ελέγξτε κάθε στάδιο!) Και σε ένα σανίδι πριν από τη συγκόλληση σε ένα πρωτοπόρο. Το πρώτο στάδιο που πρέπει να ελέγξετε είναι ο ενισχυτής οργάνων: συνδέστε όλες τις ράγες (συγκολλήστε στις θήκες μπαταριών), Rg κ.λπ. και χρησιμοποιήστε έναν παλμογράφο στον πείρο εξόδου. Για αρχή, χρησιμοποιήστε μια γεννήτρια συναρτήσεων με ημιτονοειδές κύμα 1Hz με πλάτος 5mV (ή το χαμηλότερο που θα φτάσει η γεννήτρια σας). Αυτό γίνεται μόνο για να ελέγξετε ότι ο ενισχυτής οργάνων λειτουργεί σωστά και ότι το Rg σας παρέχει το στόχο -στόχο σας.

Στη συνέχεια, ελέγξτε το φίλτρο χαμηλής διέλευσης. Προσθέστε αυτό το τμήμα του κυκλώματος και ελέγξτε την κυματομορφή σας: θα πρέπει να φαίνεται ακριβώς ο ίδιος αλλά λιγότερο θόρυβος (οδοντωτός - δείτε τις δύο τελευταίες εικόνες παραπάνω). Ας εξετάσουμε την τελική σας έξοδο με έναν παλμογράφο με τα ηλεκτρόδιά σας αντί για μια γεννήτρια συναρτήσεων τώρα…

Βήμα 7: Δοκιμαστικό κύκλωμα με έναν άνθρωπο

Κύκλωμα δοκιμής με έναν άνθρωπο
Κύκλωμα δοκιμής με έναν άνθρωπο
Κύκλωμα δοκιμής με έναν άνθρωπο
Κύκλωμα δοκιμής με έναν άνθρωπο
Κύκλωμα δοκιμής με έναν άνθρωπο
Κύκλωμα δοκιμής με έναν άνθρωπο

Και πάλι, βάλτε ηλεκτρόδια στους αριστερούς και δεξί κροτάφους σας και συνδέστε ένα καλώδιο γείωσης σε ένα ηλεκτρόδιο στο μέτωπό σας. Μόνο μετά από αυτό πρέπει να προσθέσετε μπαταρίες - εάν εμφανιστεί μυρμήγκιασμα, αφαιρέστε ΑΜΕΣΑ και ελέγξτε ξανά τις συνδέσεις !!! Τώρα ελέγξτε το εύρος των τιμών σας όταν κοιτάτε αριστερά έναντι δεξιού και προσαρμόστε το R1/R2 του ενισχυτή που δεν αντιστρέφεται, όπως εξηγήθηκε πριν από δύο βήματα-θυμηθείτε ότι ο στόχος είναι εύρος 5V! Δείτε τις παραπάνω εικόνες για σημειώσεις σχετικά με το τι πρέπει να προσέξετε.

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

Βήμα 8: Κωδικός Arduino

Όλος ο κώδικας επισυνάπτεται στο κάτω μέρος αυτού του βήματος!

Τώρα που έχετε εύρος 5V, πρέπει να βεβαιωθείτε ότι βρίσκεται εντός 0-5V αντί -1V έως 4V, κ.λπ. στη ράγα γείωσης και στη συνέχεια συνδέστε ένα καλώδιο από τη ράγα γείωσης στον πείρο GND του Arduino (αυτό είναι για να μετατοπίσετε το σήμα προς τα πάνω ή προς τα κάτω, ώστε να πέσετε εντός της περιοχής 0-5V). Θα πρέπει να παίξετε: μην ξεχάσετε να επεκτείνετε την παραγωγή σας όποτε είναι αβέβαιο!

Τώρα για βαθμονόμηση: θέλετε το φως να αλλάζει χρώματα για διαφορετικές θέσεις ματιών (κοιτάζοντας αριστερά έναντι όχι τόσο αριστερά..). Για αυτό χρειάζεστε τιμές και εύρη: εκτελέστε το EOG-calibration-numbers.ino στο Arduino με όλα συνδεδεμένα σωστά (ολοκληρώστε τις συνδέσεις με το Arduino και το neopixel σύμφωνα με το διάγραμμα ψύξης μου). Δεν είναι εξαιρετικά απαραίτητο, αλλά εκτελέστε επίσης τον κωδικό bioe.py που έχω - αυτό θα βγάλει ένα αρχείο κειμένου στην επιφάνεια εργασίας σας, ώστε να μπορείτε να καταγράψετε όλες τις τιμές όπως φαίνεται αριστερά ή δεξιά (ο κώδικας python προσαρμόστηκε από αυτό το παράδειγμα). Πώς το έκανα αυτό ήταν να κοιτάζω αριστερά για 8 παλμούς, στη συνέχεια δεξιά, έπειτα επάνω, στη συνέχεια κάτω και επαναλαμβάνω για μέσο όρο αργότερα (βλέπε έξοδο_2.pdf για ένα ημερολόγιο που κράτησα). Πατήστε ctrl+C για να εξαναγκάσετε την έξοδο όταν είστε ικανοποιημένοι. Χρησιμοποιώντας αυτές τις τιμές, μπορείτε στη συνέχεια να προσαρμόσετε τα εύρη των κινούμενων εικόνων στον κωδικό μου BioE101_EOG-neopixel.ino. Για μένα, είχα ένα κινούμενο σχέδιο ουράνιου τόξου όταν κοίταξα ευθεία μπροστά, μπλε για τα αριστερά, πράσινο για το ελαφρύ αριστερό, μοβ για το ελαφρύ δεξί και κόκκινο για το δεξί άκρο.

Βήμα 9: Μελλοντικά βήματα

Voila; κάτι που μπορείτε να ελέγξετε μόνο με τα μάτια σας. Υπάρχουν πολλά που πρέπει να βελτιστοποιηθούν προτού φτάσει στο νοσοκομείο, αλλά αυτό είναι για άλλη μέρα: οι βασικές έννοιες είναι τουλάχιστον ευκολότερες να κατανοηθούν τώρα. Ένα πράγμα που θα ήθελα να επιστρέψω και να αλλάξω είναι να προσαρμόσω το κέρδος μου στα 500 για τον ενισχυτή οργάνων: κοιτάζοντας πίσω, αυτό ήταν πιθανώς πολύ πολύ επειδή το σήμα μου ήταν 2-4V ήδη και δυσκολεύτηκα να χρησιμοποιήσω τη μη αναστροφή ενισχυτής για να προσαρμόσω τέλεια το εύρος μου…

Είναι δύσκολο να επιτευχθεί συνέπεια επειδή το σήμα αλλάζει ΠΟΛΥ για διαφορετικές συνθήκες:

  • διαφορετικό άτομο
  • συνθήκες φωτισμού
  • προετοιμασία δέρματος (τζελ, πλύσιμο κ.λπ.)

αλλά ακόμα κι έτσι, είμαι αρκετά ευχαριστημένος με την τελική απόδειξη βίντεο απόδοσης (που τραβήχτηκε στις 3 το πρωί γιατί τότε όλα ξεκινούν μαγικά να λειτουργούν).

Ξέρω ότι πολλά από αυτό το σεμινάριο μπορεί να φαίνονται μπερδεμένα (ναι, η καμπύλη μάθησης ήταν δύσκολη και για μένα), οπότε μη διστάσετε να κάνετε ερωτήσεις παρακάτω και θα κάνω ό, τι καλύτερο μπορώ για να απαντήσω. Απολαμβάνω!

Απαράδεκτη Πρόκληση
Απαράδεκτη Πρόκληση
Απαράδεκτη Πρόκληση
Απαράδεκτη Πρόκληση

Δρομέας στην Πρόκληση του Άπικτου

Συνιστάται: