Spisu treści:

Kontrolowanie świateł za pomocą oczu: 9 kroków (ze zdjęciami)
Kontrolowanie świateł za pomocą oczu: 9 kroków (ze zdjęciami)

Wideo: Kontrolowanie świateł za pomocą oczu: 9 kroków (ze zdjęciami)

Wideo: Kontrolowanie świateł za pomocą oczu: 9 kroków (ze zdjęciami)
Wideo: Psychologia relacji: 9 sposobów, aby zawsze o tobie myślał - wiem 2024, Lipiec
Anonim
Kontrolowanie świateł za pomocą oczu
Kontrolowanie świateł za pomocą oczu
Kontrolowanie świateł za pomocą oczu
Kontrolowanie świateł za pomocą oczu

W tym semestrze w college'u wziąłem udział w zajęciach o nazwie Instrumentation in Biomedicine, podczas których nauczyłem się podstaw przetwarzania sygnałów w zastosowaniach medycznych. Do końcowego projektu klasy mój zespół pracował nad technologią EOG (elektrokulografii). Zasadniczo elektrody przymocowane do czyichś skroni wysyłają różnicę napięcia (opartą na dipolu rogówkowo-siatkówkowym) do obwodu zaprojektowanego do filtrowania i wzmacniania sygnału. Sygnał jest podawany do ADC (przetwornika analogowo-cyfrowego - w moim przypadku ADC Arduino Uno) i służy do zmiany kolorów klejnotu neopikselowego.

Ten samouczek jest dla mnie sposobem na zapisanie tego, czego się nauczyłem, a także podzielenie się ze zwykłym czytelnikiem, w jaki sposób sygnały są izolowane od ludzkiego ciała (więc uważaj: jest pełen dodatkowych szczegółów!). Ten obwód może być faktycznie używany, z kilkoma drobnymi zmianami, do elektrycznych impulsów serca motorycznego jako kształtu fali EKG i wiele więcej! Chociaż z pewnością nie jest tak zaawansowana i dopracowana jak maszyny, które można znaleźć w szpitalu, ta lampa sterowana pozycją oka jest świetna do początkowego zrozumienia i spojrzenia.

Uwaga: nie jestem ekspertem w przetwarzaniu sygnałów, więc jeśli pojawią się jakieś błędy lub jeśli masz sugestie dotyczące ulepszeń, daj mi znać! Mam jeszcze wiele do nauczenia się, więc komentarze są mile widziane. Ponadto wiele artykułów, do których odwołuję się w linkach w tym samouczku, wymaga dostępu akademickiego, który mam dzięki uprzejmości mojej uczelni; z góry przepraszam za tych, którzy nie będą mieli dostępu.

Krok 1: Materiały

  • płyta prototypowa
  • rezystory (100, 1k, 10k, 33k, 1M + 0,5M)
  • kondensator (0,1uF)
  • wzmacniacz oprzyrządowania (w moim przypadku INA111, ale jest para, która powinna działać w miarę dobrze)
  • wzmacniacz operacyjny (dowolny - zdarzyło mi się mieć LM324N)
  • neopixel (dowolne prace, ale użyłem klejnotu)
  • Baterie 9V x2
  • Złącza baterii 9V x2
  • stałe elektrody żelowe (dobór elektrod omówiono w kroku 5)
  • potencjometr
  • izolowany drut
  • narzędzia do ściągania izolacji
  • lutownica + lut
  • zaciski krokodylkowe (z dołączonymi przewodami - w razie potrzeby przylutuj)
  • klej na gorąco (do stabilizacji drutów, które byłyby zginane w przód i w tył)
  • Arduino (dość dużo płytka działa, ale użyłem Arduino Uno)

BARDZO POLECAMY: oscyloskop, multimetr i generator funkcji. Zbadaj swoje wyjścia, a nie tylko polegaj na moich wartościach rezystorów!

Krok 2: Tło fizjologiczne i potrzeba obwodu

Tło fizjologiczne i potrzeba obwodu
Tło fizjologiczne i potrzeba obwodu

Szybkie zastrzeżenie: w żadnym wypadku nie jestem ekspertem medycznym w tej dziedzinie, ale skompilowałem i uprościłem to, czego nauczyłem się na zajęciach / z Google poniżej, z linkami do dalszej lektury, jeśli chcesz. Również ten link jest zdecydowanie najlepszym przeglądem tematu, jaki znalazłem - zawiera alternatywne techniki.

EOG (elektrokulografia) działa na dipolu rogówkowo-siatkówkowym. Rogówka (przód oka) jest lekko naładowana dodatnio, a siatkówka (tył oka) jest lekko naładowana ujemnie. Po nałożeniu elektrod na skronie i uziemieniu obwodu do czoła (pomoże to ustabilizować odczyty i pozbyć się niektórych zakłóceń 60 Hz), można zmierzyć około ~1-10 mV różnic napięcia dla poziomych ruchów gałek ocznych (patrz rysunek powyżej). W przypadku ruchów gałek ocznych w pionie umieść elektrody nad i pod okiem. Przeczytaj ten artykuł, aby dowiedzieć się, jak ciało oddziałuje z elektrycznością – świetne informacje na temat impedancji skóry itp. EOG są powszechnie używane do diagnozowania chorób okulistycznych, takich jak zaćma, wady refrakcji lub zwyrodnienie plamki żółtej. Istnieją również zastosowania w robotyce sterowanej wzrokiem, w której proste zadania można wykonać jednym ruchem… oczu.

Aby odczytać te sygnały, tj. obliczyć różnicę napięć między elektrodami, włączamy do naszego obwodu ważny układ zwany wzmacniaczem oprzyrządowania. Ten wzmacniacz oprzyrządowania składa się z wtórników napięcia, wzmacniacza nieodwracającego i wzmacniacza różnicowego. Jeśli nie wiesz zbyt wiele o wzmacniaczach operacyjnych, przeczytaj to, aby uzyskać szybki kurs - zasadniczo pobierają one napięcie wejściowe, skalują je i wyprowadzają wynikowe napięcie za pomocą swoich szyn zasilających. Integracja wszystkich rezystorów między poszczególnymi stopniami pomaga w przypadku błędów tolerancji: normalnie rezystory mają tolerancję wartości 5-10%, a zwykły obwód (nie w pełni zintegrowany ze wzmacniaczem oprzyrządowania) w dużym stopniu zależy od dokładności dla dobrego CMMR (patrz następny krok). Wtórniki napięciowe są przeznaczone do wysokiej impedancji wejściowej (omówione w powyższym akapicie - główne dla zapobiegania urazom pacjenta), wzmacniacz nieodwracający ma zapewnić wysokie wzmocnienie sygnału (więcej o wzmocnieniu w następnym kroku), a wzmacniacz różnicowy bierze różnicę między wejściami (odejmuje wartości od elektrod). Zostały one zaprojektowane tak, aby zmiażdżyć jak najwięcej szumów/zakłóceń typowych dla sygnałów biomedycznych, które są pełne obcych artefaktów.

Elektrody napotykają pewną impedancję skóry, ponieważ tkanki skóry i tłuszcz utrudniają bezpośredni pomiar napięcia, co prowadzi do konieczności wzmocnienia sygnału i filtrowania. Tutaj, tutaj i tutaj znajdują się artykuły, w których badacze próbowali określić tę impedancję. Ta fizjologiczna wielkość jest powszechnie modelowana jako rezystor 51 kOhm równolegle z kondensatorem 47 nF, chociaż istnieje wiele odmian i kombinacji. Skóra w różnych miejscach może mieć różną impedancję, zwłaszcza biorąc pod uwagę różną grubość i ilość sąsiednich mięśni. Impedancja zmienia się również wraz z tym, jak dobrze Twoja skóra jest przygotowana na elektrody: generalnie zaleca się dokładne czyszczenie mydłem i wodą, aby zapewnić doskonałą przyczepność i konsystencję, a jeśli naprawdę pragniesz perfekcji, dostępne są nawet specjalne żele do elektrod. Jedną z kluczowych uwag jest to, że impedancja zmienia się wraz z częstotliwością (charakterystyka kondensatorów), więc musisz znać szerokość pasma sygnału, aby przewidzieć impedancję. I tak, szacowanie impedancji JEST ważne dla dopasowania szumu - zobacz następny krok, aby uzyskać więcej informacji na ten temat.

Krok 3: Przetwarzanie sygnału: dlaczego i jak?

Przetwarzanie sygnału: dlaczego i jak?
Przetwarzanie sygnału: dlaczego i jak?

Dlaczego nie możesz po prostu użyć różnicy napięć 1-10mV jako natychmiastowego wyjścia do sterowania diodami LED? Cóż, jest wiele powodów filtrowania i wzmacniania sygnałów:

  • Wiele przetworników ADC (przetworników analogowo-cyfrowych – pobiera dane z wejścia analogowego i digitalizuje je w celu odczytu i przechowywania danych na komputerze) po prostu nie jest w stanie wykryć tak małych zmian. Na przykład ADC Arduino Uno jest w szczególności 10-bitowym ADC z wyjściem 5 V, co oznacza, że mapuje napięcia wejściowe 0-5 V (wartości poza zakresem będą „kolejowe”, co oznacza, że niższe wartości będą odczytywane jako 0 V, a wyższe wartości odczytane jako 5V) do wartości całkowitych od 0 do 1023. 10mV jest tak małe w tym zakresie 5V, więc jeśli możesz wzmocnić swój sygnał do pełnego zakresu 5V, małe zmiany będą łatwiej wykrywalne, ponieważ zostaną odzwierciedlone przez większe zmiany ilościowe (Zmiana z 5mV na 10mV w przeciwieństwie do zmiany z 2V na 4V). Pomyśl o tym jak o maleńkim obrazku na komputerze: szczegóły mogą być doskonale zdefiniowane przez piksele, ale nie będziesz w stanie odróżnić kształtów, dopóki nie rozszerzysz obrazu.

    Zwróć uwagę, że posiadanie większej liczby bitów dla ADC jest lepsze, ponieważ możesz zminimalizować szum kwantyzacji spowodowany zamianą ciągłego sygnału na dyskretne, zdigitalizowane wartości. Aby obliczyć, ile bitów potrzebujesz do ~96% zachowania wejściowego SNR, użyj zasady N = SNR (w dB)/6. Chciałbyś również pamiętać o swoim portfelu: jeśli chcesz więcej bitów, musisz być gotów wydać więcej pieniędzy

  • Hałas i zakłócenia (hałas = losowe artefakty, które powodują, że twoje sygnały są postrzępione zamiast gładkie vs zakłócenia = nielosowe, sinusoidalne artefakty z sąsiednich sygnałów fal radiowych itp.) nękają wszystkie sygnały mierzone w życiu codziennym.

    • Najbardziej znanym z nich jest interferencja 60 Hz (50 Hz, jeśli jesteś w Europie, a żadna w Rosji, ponieważ używają prądu stałego w przeciwieństwie do prądu przemiennego do zasilania gniazdka…), co nazywa się częstotliwością sieciową z pól elektromagnetycznych prądu przemiennego gniazdek elektrycznych. Linie energetyczne przenoszą wysokie napięcie AC z generatorów elektrycznych do obszarów mieszkalnych, gdzie transformatory obniżają napięcie do standardowego ~120V w amerykańskich gniazdach zasilających. Napięcie przemienne prowadzi do tej stałej kąpieli 60 Hz interferencji w naszym otoczeniu, która zakłóca wszystkie rodzaje sygnałów i musi zostać odfiltrowana.
    • Zakłócenia 60 Hz są powszechnie nazywane zakłóceniami w trybie wspólnym, ponieważ pojawiają się na obu wejściach (+ i -) do wzmacniaczy operacyjnych. Teraz wzmacniacze operacyjne mają coś, co nazywa się współczynnikiem odrzucania trybu wspólnego (CMRR), aby zredukować artefakty trybu wspólnego, ale (popraw mnie, jeśli się mylę!) Jest to dobre głównie w przypadku szumów trybu wspólnego (losowe: szum zamiast nielosowego: zakłócenia). Aby pozbyć się 60 Hz, można użyć filtrów pasmowych, aby selektywnie usunąć je z widma częstotliwości, ale wtedy również ryzykujesz usunięcie rzeczywistych danych. W najlepszym przypadku możesz użyć filtra dolnoprzepustowego, aby utrzymać zakres częstotliwości niższy niż 60 Hz, więc wszystko o wyższych częstotliwościach zostanie odfiltrowane. To właśnie zrobiłem dla EOG: oczekiwana szerokość pasma mojego sygnału wynosiła 0-10 Hz (pomijając szybkie ruchy oczu - nie chciałem sobie z tym radzić w naszej uproszczonej wersji), więc usunąłem częstotliwości większe niż 10 Hz za pomocą filtra dolnoprzepustowego.

      • 60 Hz może uszkodzić nasze sygnały poprzez sprzężenie pojemnościowe i sprzężenie indukcyjne. Sprzężenie pojemnościowe (odczyt na kondensatorach tutaj) występuje, gdy powietrze działa jako dielektryk dla sygnałów AC, które mają być przewodzone między sąsiednimi obwodami. Sprzężenie indukcyjne pochodzi z prawa Faradaya, gdy płyniesz prądem w polu magnetycznym. Istnieje wiele sztuczek, które pozwalają przezwyciężyć sprzężenie: możesz na przykład użyć uziemionej tarczy jako czegoś w rodzaju klatki Faradaya. Skręcanie/oplatanie przewodów, gdy jest to możliwe, zmniejsza obszar dostępny do interferencji sprzężenia indukcyjnego. Skrócenie przewodów i zmniejszenie ogólnego rozmiaru obwodu również ma ten sam efekt z tego samego powodu. Poleganie na zasilaniu bateryjnym w szynach wzmacniacza operacyjnego w przeciwieństwie do podłączania do gniazdka elektrycznego również pomaga, ponieważ akumulatory zapewniają źródło prądu stałego bez oscylacji sinusoidalnych. Przeczytaj o wiele więcej tutaj!
      • Filtry dolnoprzepustowe również eliminują dużo szumu, ponieważ losowy szum jest reprezentowany przez wysokie częstotliwości. Wiele szumów to szum biały, co oznacza, że szum jest obecny na wszystkich częstotliwościach, więc ograniczenie przepustowości sygnału tak bardzo, jak to możliwe, pomaga ograniczyć ilość tego szumu w sygnale.

        Niektóre filtry dolnoprzepustowe nazywane są filtrami antyaliasingowymi, ponieważ zapobiegają aliasingowi: kiedy sinusoidy są zbyt nisko próbkowane, mogą zostać wykryte jako inne niż w rzeczywistości. Należy zawsze pamiętać, aby postępować zgodnie z twierdzeniem Nyquista o próbkowaniu (sygnały próbkujące z 2x wyższą częstotliwością: potrzebna jest częstotliwość próbkowania > 2 Hz dla oczekiwanej fali sinusoidalnej 1 Hz itp.). W tym przypadku EOG nie musiałem się martwić o Nyquista, ponieważ oczekiwano, że mój sygnał będzie głównie w zakresie 10 Hz, a moje próbki Arduino ADC z częstotliwością 10 kHz – więcej niż wystarczająco szybko, aby wszystko wyłapać

    • Są też małe sztuczki na pozbycie się hałasu. Jednym z nich jest użycie uziemienia gwiazdy, aby wszystkie części twoich obwodów miały dokładnie to samo odniesienie. W przeciwnym razie to, co jedna część nazywa „uziemieniem”, może różnić się od innej części ze względu na niewielki opór w przewodach, który sumuje się w niespójności. Lutowanie do płyty prototypowej zamiast przyklejania do płytek stykowych również zmniejsza hałas i tworzy bezpieczne połączenia, którym można zaufać w przeciwieństwie do wciskania.

Istnieje wiele innych sposobów tłumienia szumów i zakłóceń (zobacz tutaj i tutaj), ale możesz wziąć udział w zajęciach lub Google, aby uzyskać więcej informacji: przejdźmy do rzeczywistego obwodu!

Krok 4: Jak działa obwód

Jak działa obwód
Jak działa obwód

Nie daj się zastraszyć schematem obwodu: oto przybliżony podział tego, jak wszystko działa: (w celu uzyskania wyjaśnień wróć do poprzedniego kroku)

  • Po lewej stronie mamy elektrody. Jedna jest przymocowana do lewej skroni, druga do prawej skroni, a trzecia elektroda jest przytwierdzona do czoła. To uziemienie stabilizuje sygnał, dzięki czemu jest mniej dryfu, a także eliminuje niektóre zakłócenia 60 Hz.
  • Dalej jest wzmacniacz oprzyrządowania. Cofnij się o dwa kroki, aby wyjaśnić, co robi, aby generować różnicę napięć. Równanie zmiany wzmocnienia wzmacniacza znajduje się na stronie 7 karty danych [G = 1+(50kOhm/Rg) gdzie Rg jest podłączone na pinach 1 i 8 wzmacniacza]. Dla mojego obwodu dostosowałem do wzmocnienia 500 za pomocą Rg = 100Ohm.
  • Po tym, jak wzmacniacz oprzyrządowania wyprowadza 500-krotnie wzmocnioną różnicę napięć, jest filtr dolnoprzepustowy RC pierwszego rzędu, który składa się z rezystora R_filter i kondensatora C_filter. Filtr dolnoprzepustowy zapobiega antyaliasingowi (choć nie martwię się o mnie, ponieważ według Nyquista muszę próbkować co najmniej 20 Hz dla oczekiwanej szerokości pasma 10 Hz, a Arduino ADC próbkuje z częstotliwością 10 kHz - więcej niż wystarczająco), a także odcina szum na wszystkich częstotliwościach, których nie potrzebuję. Układ RC działa, ponieważ kondensatory łatwo przepuszczają wysokie częstotliwości, ale zasłaniają niższe częstotliwości (impedancja Z = 1/(2*pi*f)), a tworzenie dzielnika napięcia z napięciem na kondensatorze skutkuje filtrem, który dopuszcza tylko niższe częstotliwości do [odcięcie dla natężenia 3dB określa wzór f_c = 1/(2*pi*RC)]. Dostosowałem wartości R i C mojego filtra, aby odciąć sygnały wyższe niż ~10Hz, ponieważ sygnał biologiczny dla EOG jest oczekiwany w tym zakresie. Pierwotnie odciąłem po 20Hz, ale po eksperymentach 10Hz działało równie dobrze, więc poszedłem z mniejszą przepustowością (mniejsze pasmo lepiej wyciąć wszystko niepotrzebne, na wszelki wypadek).
  • Z tym przefiltrowanym sygnałem zmierzyłem wyjście za pomocą oscyloskopu, aby zobaczyć mój zakres wartości patrząc w lewo i w prawo (dwie skrajne wartości mojego zakresu). To doprowadziło mnie do około 2-4 V (ponieważ wzmocnienie wzmacniacza oprzyrządowania było 500x dla zakresu ~ 4-8 mV), gdy moim celem jest 5 V (pełny zakres Arduino ADC). Ten zakres bardzo się różnił (w zależności od tego, jak dobrze osoba wcześniej umyła skórę itp.), więc nie chciałem mieć tak dużego wzmocnienia z moim drugim nieodwracającym wzmacniaczem. Skończyło się na dostosowaniu go, aby uzyskać wzmocnienie tylko około 1,3 (dostosuj R1 i R2 w obwodzie, ponieważ wzmocnienie wzmacniacza = 1+R2/R1). Będziesz musiał określić zakres własnej mocy wyjściowej i dostosować stamtąd, aby nie przekroczyć 5 V! Nie używaj tylko moich wartości rezystorów.
  • Ten sygnał można teraz wprowadzić do pinu analogowego Arduino w celu odczytu, ALE Arduino ADC nie akceptuje wejść ujemnych! Będziesz musiał przesunąć sygnał w górę, aby zakres wynosił 0-5 V, a nie -2,5 V do 2,5 V. Jednym ze sposobów, aby to naprawić, jest podłączenie uziemienia płytki drukowanej do styku 3,3 V Arduino: to przesuwa sygnał w górę o 3,3 V (optymalnie ponad 2,5 V, ale działa). Mój zasięg był naprawdę niepewny, więc zaprojektowałem zmienne napięcie przesunięcia: w ten sposób mogłem obrócić potencjometr, aby wyśrodkować zakres na 0-5V. Zasadniczo jest to zmienny dzielnik napięcia wykorzystujący szyny zasilające +/-9V, dzięki czemu mogę podłączyć masę obwodu do dowolnej wartości od -9 do 9V, a tym samym przesunąć sygnał w górę lub w dół o 9V.

Krok 5: Wybór komponentów i wartości

Wybór komponentów i wartości
Wybór komponentów i wartości

Po wyjaśnieniu obwodu, jak wybrać, którego (elektrody, wzmacniacza operacyjnego) użyć?

  • Jako czujnik, stałe elektrody żelowe mają wysoką impedancję wejściową i niską impedancję wyjściową: zasadniczo oznacza to, że prąd może łatwo przepływać przez resztę obwodu (niska impedancja wyjściowa), ale będzie miał kłopoty z przepływem z powrotem do skroni (wysoka impedancja wejściowa). Zapobiega to zranieniu użytkownika przez wysokie prądy lub napięcia w pozostałej części obwodu; w rzeczywistości wiele systemów ma coś, co nazywa się rezystorem ochrony pacjenta, który zapewnia dodatkową ochronę, tak na wszelki wypadek.

    • Istnieje wiele różnych typów elektrod. Większość ludzi sugeruje stałe elektrody żelowe Ag/AgCl do stosowania w aplikacjach EKG/EOG/etc. Mając to na uwadze, musisz sprawdzić rezystancję źródła tych elektrod (cofnij się dwa kroki do moich notatek na temat impedancji skóry) i dopasować ją do rezystancji szumów (napięcie szumów w V/sqrt (Hz) podzielone przez prąd szumów w A/sqrt(Hz) - patrz karty katalogowe wzmacniaczy operacyjnych) swoich wzmacniaczy operacyjnych - w ten sposób wybierasz właściwy wzmacniacz oprzyrządowania dla swojego urządzenia. Nazywa się to dopasowaniem szumu, a wyjaśnienia, dlaczego dopasowywanie rezystancji źródła Rs do rezystancji szumu Rn działa, można znaleźć w Internecie, tak jak tutaj. Dla mojego INA111, który wybrałem, Rn można obliczyć na podstawie napięcia szumów i prądu szumów z arkusza danych (zrzut ekranu powyżej).

      • Istnieje WIELE artykułów oceniających działanie elektrod i żadna elektroda nie jest najlepsza do wszystkich celów: spróbuj na przykład tutaj. Impedancja zmienia się również dla różnych szerokości pasma, co odzwierciedlają arkusze danych wzmacniacza operacyjnego (niektóre arkusze danych zawierają krzywe lub tabele przy różnych częstotliwościach). Przeprowadź badania, ale pamiętaj, aby pamiętać o swoim portfelu. Fajnie jest wiedzieć, które elektrody/wzmacniacze operacyjne są najlepsze, ale nie ma to sensu, jeśli nie możesz sobie na to pozwolić. Potrzebujesz co najmniej około 50 elektrod do testowania, a nie tylko 3 do jednorazowego użycia.

        • Aby uzyskać optymalne dopasowanie szumów, nie tylko Rn ~= Rs: chcesz również, aby napięcie szumu * prąd szumu (Pn) było tak niskie, jak to możliwe. Jest to uważane za ważniejsze niż robienie Rn ~= Rs, ponieważ możesz dostosować Rs i Rn za pomocą transformatorów, jeśli to konieczne.

          Zastrzeżenia dotyczące transformatorów (popraw mnie, jeśli się mylę): mogą być nieco nieporęczne i dlatego nie są optymalne dla urządzeń, które muszą być małe. Gromadzą również ciepło, więc niezbędne są radiatory lub doskonała wentylacja

        • Hałas pasuje tylko do pierwszego początkowego wzmacniacza; drugi wzmacniacz nie wpływa tak bardzo, więc każdy wzmacniacz operacyjny zrobi.

Krok 6: Budowanie obwodu

Budowanie obwodu
Budowanie obwodu
Budowanie obwodu
Budowanie obwodu
Budowanie obwodu
Budowanie obwodu

Użyj powyższego schematu, aby zbudować obwód (druga kopia przedstawia, do czego odnosi się każda część na schemacie obwodu z poprzedniego kroku). Jeśli potrzebujesz pomocy w identyfikacji diod LED na schemacie, użyj tego kalkulatora kodu koloru rezystora, ale Rg wzmacniacza oprzyrządowania wynosi 100 omów, R_filter to 1,5 MOhm, C_filter to 0,1 uF, R1 nieodwracającego wzmacniacza to 10 kOhm, R2 to 33kOhm, a rezystor dla potencjometru to 1kOhm (potencjometr zmienia się od 0 do 20kOhm). Pamiętaj, aby w razie potrzeby zmienić wartości rezystorów, aby dostosować wzmocnienia!

Edycja: występuje błąd w odsuniętej części podłoża. Usuń lewy czarny przewód. Rezystor należy podłączyć czerwonym przewodem do szyny zasilającej, jak pokazano, ale także do drugiego pinu, a nie pierwszego, potencjometru. Pierwszy pin potencjometru należy połączyć z pinem 5V Arduino. Przewód pomarańczowy będący masą offsetową należy podłączyć do drugiego pinu, a nie do pierwszego.

Dużo dyskutowałem o podłożu offsetowym. Na schemacie widać, że masa Arduino jest pokazana jako połączona z masą płytki stykowej. To w scenariuszu, w którym nie musisz zmieniać terenu. Jeśli twój sygnał jest poza zasięgiem i musisz przesunąć uziemienie, najpierw spróbuj podłączyć uziemienie Arduino do pinu 3,3 V Arduino i zobacz swój sygnał. W przeciwnym razie spróbuj podłączyć pomarańczowy przewód w ustawieniu potencjometru (przesunięcie uziemienia) do styku GND Arduino.

UWAGA BEZPIECZEŃSTWA: NIE trzymaj baterii podczas lutowania i NIE WOLNO wkładać ani lutować baterii odwrotnie. Twój obwód zacznie palić, kondensatory się przepalą, a płytka stykowa może również ulec uszkodzeniu. Zasadniczo używaj baterii tylko wtedy, gdy chcesz korzystać z obwodu; w przeciwnym razie zdejmij je (dobrym pomysłem byłoby również dodanie przełącznika klapkowego do łatwego odłączania baterii).

Zwróć uwagę, że powinieneś zbudować obwód kawałek po kawałku (sprawdź każdy stopień!) i na płytce stykowej przed przylutowaniem do płytki prototypowej. Pierwszym etapem do sprawdzenia jest wzmacniacz oprzyrządowania: podłącz wszystkie szyny (przylutuj w uchwytach baterii), Rg itp. i użyj oscyloskopu na bolcu wyjściowym. Na początek użyj generatora funkcyjnego z falą sinusoidalną 1Hz i amplitudą 5mV (lub najniższą, jaką osiągnie twój generator). Ma to na celu sprawdzenie, czy wzmacniacz oprzyrządowania działa prawidłowo, a Rg zapewnia docelowy zysk.

Następnie sprawdź filtr dolnoprzepustowy. Dodaj tę część obwodu i sprawdź przebieg: powinien wyglądać dokładnie tak samo, ale z mniej szumami (postrzępiony - patrz ostatnie dwa obrazy powyżej). Zbadajmy teraz końcowy wynik za pomocą oscyloskopu z elektrodami zamiast generatora funkcji…

Krok 7: Testowanie obwodu z człowiekiem

Testowanie obwodu z człowiekiem
Testowanie obwodu z człowiekiem
Testowanie obwodu z człowiekiem
Testowanie obwodu z człowiekiem
Testowanie obwodu z człowiekiem
Testowanie obwodu z człowiekiem

Ponownie umieść elektrody na lewej i prawej skroni i podłącz przewód uziemiający do elektrody na czole. Dopiero potem należy włożyć baterie - jeśli pojawi się mrowienie, NATYCHMIAST usunąć i ponownie sprawdzić połączenia!!! Teraz sprawdź zakres wartości, patrząc w lewo lub w prawo i dostosuj R1/R2 wzmacniacza nieodwracającego, jak wyjaśniono dwa kroki temu – pamiętaj, że docelowy zakres to 5 V! Zobacz zdjęcia powyżej, aby uzyskać uwagi na temat tego, na co należy zwrócić uwagę.

Kiedy jesteś zadowolony ze wszystkich wartości rezystorów, przylutuj wszystko do płyty prototypowej. Lutowanie nie jest bezwzględnie konieczne, ale zapewnia większą stabilność w porównaniu z prostymi połączeniami wciskanymi i eliminuje niepewność, że obwód nie działa po prostu dlatego, że nie został wystarczająco mocno wciśnięty w płytkę stykową.

Krok 8: Kod Arduino

Cały kod dołączony na dole tego kroku!

Teraz, gdy masz zakres 5 V, musisz upewnić się, że mieści się on w zakresie 0-5 V zamiast -1 V do 4 V itd. Podłącz uziemienie do pinu 3,3 V Arduino lub podłącz napięcie uziemienia (pomarańczowy przewód powyżej) do szyny uziemiającej, a następnie podłącz przewód z szyny uziemiającej do pinu GND Arduino (ma to na celu przesunięcie sygnału w górę lub w dół, aby znaleźć się w zakresie 0-5 V). Musisz się pobawić: nie zapomnij zbadać wyników, gdy nie masz pewności!

Teraz do kalibracji: chcesz, aby światło zmieniało kolory dla różnych pozycji oczu (patrząc daleko w lewo, a nie tak daleko w lewo…). W tym celu potrzebujesz wartości i zakresów: uruchom EOG-calibration-numbers.ino do Arduino ze wszystkim prawidłowo podłączonym (zakończ połączenia z Arduino i neopixelem zgodnie z moim schematem). Nie jest to konieczne, ale uruchom też kod bioe.py, który mam -- spowoduje to wyświetlenie pliku tekstowego na twoim pulpicie, dzięki czemu będziesz mógł zapisać wszystkie wartości, gdy patrzysz w lewo lub w prawo (kod Pythona został zaadaptowany z tego przykładu). Jak to zrobiłem, spójrz w lewo na 8 uderzeń, potem w prawo, potem w górę, potem w dół i powtórz, aby później uśrednić (patrz output_2.pdf dla jednego dziennika, który zachowałem). Naciśnij ctrl+C, aby wymusić zakończenie, gdy będziesz zadowolony. Używając tych wartości, możesz następnie dostosować zakresy animacji w moim kodzie BioE101_EOG-neopixel.ino. Dla mnie miałem animację tęczy, kiedy patrzyłem prosto przed siebie, niebieski dla skrajnego lewego, zielony dla lekko w lewo, fioletowy dla lekko w prawo i czerwony dla skrajnego prawego.

Krok 9: Przyszłe kroki

Voila; coś, co możesz kontrolować tylko za pomocą oczu. Jest wiele do optymalizacji, zanim trafi do szpitala, ale to na inny dzień: podstawowe pojęcia są teraz przynajmniej łatwiejsze do zrozumienia. Jedną rzeczą, do której chciałbym się cofnąć i zmienić, jest dostosowanie mojego wzmocnienia do 500 dla wzmacniacza pomiarowego: patrząc wstecz, to prawdopodobnie było za dużo, ponieważ mój sygnał później był już 2-4 V i miałem trudności z używaniem nieodwracającego wzmacniacz, aby idealnie dopasować mój zakres…

Trudno jest uzyskać spójność, ponieważ sygnał zmienia się TAK DUŻO w różnych warunkach:

  • inna osoba
  • warunki oświetleniowe
  • przygotowanie skóry (żele, mycie itp.)

ale mimo to jestem całkiem zadowolony z mojego ostatniego wideo dowodu działania (zrobionego o 3 nad ranem, ponieważ wtedy wszystko magicznie zaczyna działać).

Wiem, że wiele z tego samouczka może wydawać się mylące (tak, krzywa uczenia się też była dla mnie trudna), więc proszę, zadaj poniższe pytania, a postaram się odpowiedzieć. Cieszyć się!

Nietykalne wyzwanie
Nietykalne wyzwanie
Nietykalne wyzwanie
Nietykalne wyzwanie

Drugie miejsce w nietykalnym wyzwaniu

Zalecana: