Okulograf

18.10.2021

Okulograf je zařízení na snímání pohybu očí. Toto je velmi jednoduchá verze okulografu, založená na snímání elektrické aktivity okohybných svalů.

Zařízení není vhodné jako zdravotní pomůcka. Je určeno primárně ke vzdělávacím nebo experimentálním účelům. 

Seznam dílů:

- 3D tištěné díly (naleznete zde na Thingiverse)
- operační zesilovač AD620AN
- rezistor 47 Ohm
- ESP32 Wroom (development board)
- PCB (univerzální nebo vyleptaný)
- 2 ks nepolarizovatelné elektrody stříbro/chlorid stříbrný
- laserová dioda bod
- LiPol baterie 200 až 300 mAh
- vypínač
- vodiče


Můžete nás podpořit a sadu elektroniky zakoupit v našem obchodu

My na oplátku podpoříme Vás a tak získáte nejen všechny potřebné součástky (včetně druhého ESP 32 pro bezdrátový přenos dat), ale také kompletní a již nahraný firmware! Současně získáte jednoduchý software, který Vám umožní lépe zkoumat výstupy okulografu.


Zapojení

Mějte na paměti, že zařízení je elektrodami připojeno přímo k vaší hlavě. S ohledem na vaše bezpečí proto nikdy při používání nepropojujte okulograf s počítačem prostřednictvím USB kabelu. Hrozil by Vám smrtelný úraz elektrickým proudem.

Zapojení komponent proveďte podle následujícího schéma:

3D tištěné díly sestavte podle následujícího schéma:


Firmware

Firmware je určen pro čtení analogového signálu a jeho odeslání k dalšímu zpracování. Níže uvedený základ je třeba doplnit o bezdrátový přenos dat (BT, WiFi).

int input [200]; // datové pole pro kalibrační měření
int average = 0; 
float eog = 0;

void setup () {

Serial.begin(115200);
pinMode(36, INPUT);
pinMode(19, OUTPUT);

digitalWrite(19, HIGH); //Zapnout laser pro kalibraci

//Laser slouží jako projektor bodu do středu pohledu, na který je třeba po 
//dobu kalibrace zaměřit pohled

for (int i = 0; i < 200; i++) {
       input[i] = analogRead(36);
       average += input[i];
       delay(15);
}

average = average/200;

Serial.print("kalibracni_hodnota: ");
Serial.println(average);

digitalWrite(19, LOW);//Vypnout laser po kalibraci

}

void loop () {

eog = analogRead(36);
eog = eog - average;
Serial.println(eog);
delay(15);

}