My hopes with this repo are that people will be able to build upon this work, and start quantifying their biometrics.
- Put in instructions how to install the required Python packages to run the Python GUI. (as soon as I manage to install them myself, it's been 3 years since I did last time) - Remarkably hard
- Put in instructions how to build a biosignal aqusition device (the hardware), what parts are needed etc
- Put in wisdom about biosignals
- Put in example csv files, and put in my Matlab scripts I made to process them
I wrote my M.Sc. thesis in collaboration with SoundCloud, a company that creates an open platform that allows anyone to share and discover new music and audio. At the time, wearables were becoming increasingly available and ...
My M.Sc. thesis explored the relation between physiological signals and experienced musical emotions from a practical viewpoint. This was done in order to evaluate the feasibility of using physiological signals as input for music recommendations. For this purpose I conducted a study on 24 participants where their subjective and physiological measurements were recorded while they listened to self-selected musical stimuli. When I conducted the study, in January 2016, wearables on the market were not sparse, but their sensors however were very limited and their public API was not great. That's why, I built my own biosignal aquicsition device, to get full access to the raw data from sensors and to be able to determine the sampling frequency.
Atmel code is split into 3 files;
-
Main Code.ino: Is the main file. It reads digital inputs from buttons and writes measurement data to the LCD display. It also calculates temperature from raw data from the temperature sensor.
-
Interrupt.ino: Reads the analog inputs for Galvanic Skin Response (GSR) and pulse at specific time intervals. Calculates Interbeat Interval (IBI) as well.
-
AllSerialHandling.ino: Controls how the data is sent over the serial link to the Python GUI.
The Python GUI is split into 3 files;
-
AtmelPythonMainProgram.py: Is the main file. It builds the user interface and writes data to a CSV file.
-
Comunication.py: Controls the communication over serial link.
-
Globals.py: Global variables and debug tools.
To run the Python GUI for a biosignal acquisition device:
- Install pySerial + all the other Python packages that is remarkably hard to do
- Clone the project to your computer
- Navigate to the folder that contains the code for the Python GUI in the terminal:
- Run the program:
$ python AtmelPythonMainProgram.py

