Beispiel #1
0
    public IEnumerator TrainingCoroutine()
    {
        float remaining = timeSlider.value * 60;

        for (int i = 1; i < 4; i++)
        {
            instructions.text = "Comenzando en " + (4 - i) + "...";
            yield return(new WaitForSeconds(1));
        }

        instructions.text = "Mantenga su brazo y mano relajados.";

        processor.CurrentMuscleState = MuscleState.RELAXED;
        processor.ChangeMode(EMGProcessor.Mode.TRAINING);

        while (remaining > 0)
        {
            for (int i = 0; i < stateDuration; i++)
            {
                buttonText.text = (stateDuration - i).ToString() + "...";
                yield return(new WaitForSeconds(1));
            }

            remaining -= stateDuration;
            audioSource.Play();

            if (processor.CurrentMuscleState == MuscleState.RELAXED)
            {
                processor.CurrentMuscleState = MuscleState.TENSE;
                instructions.text            = "Haga fuerza con su brazo y mano.";
            }
            else
            {
                processor.CurrentMuscleState = MuscleState.RELAXED;
                instructions.text            = "Mantenga su brazo y mano relajados.";
            }
        }

        processor.ChangeMode(EMGProcessor.Mode.PREDICTING);

        startButton.interactable = true;
        buttonText.text          = "Terminar";
        instructions.text        = "Entrenamiento completado. Presione el botón de Terminar para continuar.";
    }
Beispiel #2
0
    void Update()
    {
        if (!started)
        {
            return;
        }

        if (Input.GetKeyUp(KeyCode.I))
        {
            processor.ChangeMode(EMGProcessor.Mode.IDLE);
        }
        else if (Input.GetKeyUp(KeyCode.T))
        {
            if (processor.CurrentMuscleState != MuscleState.NONE)
            {
                processor.ChangeMode(EMGProcessor.Mode.TRAINING);
            }
            else
            {
                Debug.Log("Unable to start Training mode: no MuscleState set yet.");
            }
        }
        else if (Input.GetKeyUp(KeyCode.P))
        {
            processor.ChangeMode(EMGProcessor.Mode.PREDICTING);
        }

        if (Input.GetKeyUp(KeyCode.UpArrow))
        {
            processor.CurrentMuscleState = MuscleState.TENSE;
        }
        else if (Input.GetKeyUp(KeyCode.DownArrow))
        {
            processor.CurrentMuscleState = MuscleState.RELAXED;
        }

        modeLabel.text         = processor.CurrentMode.ToString();
        predictionLabel.text   = "Prediction: " + processor.PredictedMuscleState.ToString();
        trainingInfoLabel.text = "Count: " + processor.TrainingDataLength.ToString() + "\nMuscleState: " + processor.CurrentMuscleState.ToString();
    }