public static void CollectData(string File) { const int samples_to_collect = 20000; EEG eeg = new EEG(COM); eeg.Start(); Console.WriteLine("Connected"); List <FatSample> all_samples = new List <FatSample>(); for (int j = 0; j < samples_to_collect; j++) { FatSample f = new FatSample(eeg.ReadSample(), eeg.ReadSample()); Console.WriteLine(j); //Console.WriteLine("INDEX: " + index); all_samples.Add(f); //Console.WriteLine(f); //Console.WriteLine(); } var filestream = System.IO.File.AppendText(File); foreach (var i in all_samples) { filestream.Write(i.ToSpaceSeparated()); } filestream.Flush(); filestream.Close(); eeg.Stop(); }
public static FatSample Average(FatSample[] samples) { FatSample result = new FatSample(); for (int i = 0; i < 16; i++) { for (int j = 0; j < samples.Length; j++) { result.Channels[i] += samples[j].Channels[i]; } result.Channels[i] /= samples.Length; } for (int j = 0; j < samples.Length; j++) { result.AX += samples[j].AX; result.AY += samples[j].AY; result.AZ += samples[j].AZ; } result.AX /= samples.Length; result.AY /= samples.Length; result.AZ /= samples.Length; return(result); }
static void EEGTestWithNN2() { Console.WriteLine("Training Neural Network"); var n = NNCollectedData2(); Console.WriteLine($"Percent correct: {n.PercentCorrect()}"); Console.WriteLine("Awaiting Connection"); EEG eeg = new EEG(COM); eeg.Start(); Console.WriteLine("Connected"); Stopwatch s = new Stopwatch(); s.Start(); while (s.ElapsedMilliseconds < 60000) { FatSample[] f = new FatSample[chunk_size]; for (int i = 0; i < f.Length; i++) { f[i] = new FatSample(eeg.ReadSample(), eeg.ReadSample()); } Console.WriteLine(n.Predict(FatSamplesToPackedNNData(f)) == 0 ? "Up" : "Down"); } }