Experimentations with Brain-to-Sculpture communication and EEG actuated robotic sculptures
Project funded by DeepCA (Norwegian Research Council, grant agreement 286558) and FeLT (Norwegian Artistic Research Programme).
- README.md This file
- notebook.ipynb Showcase and notebook over the project
- code
- requirements.txt Python libraries needed, python 3.8 used
- bci
- cyton_get_data.py Simple test with brainflow library for streaming EEG data to computer and getting EEG board information
- lslStreamTest.py Tests for LSL stream, forked from https://github.com/OpenBCI/OpenBCI_GUI/tree/master/Networking-Test-Kit
- brainflow Brainflow library. Not needed with 'pip install brainflow'
- robot_control
- osc_send.py Testing OSC messaging from computer via clt
- osc_receive.py Testing reception of OSC messages
- redboard.py Redboard library. Not needed with 'pip install redboard'
- redboard_servo_control_test.py Stand-alone cli script for testing motor control
- redboard_servo_control.py Simple functions for redboard library for moving a 2-wheeled robot car based on received OSC messages
- rpimotorlib_motor_control.py Unfinished script for motor control with RpiMotorLib library
- rpimotorlib_stepper_control.py Unfinished script for stepper control with RpiMotorLib library
- machine_learning
- get_npydata.py Saves LSL stream as 3-dimensional numpy array ( [stream][channels][amplitude] )
- CytonUserSettings.json Just for reference: Settings used in OpenBCI GUI
- data Numpy arrays with FFT stream from EEG recordings saved as binary in [Unix time].npy files
- testing_and_making_data.py Saves LSL stream to /data, inferes stream towards model, and sends result over OSC. Forked from https://github.com/Sentdex/BCI/
- accuracies.csv Record over accuracy of models, generated by testing_and_making_data.py
- traning.py Trains data on 1D Convolutional network, saves models for each epoch in /new_models
- new_models
- validation_data Validation data excluded from /data
- analysis.py Tests model by comparing predicted action vs action thought, and produces a confusion matrix
- models Stored best-of models
- img Images used in jupyter notebook
- LICENSE.md Copyright information
MIT License Copyright © 2021 Daniel Slåttnes