Exemplo n.º 1
0
        public UnsureNetworkForm()
        {
            InitializeComponent();

            NodeSavingReading reader = new NodeSavingReading();

            net = new NeuralNet(7, 7, ANNfilename, KFoldFilename);
            inputTrainingData  = reader.GetStoredDataFromFile(Globals.inputDataStorage);
            outputTrainingData = reader.GetStoredDataFromFile(Globals.outputDataStorage);

            //inputTrainingData = new List<double[]>();
            //outputTrainingData = new List<double[]>();

            controls = new PatsControlScheme();
            controls.Initialize();
            controls.timeNeededForChange = 7000;

            serial = new SerialReader();
            serial.Read();

            UnityCommunicationHub.InitializeUnityCommunication();
            UnityCommunicationHub.TwoWayTransmission();


            indexList        = Globals.GetBasicValues();
            reverseIndexList = Globals.GetBasicValuesReversed();
            setPointList     = Globals.GetBasicPositions();

            foreach (KeyValuePair <string, int> position in indexList)
            {
                DefaultPositionsBox.Items.Add(position.Key);
            }
        }
Exemplo n.º 2
0
        public NeuralNetForm()
        {
            InitializeComponent();

            NodeSavingReading reader = new NodeSavingReading();

            net = new NeuralNet(8, 7, ANNfilename, KFoldFilename);
            inputTrainingData  = reader.GetStoredDataFromFile(Globals.inputDataStorage);
            outputTrainingData = reader.GetStoredDataFromFile(Globals.outputDataStorage);

            //inputTrainingData = new List<double[]>();
            //outputTrainingData = new List<double[]>();



            serial = new SerialReader();
            serial.Read();

            UnityCommunicationHub.InitializeUnityCommunication();
            UnityCommunicationHub.TwoWayTransmission();


            indexList    = Globals.GetBasicValues();
            setPointList = Globals.GetBasicPositions();

            foreach (KeyValuePair <string, int> position in indexList)
            {
                DefaultPositionsBox.Items.Add(position.Key);
            }
        }
Exemplo n.º 3
0
        public ContinuousNeuralNetForm()
        {
            InitializeComponent();

            net = new NeuralNet(8, 7, ANNfilename, KFoldFilename);
            inputTrainingData  = new List <double[]>();
            outputTrainingData = new List <double[]>();

            if (inputTrainingData.Count > expirationTimer)
            {
                inputTrainingData.RemoveAt(0);
                outputTrainingData.RemoveAt(0);
            }

            serial = new SerialReader();
            serial.Read();

            UnityCommunicationHub.InitializeUnityCommunication();
            UnityCommunicationHub.TwoWayTransmission();

            Random rand = new Random(23);

            setPointList = Globals.GetBasicPositions();

            var firstPoint = setPointList[3];

            Globals.A1DesiredPosition = firstPoint.A1Position;
            Globals.A2DesiredPosition = firstPoint.A2Position;
            Globals.A3DesiredPosition = firstPoint.A3Position;
            Globals.B1DesiredPosition = firstPoint.B1Position;
            Globals.B2DesiredPosition = firstPoint.B2Position;
            Globals.B3DesiredPosition = firstPoint.B3Position;
            Globals.C1DesiredPosition = firstPoint.C1Position;
            Globals.C2DesiredPosition = firstPoint.C2Position;
            Globals.C3DesiredPosition = firstPoint.C3Position;
            Globals.D1DesiredPosition = firstPoint.D1Position;
            Globals.D2DesiredPosition = firstPoint.D2Position;
            Globals.D3DesiredPosition = firstPoint.D3Position;
            Globals.T1DesiredPosition = firstPoint.T1Position;
            Globals.T2DesiredPosition = firstPoint.T2Position;
            //Globals.T1DesiredPosition = (float)rand.Next(0, 90);
            //Globals.T2DesiredPosition = (float)rand.Next(0, 90);
            //Globals.A1DesiredPosition = (float)rand.Next(0, 90);
            //Globals.A2DesiredPosition = (float)rand.Next(0, 90);
            //Globals.A3DesiredPosition = (float)rand.Next(0, 90);
            //Globals.B1DesiredPosition = (float)rand.Next(0, 90);
            //Globals.B2DesiredPosition = (float)rand.Next(0, 90);
            //Globals.B3DesiredPosition = (float)rand.Next(0, 90);
            //Globals.C1DesiredPosition = (float)rand.Next(0, 90);
            //Globals.C2DesiredPosition = (float)rand.Next(0, 90);
            //Globals.C3DesiredPosition = (float)rand.Next(0, 90);
            //Globals.D1DesiredPosition = (float)rand.Next(0, 90);
            //Globals.D2DesiredPosition = (float)rand.Next(0, 90);
            //Globals.D3DesiredPosition = (float)rand.Next(0, 90);


            lastSetPoint = firstPoint;
            UnityCommunicationHub.WriteData(true);
        }
Exemplo n.º 4
0
 private void button2_Click(object sender, EventArgs e)
 {
     //Starts reading information from serial
     serialReader.Read();
 }
Exemplo n.º 5
0
        private void beginControllingHandButton_Click(object sender, EventArgs e)
        {
            int desiredMillisecondDelay = controls.timeNeededForChange;
            int arraySize = (desiredMillisecondDelay / 1000) * rate;

            reader.Read();
            rate = reader.getRate();

            double lowConcentration  = 0;
            double highConcentration = 0;

            //first get threshholds
            bool done = false;

            while (!done)
            {
                int     reads    = 0;
                decimal allReads = 0;
                MessageBox.Show("First try to let your mind wander until the next popup appears. Hit OK when ready.", string.Empty, MessageBoxButtons.OK);
                timer.Start();
                while (timer.ElapsedMilliseconds < Globals.threshholdAquisitionTime)
                {
                    decimal currentIn = (decimal)Math.Abs(reader.GetData()[Globals.inputNode]);
                    allReads += currentIn;
                    reads++;
                    currentAverageBox.Text = (allReads / reads).ToString();
                    currentInputBox.Text   = currentIn.ToString();
                }

                timer.Reset();
                lowConcentration     = (double)(allReads / reads);
                midpointTextBox.Text = lowConcentration.ToString();
                Console.WriteLine("Low concentration was: " + lowConcentration);

                reads    = 0;
                allReads = 0;

                MessageBox.Show("Next try to focus as hard as possible something. Hit OK when ready.", string.Empty, MessageBoxButtons.OK);

                timer.Start();
                while (timer.ElapsedMilliseconds < Globals.threshholdAquisitionTime)
                {
                    decimal currentIn = (decimal)Math.Abs(reader.GetData()[Globals.inputNode]);
                    allReads += currentIn;
                    reads++;
                    currentAverageBox.Text = (allReads / reads).ToString();
                    currentInputBox.Text   = currentIn.ToString();
                }
                timer.Reset();

                highConcentration    = (double)(allReads / reads);
                configuredMidPoint   = ((highConcentration + lowConcentration) / 2);
                midpointTextBox.Text = configuredMidPoint.ToString();

                Console.WriteLine("High concentration was: " + highConcentration);

                if (highConcentration > lowConcentration)
                {
                    done = true;
                }
            }

            MessageBox.Show("Ready to control hand. Press OK when ready.", string.Empty, MessageBoxButtons.OK);
        }
Exemplo n.º 6
0
        private void FocusButton_Click(object sender, EventArgs e)
        {
            int desiredMillisecondDelay = controls.timeNeededForChange;
            int arraySize = (desiredMillisecondDelay / 1000) * rate;

            serial.Read();
            rate = serial.getRate();

            double lowConcentration  = 0;
            double highConcentration = 0;

            //first get threshholds
            bool done = false;

            while (!done)
            {
                int     reads    = 0;
                decimal allReads = 0;
                MessageBox.Show("First try to let your mind wander until the next popup appears. Hit OK when ready.", string.Empty, MessageBoxButtons.OK);
                timer.Start();
                while (timer.ElapsedMilliseconds < Globals.threshholdAquisitionTime)
                {
                    decimal currentIn = (decimal)Math.Abs(serial.GetData()[Globals.inputNode]);
                    allReads += currentIn;
                    reads++;
                }

                timer.Reset();
                lowConcentration = (double)(allReads / reads);
                Console.WriteLine("Low concentration was: " + lowConcentration);

                reads    = 0;
                allReads = 0;

                MessageBox.Show("Next try to focus as hard as possible something. Hit OK when ready.", string.Empty, MessageBoxButtons.OK);

                timer.Start();
                while (timer.ElapsedMilliseconds < Globals.threshholdAquisitionTime)
                {
                    decimal currentIn = (decimal)Math.Abs(serial.GetData()[Globals.inputNode]);
                    allReads += currentIn;
                    reads++;
                }
                timer.Reset();

                highConcentration = (double)(allReads / reads);

                Console.WriteLine("High concentration was: " + highConcentration);

                if (highConcentration > lowConcentration)
                {
                    done = true;
                }
            }

            double differenceInConcentrations = highConcentration - lowConcentration;
            double deltaBetweenThreshholds    = differenceInConcentrations / 2;

            //make ranges for this run
            ranges = new List <Threshhold>(2);


            //make sure all reads work for it
            ranges.Add(new Threshhold(Double.MinValue, lowConcentration + (deltaBetweenThreshholds)));

            ranges.Add(new Threshhold(lowConcentration + (deltaBetweenThreshholds), Double.MaxValue));


            MessageBox.Show("Ready to control hand. Press OK when ready.", string.Empty, MessageBoxButtons.OK);
        }