All Projects → olirehacek → MindSetUWP

olirehacek / MindSetUWP

Licence: other
NeuroSky MindWave & MindWave Mobile EEG Headset library for Windows 10 Universal applications

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to MindSetUWP

Windowscompositionsamples
Windows Composition Samples the place for getting the latest code samples and demos using Windows.UI.Xaml and Windows.UI.Composition to make beautiful Universal Windows Platform applications.
Stars: ✭ 922 (+6485.71%)
Mutual labels:  uwp, uwp-apps
Imbmw
BMW iBus .NET MF SDK and hardware
Stars: ✭ 50 (+257.14%)
Mutual labels:  uwp, bluetooth
Xaml Controls Gallery
This app demonstrates the controls available in WinUI and the Fluent Design System.
Stars: ✭ 882 (+6200%)
Mutual labels:  uwp, uwp-apps
Windowscommunitytoolkit
The Windows Community Toolkit is a collection of helpers, extensions, and custom controls. It simplifies and demonstrates common developer tasks building UWP and .NET apps for Windows 10. The toolkit is part of the .NET Foundation.
Stars: ✭ 4,654 (+33142.86%)
Mutual labels:  uwp, uwp-apps
Ble.net
Cross-platform Bluetooth Low Energy (BLE) library for Android, iOS, and UWP
Stars: ✭ 137 (+878.57%)
Mutual labels:  uwp, bluetooth
Xamlstyler
Visual Studio extension to help format your XAML source code
Stars: ✭ 553 (+3850%)
Mutual labels:  uwp, uwp-apps
Uwp App Launcher Mobile
[Open Source] It's like the iOS and Android Home Screens but for Windows 10 (Phones).
Stars: ✭ 47 (+235.71%)
Mutual labels:  uwp, uwp-apps
hookwin10calc
Reverse engineered Windows 10 Calculator.exe (UWP application) hacker. 한글/漢文을 배운 윈도우 계산기 패치.
Stars: ✭ 19 (+35.71%)
Mutual labels:  uwp, uwp-apps
Imageglass Preview
🏔 A modern, versatile image viewer (preview)
Stars: ✭ 72 (+414.29%)
Mutual labels:  uwp, uwp-apps
Mahapps.metro.iconpacks
Awesome icon packs for WPF and UWP in one library
Stars: ✭ 1,157 (+8164.29%)
Mutual labels:  uwp, uwp-apps
Pixivfs Uwp
A Pixiv client for UWP users
Stars: ✭ 428 (+2957.14%)
Mutual labels:  uwp, uwp-apps
Codehub
A UWP GitHub Client
Stars: ✭ 162 (+1057.14%)
Mutual labels:  uwp, uwp-apps
Xamlflair
XamlFlair is an animation library for UWP, WPF, and Uno, built to facilitate Xaml animations using only attached properties.
Stars: ✭ 362 (+2485.71%)
Mutual labels:  uwp, uwp-apps
Uwphook
🔗 Add your Windows Store or UWP games to Steam
Stars: ✭ 566 (+3942.86%)
Mutual labels:  uwp, uwp-apps
BleLab
Bluetooth LE Lab - UWP application for interaction with BLE GATT devices
Stars: ✭ 68 (+385.71%)
Mutual labels:  uwp, bluetooth
Githubxamarin
GithubXamarin(GitIt) is a cross-platform application for https://github.com which is built using Xamarin.
Stars: ✭ 1,022 (+7200%)
Mutual labels:  uwp, uwp-apps
WindowsCommunityToolkit
The Windows Community Toolkit is a collection of helpers, extensions, and custom controls. It simplifies and demonstrates common developer tasks building UWP and .NET apps for Windows 10 and Windows 11. The toolkit is part of the .NET Foundation.
Stars: ✭ 4,934 (+35142.86%)
Mutual labels:  uwp, uwp-apps
Rx.Book
High level asynchronous programming with Reactive Extensions
Stars: ✭ 67 (+378.57%)
Mutual labels:  uwp, uwp-apps
Ui For Uwp
This repo contains the source code for Telerik UI for Universal Windows Platform (UWP), which includes 20+ UI controls for developers building UWP applications.
Stars: ✭ 1,077 (+7592.86%)
Mutual labels:  uwp, uwp-apps
Kanban Tasker
A simple kanban board for Windows 10 Universal Windows Platform (UWP) written to manage tasks and create a simple and easy workflow for each board
Stars: ✭ 140 (+900%)
Mutual labels:  uwp, uwp-apps

Logo

Endorsed by NeuroSky @ http://developer.neurosky.com/features/mindsetuwp/

MindWaveUWP makes your universal Windows apps smarter and helps them to read user brainwave data using Bluetooth EEG sensors. The library is specifically designed to be very easy, fast and deployable with minimal alterations of your already working code. With only 2 extra lines of code your application can be ready to recieve and process users brainwave data. The library does not work only with real-time EEG readings, but also provides built-in data recording for long-term data analysis..

Library is designed for use with Bluetooth equipped MindWave Mobile EEG headset. This device is the culmination of decades of EEG biosensor technology research—all in one easy-to-control, wearable package. As the most affordable brainwave-reading EEG headset.

Changelog

[1-30-2016] Updated to Windows 10 SDK version 10.0.10586 (Latest)

[1-12-2016] The library now includes recording of the EEG data.

[18-20-2015] Updated to Windows 10 SDK version 10.0.10240

Implementing MindSetUWP into your application

private MindSetConnection MyHeadset = new MindSetConnection()

Establishing Bluetooth connection

Now we can use a method "ConnectBluetooth" followed by suppling the bluetooth name of the (In most cases the name is "MindWave Mobile") to initiate the packet connection to the EEG headset - that is all, easy as that - now we are recieving the formatted EEG readings from the headset.

private void EstConnBtn_Click(object sender, RoutedEventArgs e)
{
MyHeadset.ConnectBluetooth("MindWave Mobile");
}

EEG Data

MindSet headset transmits ThinkGear Data Values, encoded within ThinkGearPackets, as a serial stream of bytes over Bluetooth via a standard Bluetooth Serial Port Profile (SPP). MindSetUWP library process all of this packets and manages bluetooth connection with headset for you, so you are no longer required to do any extra work.

All of the variables in the table represent particular EEG data recieved from the MindWave headset. They are publicly acessible variables in the instance you created and connected to a headset using "RealtimeData" class :

private void ShowDataBtn_Click(object sender, RoutedEventArgs e)
{
Debug.Write(MyHeadset.RealtimeData.AlphaHigh); 
Debug.Write(MyHeadset.RealtimeData.AlphaLow); //WritesAlphaLow data into debug console.
}

Handling events

Library offers multiple events that you can use. We need to work with StatusUpdateHandler that is included in library to handle these events and project them into your application.

MyHeadset.Connected += newMindSetConnection.StatusUpdateHandler(OnConnected);
MyHeadset.NoHeadset += newMindSetConnection.StatusUpdateHandler(NoHeadsetFound);

Recording EEG activity

Recording

Library also includes internal recording of the packets. Using this we can work with EEG data from long time period and analyze them further in your application. The recording is also configurable.

Recording Density

We can set the RecordDensity - a integer number that identifies how many recieved packets to record (For example if the RecordingDensity is set to "1" every recieved packet is recorded, if the RecordingDensity is set to "10" an every tenth packet is recorded).

Recording

To obtain only reliable data in your recording, we can use RecordingFiltering. This filter sets the recording to record only data where Quality of recieved EEG data is reliable and eSense data is recieved. If the recording filtering is turned off, every recieved data is recorded, even if the headset is misplaced on user head, or packet data are not reliable. So turning on filtering is recommended.

To start recording we need to use only one line of code, please note the arguments explained in the commented line:

//MyHeadset.StartRecording(RecordingDensity, RecordingFiltering);
MyHeadset.StartRecording(1, true);

Same as when we want to pause the recording:

MyHeadset.StopRecording;

Please note that this command only holds the recording and if we start the recording again, the new data will be added to the old one. If we want to clear already recorded data we can use:

MyHeadset.ClearRecordingData();

Working with recorded data

Working with recorded data is same as with the realtime data. Only exception is that the recorded data are storred in the array. To obtain the recorded data saved in the memory use the function called "RecordingToArray". A great example is this FOR loop, that prints every recieved packet in string format into debug window.

MindsetDataStruct[] MyRecordedData = MyHeadset.RecordingToArray();
for (int i = 0; i < MyRecordedData.Length; i++)
{
Debug.WriteLine(MyRecordedData[i].AllToString);
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].