public MovementHexapod()
        {
            //---Initializing modules---//
            this.extender = new GTM.GHIElectronics.Extender(11);
            this.rs485    = new GTM.GHIElectronics.RS485(this.extender.ExtenderSocketNumber);
            serie         = new GT.Interfaces.Serial(GT.Socket.GetSocket(11, true, null, string.Empty), 200000, GT.Interfaces.Serial.SerialParity.None, GT.Interfaces.Serial.SerialStopBits.One, 8, GT.Interfaces.Serial.HardwareFlowControl.NotRequired, null);
            serie.Open();

            S11P3dirAx12 = extender.SetupDigitalOutput(GT.Socket.Pin.Three, true); //False pour lire, True pour écrire
            S11P3dirAx12.Write(true);
        }
Exemple #2
0
        void ProgramStarted()
        {
            // Use Debug.Print to show messages in Visual Studio's "Output" window during debugging.
            Debug.Print("Program Started");

            displayText("Debug: ", GT.Color.Red);
            serie = new GT.Interfaces.Serial(GT.Socket.GetSocket(11, true, null, string.Empty), 200000, GT.Interfaces.Serial.SerialParity.None, GT.Interfaces.Serial.SerialStopBits.One, 8, GT.Interfaces.Serial.HardwareFlowControl.NotRequired, null);
            serie.Open();


            xBee.Configure(115200, GT.Interfaces.Serial.SerialParity.None, GT.Interfaces.Serial.SerialStopBits.One, 8);
            xBee.SerialLine.Open();
            xBee.SerialLine.DataReceived += new GT.Interfaces.Serial.DataReceivedEventHandler(SerialLine_DataReceived);

            button.ButtonPressed  += new Button.ButtonEventHandler(button_ButtonPressed);
            button.ButtonReleased += new Button.ButtonEventHandler(button_ButtonReleased);

            S11P3dirAx12 = extender.SetupDigitalOutput(GT.Socket.Pin.Three, true); //False pour lire, True pour écrire
            S11P3dirAx12.Write(true);

            //Output to see if the controller has received the frame
            xBee.SerialLine.WriteLine("Connected");
        }
Exemple #3
0
        void SerialLine_DataReceived(GT.Interfaces.Serial sender, System.IO.Ports.SerialData data)
        {
            //Communication avec l'IHM en xBee
            var    font = Resources.GetFont(Resources.FontResources.NinaB);
            string msg  = receiveBuffXbee();

            string rotate          = "tourner";
            string speed           = "vitesse";
            string avancer         = "avancer";
            string reculer         = "reculer";
            string droite          = "droite";
            string gauche          = "gauche";
            bool   command_rotate  = true;
            bool   command_speed   = true;
            bool   command_avancer = true;
            bool   command_reculer = true;
            bool   command_droite  = true;
            bool   command_gauche  = true;

            for (int i = 0; i < rotate.Length; i++)
            {
                if ((msg[i] != rotate[i]) || (msg.Length > 10))
                {
                    command_rotate = false;
                    break;
                }
            }

            for (int i = 0; i < speed.Length; i++)
            {
                if ((msg[i] != speed[i]) || (msg.Length > 10))
                {
                    command_speed = false;
                    break;
                }
            }

            for (int i = 0; i < avancer.Length; i++)
            {
                if ((msg[i] != avancer[i] || (msg.Length > 10)))
                {
                    command_avancer = false;
                    break;
                }
            }

            for (int i = 0; i < reculer.Length; i++)
            {
                if ((msg[i] != reculer[i] || (msg.Length > 10)))
                {
                    command_reculer = false;
                    break;
                }
            }

            for (int i = 0; i < droite.Length; i++)
            {
                if ((msg[i] != droite[i] || (msg.Length > 10)))
                {
                    command_droite = false;
                    break;
                }
            }

            for (int i = 0; i < gauche.Length; i++)
            {
                if ((msg[i] != gauche[i] || (msg.Length > 10)))
                {
                    command_gauche = false;
                    break;
                }
            }

            if ((command_gauche == true) && (command_speed == false) && (command_rotate == false))
            {
                int value = System.Convert.ToInt16(msg.Substring(6));

                displayText("Gauche", GT.Color.White);
                turnLeft();
                Thread.Sleep(200);
            }

            if ((command_droite == true) && (command_speed == false) && (command_rotate == false))
            {
                int value = System.Convert.ToInt16(msg.Substring(6));

                displayText("Droite" + value, GT.Color.White);
                turnRight();
                Thread.Sleep(200);
            }

            if ((command_reculer == true) && (command_speed == false) && (command_rotate == false))
            {
                int value = System.Convert.ToInt16(msg.Substring(7));

                displayText("Reculer", GT.Color.White);
                goBackward();
                Thread.Sleep(200);
            }

            if ((command_avancer == true) && (command_speed == false) && (command_rotate == false))
            {
                int value = System.Convert.ToInt16(msg.Substring(7));

                displayText("Avancer", GT.Color.White);
                goForward();
                Thread.Sleep(200);
            }

            if ((command_rotate == true) && (command_speed == false))
            {
                int value = System.Convert.ToInt16(msg.Substring(7));
                displayText("Rotation: " + value + " degres", GT.Color.White);
                Thread.Sleep(200);
            }

            if ((command_speed == true) && (command_rotate == false))
            {
                int value = System.Convert.ToInt16(msg.Substring(7));
                displayText("Speed: " + value + " ms", GT.Color.White);

                setSpeed(value, 0x01);
                Thread.Sleep(10);
                setSpeed(value, 0x02);
                Thread.Sleep(200);
            }
        }