Obsah:

Ovládání světel očima: 9 kroků (s obrázky)
Ovládání světel očima: 9 kroků (s obrázky)

Video: Ovládání světel očima: 9 kroků (s obrázky)

Video: Ovládání světel očima: 9 kroků (s obrázky)
Video: Tento Tvar Je NEMOŽNÝ Nakreslit!😱 2024, Červenec
Anonim
Ovládání světel očima
Ovládání světel očima
Ovládání světel očima
Ovládání světel očima

Tento semestr na vysoké škole jsem absolvoval kurz Instrumentation in Biomedicine, ve kterém jsem se naučil základy zpracování signálu pro lékařské aplikace. Pro závěrečný projekt třídy můj tým pracoval na technologii EOG (elektrooculografie). V podstatě elektrody připojené k něčím spánkům posílají rozdíl napětí (na základě korneo-sítnicového dipólu) do obvodu určeného k filtrování a zesílení signálu. Signál je přiveden do ADC (analogově digitální převodník-v mém případě ADC Arduino Uno) a slouží ke změně barev neopixelního šperku.

Tento tutoriál je pro mě způsob, jak zaznamenat to, co jsem se naučil, a také sdílet s běžným čtenářem, jak jsou signály izolovány z lidského těla (takže mějte na paměti: je plný podrobností navíc!). Tento obvod lze ve skutečnosti použít, s několika drobnými změnami, na elektrické impulsy motorických srdcí jako průběh EKG a mnoho dalšího! I když to rozhodně není zdaleka tak pokročilé a zdokonalené jako stroje, které byste našli v nemocnici, tato lampa s ovládáním polohy očí je skvělá pro počáteční porozumění a letmý pohled.

Poznámka: Nejsem odborník na zpracování signálu, takže pokud se vyskytnou nějaké chyby nebo pokud máte návrhy na vylepšení, dejte mi prosím vědět! Stále se mám co učit, takže komentáře jsou vítány. Také mnoho prací, na které odkazuji v odkazech v celém tomto tutoriálu, vyžaduje akademický přístup, který mám s laskavým svolením mé univerzity; předem se omlouvám těm, kteří nebudou mít přístup.

Krok 1: Materiály

  • protoboard
  • odpory (100, 1k, 10k, 33k, 1M + 0,5M)
  • kondenzátor (0,1uF)
  • přístrojový zesilovač (v mém případě INA111, ale existuje pár, který by měl fungovat relativně dobře)
  • operační zesilovač (jakýkoli - náhodou jsem měl LM324N)
  • neopixel (funguje, ale použil jsem drahokam)
  • 2x baterie 9V
  • Zásuvky 9V baterie x2
  • pevné gelové elektrody (výběr elektrod je probrán v kroku 5)
  • potenciometr
  • izolovaný drát
  • odizolovače drátu
  • páječka + pájka
  • krokosvorky (s připojenými dráty - v případě potřeby některé připájejte)
  • horké lepidlo (ke stabilizaci drátů, které by byly ohnuty tam a zpět)
  • Arduino (téměř všechno funguje, ale použil jsem Arduino Uno)

VELMI DOPORUČUJI: osciloskop, multimetr a generátor funkcí. Sondujte své výstupy, než abyste se spoléhali pouze na mé hodnoty odporu!

Krok 2: Psychologické pozadí a potřeba obvodu

Psychologické pozadí a potřeba obvodu
Psychologické pozadí a potřeba obvodu

Rychlé odmítnutí odpovědnosti: V žádném případě nejsem lékařský odborník v této oblasti, ale to, co jsem se naučil ve třídě/z Googlingu, jsem sestavil a zjednodušil níže, s odkazy na další čtení, pokud chcete. Tento odkaz je také zdaleka nejlepším přehledem předmětu, který jsem našel - zahrnuje alternativní techniky.

EOG (elektro-okulografie) pracuje na corneo-retinal dipólu. Rohovka (přední část oka) je mírně pozitivně nabitá a sítnice (zadní část oka) mírně negativně nabitá. Když na spánky nanesete elektrody a uzemníte si obvod na čelo (pomůže to stabilizovat hodnoty a zbavit se nějakého rušení 60 Hz), můžete u horizontálních pohybů očí změřit přibližně ~ 1-10 mV napěťové rozdíly (viz obrázek výše). Pro vertikální pohyby očí místo toho umístěte elektrody nad a pod oko. V tomto článku si dobře přečtěte, jak tělo interaguje s elektřinou - skvělé informace o impedanci kůže atd. EOG se běžně používají k diagnostice oftalmologických onemocnění, jako je šedý zákal, refrakční chyby nebo makulární degenerace. Existují také aplikace v robotice ovládané okem, ve kterých lze jednoduché úkoly provádět pouhým pohybem očí.

Pro čtení těchto signálů, tj. Pro výpočet rozdílu napětí mezi elektrodami, začleníme do našeho obvodu důležitý čip nazývaný přístrojový zesilovač. Tento přístrojový zesilovač se skládá z napěťových sledovačů, neinvertujícího zesilovače a diferenciálního zesilovače. Pokud toho o operačních zesilovačích moc nevíte, přečtěte si to prosím pro nouzový kurz - v zásadě odebírají vstupní napětí, upravují jeho měřítko a pomocí napájecích kolejnic vydávají výsledné napětí. Integrace všech rezistorů mezi jednotlivými fázemi pomáhá s chybami tolerance: normálně mají rezistory v hodnotách toleranci 5-10% a pravidelný obvod (není plně integrován v přístrojovém zesilovači) by u dobrého CMMR silně spoléhal na přesnost (viz další krok). Napěťové sledovače jsou pro vysokou vstupní impedanci (popsáno výše v odstavci - hlavní pro prevenci poškození pacienta), neinvertující zesilovač má zajistit vysoký zisk signálu (více o zesílení v dalším kroku) a diferenciální zesilovač převezme rozdíl mezi vstupy (odečte hodnoty z elektrod). Ty jsou navrženy tak, aby potlačily co nejvíce běžného šumu/rušení (více o zpracování signálu viz další krok) pro biomedicínské signály, které jsou plné cizích artefaktů.

Elektrody čelí určité impedanci pokožky, protože tkáně a tuk vaší pokožky brání přímému měření napětí, což vede k potřebě zesílení signálu a filtrování. Zde, zde a zde jsou některé články, ve kterých se vědci pokusili kvantifikovat tuto impedanci. Tato fyziologická veličina je běžně modelována jako odpor 51 kOhm paralelně s kondenzátorem 47 nF, i když existuje mnoho variací a kombinací. Kůže na různých místech může mít různé impedance, zvláště když vezmete v úvahu různé tloušťky a množství sousedního svalu. Impedance se také mění s tím, jak dobře je vaše pokožka připravena na elektrody: Obecně se doporučuje důkladné čištění mýdlem a vodou, aby byla zajištěna vynikající přilnavost a konzistence, a existují dokonce i speciální gely pro elektrody, pokud opravdu toužíte po dokonalosti. Jednou klíčovou poznámkou je, že impedance se mění s frekvencí (charakteristika kondenzátorů), takže k předvídání impedance potřebujete znát šířku pásma signálu. A ano, odhad impedance JE důležitý pro shodu šumu - další informace o tom najdete v dalším kroku.

Krok 3: Zpracování signálu: Proč a jak?

Zpracování signálu: Proč a jak?
Zpracování signálu: Proč a jak?

Proč tedy nemůžete použít rozdíl napětí 1-10 mV jako okamžitý výstup pro ovládání LED? Existuje mnoho důvodů pro filtrování a zesílení signálů:

  • Mnoho ADC (analogově-digitální převodníky-vezměte svůj analogový vstup a digitalizujte je pro čtení a ukládání dat do počítače) jednoduše nedokáže detekovat tak malé změny. Například ADC Arduino Uno je konkrétně 10bitový ADC s výstupem 5V, což znamená, že mapuje vstupní napětí 0-5V (hodnoty mimo rozsah budou „kolejnice“, což znamená, že nižší hodnoty budou čteny jako 0V a vyšší hodnoty načteny jako 5V) na celočíselné hodnoty mezi 0 a 1023. 10mV je v tomto rozsahu 5V tak malé, takže pokud můžete zesílit svůj signál na plný rozsah 5V, malé změny budou snadněji detekovatelné, protože se projeví většími kvantitativními změnami (5mV změna na 10mV oproti 2V změna na 4V). Představte si to jako malý obrázek na počítači: detaily mohou být dokonale definovány vašimi pixely, ale nebudete moci rozlišovat tvary, pokud obrázek nerozbalíte.

    Všimněte si toho, že mít více bitů pro váš ADC je lepší, protože můžete minimalizovat kvantizační šum z převádění spojitého signálu na diskrétní, digitalizované hodnoty. Chcete -li vypočítat, kolik bitů potřebujete pro ~ 96% retenci vstupního SNR, použijte jako pravidlo N = SNR (v dB)/6. Také byste chtěli mít na paměti svou peněženku: pokud chcete více bitů, musíte být ochotni vydělat více peněz

  • Hluk a rušení (šum = náhodné artefakty, díky nimž jsou vaše signály zubaté místo hladkých vs interference = nerandomní, sinusové artefakty ze sousedních signálů z rádiových vln atd.) Sužují všechny signály měřené z každodenního života.

    • Nejslavnější je rušení 60 Hz (50 Hz, pokud jste v Evropě, a žádný v Rusku, protože používají stejnosměrný proud na rozdíl od střídavého proudu pro napájení ze zásuvky …), kterému se říká užitná frekvence ze střídavých elektromagnetických polí napájecích zásuvek. Elektrická vedení přenášejí střídavé vysoké napětí z elektrických generátorů do obytných oblastí, kde transformátory snižují napětí na standardní ~ 120 V v amerických elektrických zásuvkách. Střídavé napětí vede k této konstantní lázni rušení 60 Hz v našem okolí, které interferuje se všemi typy signálů a je třeba jej odfiltrovat.
    • Rušení 60 Hz se běžně nazývá rušení běžného režimu, protože se objevuje v obou vašich vstupech (+ a -) pro operační zesilovače. Operační zesilovače nyní mají něco, co se nazývá poměr odmítnutí společného režimu (CMRR), aby se snížily artefakty běžného režimu, ale (opravte mě, pokud se mýlím!) To je dobré hlavně pro zvuky běžného režimu (náhodný: šum místo nerandomního: rušení). Abyste se zbavili 60 Hz, lze filtry bandstop použít k jejich selektivnímu odstranění z frekvenčního spektra, ale pak také riskujete odebrání skutečných dat. V nejlepším případě můžete použít nízkoprůchodový filtr pouze k udržení rozsahu frekvencí nižších než 60 Hz, takže vše s vyššími frekvencemi bude odfiltrováno. To je to, co jsem udělal pro EOG: očekávaná šířka pásma mého signálu byla 0-10 Hz (zanedbání rychlých pohybů očí-v naší zjednodušené verzi se tím nechtělo zabývat), takže jsem odstranil frekvence větší než 10 Hz pomocí low pass filtru.

      • 60 Hz může poškodit naše signály prostřednictvím kapacitní vazby a indukční vazby. Kapacitní vazba (zde načtená na kondenzátorech) nastává, když vzduch funguje jako dielektrikum pro vedení střídavých signálů mezi sousedními obvody. Indukční vazba pochází z Faradayova zákona, když běží proud v magnetickém poli. Existuje spousta triků, jak překonat spojování: uzemněný štít můžete použít například jako Faradayovu klec. Zkroucení/splétání vodičů, je -li to možné, zmenšuje plochu, která může interferovat s indukční vazbou. Zkrácení vodičů a zmenšení celkové velikosti vašeho obvodu má také stejný účinek ze stejného důvodu. Spoléhání se na napájení baterií pro kolejnice operačního zesilovače na rozdíl od připojení k elektrické zásuvce také pomáhá, protože baterie poskytují stejnosměrný zdroj bez sinusového kmitání. Přečtěte si mnohem více zde!
      • Nízkoprůchodové filtry také zbavují velkého množství šumu, protože náhodný šum je reprezentován vysokými frekvencemi. Mnoho šumů je bílého šumu, což znamená, že šum je přítomen pro všechny frekvence, takže omezení šířky pásma signálu co nejvíce pomáhá omezit, kolik hluku je ve vašem signálu přítomno.

        Některé filtry s nízkým průchodem se nazývají filtry vyhlazující, protože zabraňují aliasingu: když jsou vzorky sinusoidů vzorkovány, mohou být detekovány s jinou frekvencí, než ve skutečnosti jsou. Vždy byste měli pamatovat na Nyquistovu vzorkovací větu (vzorkování signálů na 2x vyšší frekvenci: pro očekávanou sinusovou vlnu 1 Hz atd. Potřebujete vzorkovací frekvenci> 2 Hz). V tomto případě EOG jsem se nemusel starat o Nyquist, protože se očekávalo, že můj signál bude hlavně v rozsahu 10 Hz, a moje vzorky Arduino ADC na 10 kHz - více než dostatečně rychle, abych stihl všechno

    • Existují také malé triky, jak se zbavit hluku. Jedním z nich je použít hvězdnou zem, aby všechny části vašich obvodů měly přesně stejnou referenci. Jinak to, čemu jedna část říká „uzemnění“, se může od jiné části lišit kvůli mírnému odporu vodičů, což se sčítá v nesrovnalostech. Pájení na protoboard místo lepení na prkénka také snižuje určitý hluk a vytváří bezpečná spojení, kterým můžete na rozdíl od vkládání lisováním přizpůsobit.

Existuje spousta dalších způsobů, jak potlačit hluk a rušení (viz zde a zde), ale můžete se zúčastnit kurzu nebo na Googlu, kde získáte další informace: přejdeme k aktuálnímu okruhu!

Krok 4: Jak obvod funguje

Jak obvod funguje
Jak obvod funguje

Nenechte se zastrašit schématem zapojení: zde je hrubý rozpis toho, jak vše funguje: (některá vysvětlení najdete také v předchozím kroku)

  • Zcela vlevo máme elektrody. Jedna je připevněna k levému spánku, další k pravému spánku a třetí elektroda je uzemněna na čele. Toto uzemnění stabilizuje signál, takže dochází k menšímu driftu, a také se zbaví některého rušení 60 Hz.
  • Další je přístrojový zesilovač. Vraťte se o dva kroky zpět a vysvětlete, co dělá pro generování rozdílu napětí. Rovnice pro změnu zesílení zesilovače je na straně 7 datového listu [G = 1+ (50 kOhm/Rg), kde je Rg připojen na piny 1 a 8 zesilovače]. Pro svůj obvod jsem upravil na zisk 500 pomocí Rg = 100Ohm.
  • Poté, co přístrojový zesilovač vydá 500x zesílený rozdíl napětí, je zde RC nízkoprůchodový filtr prvního řádu, který se skládá z rezistoru R_filter a kondenzátoru C_filter. Nízkopásmový filtr brání vyhlazování (to pro mě není problém, protože podle Nyquista potřebuji vzorkovat alespoň 20 Hz pro očekávanou šířku pásma 10 Hz a vzorky Arduino ADC na 10 kHz-více než dost) a také snižuje hluk na všech frekvencích, které nepotřebuji. RC systém funguje, protože kondenzátory umožňují snadné procházení vysokých frekvencí, ale brání nižším frekvencím (impedance Z = 1/(2*pi*f)), a vytvoření děliče napětí s napětím na kondenzátoru má za následek filtr, který umožňuje pouze nižší frekvence až [cutoff pro 3dB intenzitu řídí vzorec f_c = 1/(2*pi*RC)]. Upravil jsem hodnoty R a C svého filtru tak, aby odřízly signály vyšší než ~ 10 Hz, protože v tomto rozsahu se očekává biologický signál pro EOG. Původně jsem přerušil po 20 Hz, ale po experimentování fungovalo 10 Hz stejně dobře, takže jsem šel s menší šířkou pásma (menší šířka pásma je lepší pro případ potřeby odstřihnout vše zbytečné).
  • S tímto filtrovaným signálem jsem změřil výstup osciloskopem, abych viděl svůj rozsah hodnot z pohledu doleva a doprava (dva extrémy mého rozsahu). To mě dostalo asi na 2-4V (protože zisk přístrojového zesilovače byl 500x pro rozsah ~ 4-8mV), když je můj cíl 5V (plný rozsah Arduino ADC). Tento rozsah se hodně lišil (podle toho, jak dobře si člověk předem umyl kůži atd.), Takže jsem nechtěl mít tolik zisku s mým druhým neinvertujícím zesilovačem. Nakonec jsem to upravil tak, aby měl zisk pouze asi 1,3 (upravte R1 a R2 v obvodu, protože zisk zesilovače = 1+R2/R1). Budete muset nastavit vlastní výkon a odtud se přizpůsobit, abyste nepřekročili 5V! Nepoužívejte jen moje hodnoty odporu.
  • Tento signál lze nyní přenést do analogového pinu Arduino pro čtení, ALE Arduino ADC nepřijímá negativní vstupy! Budete muset posunout signál nahoru tak, aby byl rozsah 0-5V oproti -2,5V až 2,5V. Jedním ze způsobů, jak to vyřešit, je připojit uzemnění vaší desky plošných spojů ke kolíku 3,3 V Arduina: toto posune váš signál nahoru o 3,3 V (více než 2,5 V optimální, ale funguje to). Můj rozsah byl opravdu nevyrovnaný, a tak jsem navrhl proměnné ofsetové napětí: tak jsem mohl otáčet potenciometrem tak, aby byl rozsah vycentrován na 0-5V. Je to v podstatě variabilní napěťový dělič využívající napájecí lišty +/- 9V, takže jsem mohl připojit obvod obvodu na libovolnou hodnotu od -9 do 9V a posunout tak svůj signál nahoru nebo dolů o 9V.

Krok 5: Výběr komponent a hodnot

Vybírání komponent a hodnot
Vybírání komponent a hodnot

Když vysvětlíme obvod, jak vybereme, který z nich (elektroda, operační zesilovač) použijeme?

  • Jako senzor mají pevné gelové elektrody vysokou vstupní impedanci a nízkou výstupní impedanci: to v podstatě znamená, že proud může snadno procházet po proudu do zbytku obvodu (nízká výstupní impedance), ale bude mít problém procházet proti proudu zpět do vašich spánků (vysoká vstupní impedance). Tím se zabrání tomu, aby byl uživatel zraněn vysokými proudy nebo napětím ve zbytku vašeho obvodu; ve skutečnosti má mnoho systémů něco pro jistotu pro další ochranu něco, co se nazývá rezistor ochrany pacienta.

    • Existuje mnoho různých typů elektrod. Většina lidí navrhuje pevné gelové elektrody Ag/AgCl pro použití v aplikacích EKG/EOG/atd. S ohledem na to je třeba vyhledat zdrojový odpor těchto elektrod (pro mé poznámky o impedanci kůže přejděte o dva kroky zpět) a přiřaďte jej k odporu proti šumu (šumové napětí ve V/sqrt (Hz) dělené šumovým proudem v A/sqrt (Hz) - viz datové listy operačních zesilovačů) vašich operačních zesilovačů - tak si vyberete správný přístrojový zesilovač pro vaše zařízení. Tomu se říká shoda šumu a vysvětlení, proč odpovídá přizpůsobení zdroje odporu Rs odolnosti proti hluku Rn, najdete online jako zde. Pro můj INA111, který jsem si vybral, lze Rn vypočítat pomocí napětí šumu a proudu šumu v datovém listu (snímek obrazovky výše).

      • Existuje HODNOTA článků hodnotících výkon elektrod a žádná elektroda není nejlepší pro všechny účely: zkuste například zde. Impedance se také mění pro různé šířky pásma, jak se odráží v datových listech operačního zesilovače (některé datové listy budou mít křivky nebo tabulky na různých frekvencích). Proveďte svůj průzkum, ale nezapomeňte na svou peněženku. Je příjemné vědět, které elektrody/operační zesilovače jsou nejlepší, ale je to k ničemu, pokud si to nemůžete dovolit. K testování budete potřebovat ~ 50 elektrod, nikoli pouze 3 k jednorázovému použití.

        • Pro optimální shodu šumu by měla nejen Rn ~ = Rs: chcete, aby šumové napětí * šumový proud (Pn) byl co nejnižší. To je považováno za důležitější než vytváření Rn ~ = Rs, protože v případě potřeby můžete upravit Rs a Rn pomocí transformátorů.

          Upozornění s transformátory (opravte mě, pokud se mýlíte): mohou být poněkud objemné, a proto nejsou optimální pro zařízení, která musí být malá. Také vytvářejí teplo, takže jsou nutné chladiče nebo vynikající ventilace

        • Shoda šumu pouze s vaší první počáteční amp; druhý zesilovač tolik neovlivní, takže každý operační zesilovač to udělá.

Krok 6: Budování obvodu

Budování okruhu
Budování okruhu
Budování okruhu
Budování okruhu
Budování okruhu
Budování okruhu

K vytvoření obvodu použijte výše zmražený diagram (druhá kopie popisuje, na co každá část odkazuje ve schématu zapojení z předchozího kroku). Pokud potřebujete pomoc s identifikací LED v diagramu, použijte tuto kalkulačku barevného kódu rezistoru, ale Rg přístrojového zesilovače je 100Ohm, R_filter je 1,5MOhm, C_filter je 0,1uF, R1 neinvertujícího zesilovače je 10kOhm, R2 je 33 kOhm a odpor pro potenciometr je 1 kOhm (potenciometr se pohybuje od 0 do 20 kOhm). Pro úpravu zisků nezapomeňte podle potřeby změnit hodnoty odporu!

Upravit: v odsazené části země došlo k chybě. Odstraňte levý černý vodič. Rezistor by měl být připojen červeným vodičem k napájecí liště, jak je znázorněno na obrázku, ale také k druhému kolíku, nikoli prvnímu, potenciometru. První pin potenciometru by měl být připojen k 5V pinu Arduina. Oranžový vodič, který je offsetovou zemí, by měl být připojen k druhému kolíku, ne k prvnímu.

Hodně jsem diskutoval o offsetové zemi. Na schématu vidíte, že uzemnění Arduina je zobrazeno jako připojené k zemi nepájivého pole. To je ten scénář, kdy nepotřebujete posunout půdu pod nohama. Pokud je váš signál mimo dosah a potřebujete posunout uzemnění, zkuste nejprve připojit uzemnění Arduino k 3,3V pinu Arduina a sledovat váš signál. Jinak zkuste zapojit oranžový vodič v nastaveném potenciometru (offsetová zem) na pin GND Arduina.

BEZPEČNOSTNÍ UPOZORNĚNÍ: NENECHÁVEJTE baterie při pájení a NEDÁVEJTE ani nepájejte baterie zpět. Váš obvod začne kouřit, kondenzátory prasknou a může dojít i k poškození prkénka. Zpravidla používejte baterie pouze tehdy, když chcete použít obvod; v opačném případě je sundejte (také by bylo vhodné přidat otočný přepínač pro snadné odpojení baterií).

Před pájením na protoboard byste měli obvod sestavit kus po kousku (zkontrolovat každý stupeň!) A na prkénku. První fází kontroly je přístrojový zesilovač: připojte všechny kolejnice (pájku v držácích baterií), Rg atd. A na výstupním kolíku použijte osciloskop. Pro začátek použijte funkční generátor se sinusovou vlnou 1 Hz s amplitudou 5 mV (nebo nejnižší, kam váš generátor dosáhne). To je jen pro kontrolu, zda přístrojový zesilovač funguje správně a vaše Rg poskytuje váš cílový zisk.

Dále zkontrolujte dolní propust. Přidejte tuto část obvodu a zkontrolujte tvar vlny: měl by vypadat přesně stejně, ale s menším šumem (zubatý - viz poslední dva obrázky výše). Pojďme nyní sondovat váš konečný výstup osciloskopem s vašimi elektrodami místo generátoru funkcí…

Krok 7: Testování obvodu s člověkem

Testovací obvod s člověkem
Testovací obvod s člověkem
Testovací obvod s člověkem
Testovací obvod s člověkem
Testovací obvod s člověkem
Testovací obvod s člověkem

Znovu vložte elektrody do levého a pravého spánku a připojte uzemňovací vodič k elektrodě na čele. Teprve poté byste měli přidat baterie - pokud dojde k mravenčení, OKAMŽITĚ odstraňte a znovu zkontrolujte připojení !!! Nyní zkontrolujte svůj rozsah hodnot, když se podíváte doleva vs. doprava a upravte R1/R2 neinvertujícího zesilovače, jak bylo vysvětleno před dvěma kroky-pamatujte, že cílem je rozsah 5V! Na obrázcích výše najdete poznámky, na co si dát pozor.

Když jste spokojeni se všemi hodnotami odporu, pájejte vše na protoboard. Pájení není nezbytně nutné, ale poskytuje větší stabilitu oproti jednoduchým lisovaným spojům a odstraňuje nejistotu, že obvod nefunguje jednoduše proto, že jste je dostatečně tvrdě nenatlačili na prkénko.

Krok 8: Arduino kód

Veškerý kód je připojen v dolní části tohoto kroku!

Nyní, když máte rozsah 5V, musíte se ujistit, že spadá do 0-5V místo -1V až 4V atd. Buď připojte uzemnění na 3,3V pin Arduina nebo připojte offsetové zemní napětí (oranžový vodič výše) na zemnící lištu a poté připojte vodič ze zemnící lišty ke kolíku GND Arduina (toto má posunout signál nahoru nebo dolů, takže spadáte do rozsahu 0-5V). Budete si muset pohrát: nezapomeňte rozsah svého výstupu, kdykoli si nejste jisti!

Nyní ke kalibraci: chcete, aby světlo měnilo barvy pro různé polohy očí (při pohledu daleko vlevo vs. ne úplně vlevo..). K tomu potřebujete hodnoty a rozsahy: spusťte EOG-calibration-numbers.ino na Arduino se vším, co je správně připojeno (dokončete připojení k Arduinu a neopixelu podle mého fritzovacího diagramu). Není to super nutné, ale také spustit kód bioe.py, který mám - tím se na váš počítač vygeneruje textový soubor, takže můžete zaznamenávat všechny hodnoty, jak se díváte doleva nebo doprava (kód pythonu byl upraven z tohoto příkladu). Jak jsem to udělal, podívejte se doleva na 8 úderů, pak doprava, pak nahoru, dolů a opakujte pro zprůměrování později (viz výstup_2.pdf pro jeden protokol, který jsem uchovával). Stisknutím Ctrl+C vynutíte ukončení, až budete spokojeni. Pomocí těchto hodnot pak můžete upravit rozsahy animací v mém kódu BioE101_EOG-neopixel.ino. Když jsem se díval přímo před sebe, měl jsem duhovou animaci, modrou zcela vlevo, zelenou mírně vlevo, fialovou mírně vpravo a červenou zcela vpravo.

Krok 9: Budoucí kroky

Voila; něco, co můžete ovládat pouhýma očima. Existuje spousta věcí, které je třeba optimalizovat, než se dostane do nemocnice, ale to je na další den: základní pojmy jsou nyní přinejmenším snáze pochopitelné. Jedna věc, kterou bych se chtěl vrátit a změnit, je upravit svůj zisk na 500 pro přístrojový zesilovač: při pohledu zpět to bylo pravděpodobně příliš mnoho, protože můj signál poté byl již 2-4V a měl jsem potíže s používáním neinvertujícího zesilovač pro dokonalé nastavení mého dosahu …

Je těžké dosáhnout konzistence, protože signál se MNOHEM mění za různých podmínek:

  • jiný člověk
  • světelné podmínky
  • příprava pokožky (gely, mytí atd.)

ale i tak jsem docela spokojený s mým konečným video důkazem výkonu (pořízeno ve 3:00, protože tehdy všechno magicky začíná fungovat).

Vím, že spousta tohoto tutoriálu se může zdát matoucí (ano, křivka učení byla pro mě také obtížná), takže se můžete klidně zeptat níže a já se pokusím odpovědět. Užívat si!

Nedotknutelná výzva
Nedotknutelná výzva
Nedotknutelná výzva
Nedotknutelná výzva

Runner Up in the Untouchable Challenge

Doporučuje: