コード例 #1
0
ファイル: MainPage.xaml.cs プロジェクト: Pboyle5h/GestureUI
        private async void _myoHub_MyoConnected(object sender, MyoEventArgs e)
        {
            e.Myo.Vibrate(VibrationType.Long);
            await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
            {
                tblUpdates.Text = "Myo Connected: " + e.Myo.Handle;
            });

            // add the pose changed event here
            e.Myo.PoseChanged += Myo_PoseChanged;



            // unlock the Myo so that it doesn't keep locking between our poses
            e.Myo.Unlock(UnlockType.Hold);

            try
            {
                var sequence = PoseSequence.Create(e.Myo, Pose.FingersSpread, Pose.WaveIn);
                sequence.PoseSequenceCompleted += Sequence_PoseSequenceCompleted;
            }
            catch (Exception myoErr)
            {
                string strMsg = myoErr.Message;
            }
        }
コード例 #2
0
        private void _hub_MyoConnected(object sender, MyoEventArgs e)
        {
            //When myo connects, unlock myo so the user can interact with it at all times.
            string status = "Myo is Connected";

            e.Myo.Unlock(UnlockType.Hold);

            //Create sequence for the rage ability (Fist -> Fingerspread).
            var sequence = PoseSequence.Create(
                e.Myo,
                Pose.Fist,
                Pose.FingersSpread);

            sequence.PoseSequenceCompleted += sequence_PoseSequenceCompleted;

            //Whenever pose is changed, go to poseChanged event.
            e.Myo.PoseChanged += Myo_PoseChanged;

            //Whenever orientation is changed, go to this event.
            e.Myo.OrientationDataAcquired += Myo_OrientationDataAcquired;

            if (isConnectedLbl.InvokeRequired)
            {
                isConnectedLbl.Invoke(new MethodInvoker(delegate { isConnectedLbl.Text = status; }));
            }
        }
コード例 #3
0
        private static void Main()
        {
            // create a hub to manage Myos
            using (var channel = Channel.Create(
                       ChannelDriver.Create(ChannelBridge.Create(),
                                            MyoErrorHandlerDriver.Create(MyoErrorHandlerBridge.Create()))))
                using (var hub = Hub.Create(channel))
                {
                    // listen for when a Myo connects
                    hub.MyoConnected += (sender, e) =>
                    {
                        Console.WriteLine("Myo {0} has connected!", e.Myo.Handle);

                        // for every Myo that connects, listen for special sequences
                        var sequence = PoseSequence.Create(
                            e.Myo,
                            Pose.WaveOut,
                            Pose.WaveIn);
                        sequence.PoseSequenceCompleted += Sequence_PoseSequenceCompleted;
                    };

                    // start listening for Myo data
                    channel.StartListening();

                    ConsoleHelper.UserInputLoop(hub);
                }
        }
コード例 #4
0
ファイル: MyoManager.cs プロジェクト: Hellyon/MyoGame
        public void RemovePoseSequence(IMyo myo, params Pose[] poses)
        {
            var sequence = PoseSequence.Create(myo, poses);

            if (!poseSequences.Contains(sequence))
            {
                return;
            }
            sequence.PoseSequenceCompleted -= Sequence_PoseSequenceCompleted;
            poseSequences.Remove(sequence);
        }
コード例 #5
0
ファイル: MyoManager.cs プロジェクト: Hellyon/MyoGame
        public void AddPoseSequence(IMyo myo, params Pose[] poses)
        {
            var sequence = PoseSequence.Create(myo, poses);

            if (poseSequences.Contains(sequence))
            {
                return;
            }
            poseSequences.Add(sequence);
            sequence.PoseSequenceCompleted += Sequence_PoseSequenceCompleted;
        }
コード例 #6
0
        //testing values


        public MyoSoundControl(MainWindow Gui)
        {
            this.Window = Gui;

            this.Channel = MyoSharp.Communication.Channel.Create(
                ChannelDriver.Create(ChannelBridge.Create(),
                                     MyoErrorHandlerDriver.Create(MyoErrorHandlerBridge.Create())));
            this.Hub          = MyoSharp.Device.Hub.Create(Channel);
            Hub.MyoConnected += (sender, e) =>
            {
                this.myo = e.Myo;
                e.Myo.Vibrate(VibrationType.Long);
                e.Myo.PoseChanged += Myo_PoseChanged;
                e.Myo.Locked      += Myo_Locked;
                e.Myo.Unlocked    += Myo_Unlocked;

                this.myo.Unlock(UnlockType.Hold);

                //Posing Tests
                //this.PoseToSound[Pose.Fist] = new SoundPlayer("./Sound/Mario.wav");
                //this.PoseToSound[Pose.WaveIn] = new SoundPlayer("./Sound/Glass.wav");
                //this.PoseToSound[Pose.WaveOut] = new SoundPlayer("./Sound/Slap.wav");
                //Sequence Test

                IPoseSequence sequence0 = PoseSequence.Create(e.Myo, Pose.Fist, Pose.FingersSpread);
                sequence0.PoseSequenceCompleted    += PoseSequenceCompleted;
                this.PoseSequenceToSound[sequence0] = new SoundPlayer("./Sound/Mario.wav");

                IPoseSequence sequence1 = PoseSequence.Create(e.Myo, Pose.WaveIn, Pose.WaveOut);
                sequence1.PoseSequenceCompleted    += PoseSequenceCompleted;
                this.PoseSequenceToSound[sequence1] = new SoundPlayer("./Sound/Slap.wav");

                IPoseSequence sequence2 = PoseSequence.Create(e.Myo, Pose.WaveOut, Pose.WaveIn);
                sequence2.PoseSequenceCompleted    += PoseSequenceCompleted;
                this.PoseSequenceToSound[sequence2] = new SoundPlayer("./Sound/Glass.wav");
            };


            Hub.MyoDisconnected += (sender, e) =>
            {
                e.Myo.PoseChanged -= Myo_PoseChanged;
                e.Myo.Locked      -= Myo_Locked;
                e.Myo.Unlocked    -= Myo_Unlocked;
            };
        }
コード例 #7
0
ファイル: SampleClip.cs プロジェクト: s145418/MM2
    void GeneratePoses(float startTime, float stopTime)
    {
        List <Pose> poses    = new List <Pose>();
        float       timeStep = 1f / (float)samplingRate;

        for (float sampleTime = startTime; sampleTime < stopTime; sampleTime += timeStep)
        {
            poses.Add(GeneratePose(sampleTime));
        }
        PoseSequence ps = (PoseSequence)ScriptableObject.CreateInstance(typeof(PoseSequence));

        ps.poseSequence = poses.ToArray();
        ps.samplingFPS  = samplingRate;
        Debug.Log(ps.poseSequence[5].leftArm.rotation.eulerAngles);
        string name = "Assets/PoseSequences/" + animationClip.name + ".asset";

        AssetDatabase.CreateAsset(ps, name);
    }
コード例 #8
0
        private static void Main(string[] args)
        {
            // create a hub to manage Myos
            using (var hub = Hub.Create())
            {
                // listen for when a Myo connects
                hub.MyoConnected += (sender, e) =>
                {
                    Console.WriteLine("Myo {0} has connected!", e.Myo.Handle);

                    // for every Myo that connects, listen for special sequences
                    var sequence = PoseSequence.Create(
                        e.Myo,
                        Pose.WaveOut,
                        Pose.WaveIn);
                    sequence.PoseSequenceCompleted += Sequence_PoseSequenceCompleted;
                };

                ConsoleHelper.UserInputLoop(hub);
            }
        }
コード例 #9
0
        //Modified code from the Myo Sharp tutorial on GitHub
        //Available at: https://github.com/tayfuzun/MyoSharp
        public static void Myo_Start()
        {
            //Create a hub that will manage Myo devices for us
            var channel = Channel.Create(
                ChannelDriver.Create(ChannelBridge.Create(),
                                     MyoErrorHandlerDriver.Create(MyoErrorHandlerBridge.Create())));

            IHub hub = Hub.Create(channel);

            //Listen for when the Myo connects
            hub.MyoConnected += (sender, e) =>
            {
                Console.WriteLine("Myo {0} has connected!", e.Myo.Handle);
                e.Myo.Vibrate(VibrationType.Short);
                e.Myo.PoseChanged             += Myo_PoseChanged;
                e.Myo.OrientationDataAcquired += Myo_OrientationDataAcquired;

                var pose = HeldPose.Create(e.Myo, Pose.Fist);
                pose.Interval = TimeSpan.FromSeconds(0.5);

                //For every Myo that connects, listen for special sequences
                var sequence = PoseSequence.Create(e.Myo, Pose.WaveOut, Pose.WaveIn);
                sequence.PoseSequenceCompleted += Sequence_PoseSequenceCompleted;
            };

            //Listen for when the Myo disconnects
            hub.MyoDisconnected += (sender, e) =>
            {
                Console.WriteLine("Oh no! It looks like {0} arm Myo has disconnected!", e.Myo.Arm);
                e.Myo.PoseChanged             -= Myo_PoseChanged;
                e.Myo.OrientationDataAcquired -= Myo_OrientationDataAcquired;
            };

            //Start listening for Myo data
            channel.StartListening();
            Console.WriteLine("Listening to channel...");

            //Wait on user input
            ConsoleHelper.UserInputLoop(hub);
        }