Beispiel #1
0
        private void Connect_btn_Click(object sender, EventArgs e)
        {
            // Try to connect then check connection and throw error if found
            try
            {
                // Setup the NXT Brick
                _nxt = new NxtBrick(NxtCommLinkType.Bluetooth, Convert.ToByte(Port_txt.Text))
                {
                    MotorA = _ar, MotorC = _cr
                };

                _nxt.Connect();
                if (_nxt.IsConnected)
                {
                    _defaultEngine.RecognizeAsync(RecognizeMode.Multiple);
                    Connected_lbl.Visible   = true;
                    Port_txt.BackColor      = Color.Green;
                    Connect_btn.Enabled     = false;
                    Battery_checker.Enabled = true;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                Connected_lbl.Visible = false;
                Port_txt.BackColor    = Color.Red;

                // Writes the Exception to the Log
                WriteToLog(ex.Message);
            }
        }
Beispiel #2
0
        public Motor(INxtBrick nxtBrick, NxtBrick.Motor motor)
        {
            Brick = nxtBrick;
            MotorPort = motor;

            RegulationMode = NxtBrick.MotorRegulationMode.Idle;
        }
Beispiel #3
0
        static void SetupBluetoothConnection()
        {
            Console.WriteLine("\n\nEnter your Bluetooth COM-Port (Default: 40)");
            byte comport = Convert.ToByte(Console.ReadLine());

            brick = new NxtBrick(NxtCommLinkType.Bluetooth, comport);
            Console.WriteLine("\nBluetooth connection set up at port " + comport + ".");
        }
		internal async Task Attach(NxtBrick brick, SensorPort port)
		{
			await Task.Run(() =>
			{
				this.SensorPort = port;
				this.brick = brick;
			});
		}
Beispiel #5
0
 private void Execute(NxtBrick.MotorState state)
 {
     // parellelize this slow command 
     Task.Factory.StartNew(() =>
         {
             Brick.SetMotorState(MotorPort, state);
             Debug.WriteLine("Motor on Port " + MotorPort.ToString() + ": " + state.Power + "%");
         });
 }        
Beispiel #6
0
        public RobotEngine()
        {
            _brick = new NxtBrick(NxtCommLinkType.Bluetooth, Config.SerialPortNo)
            {
                MotorA = new NxtMotor(),
                MotorB = new NxtMotor(),
                MotorC = new NxtMotor()
            };

            _motorSync = new NxtMotorSync(_brick.MotorA, _brick.MotorB);
        }
        public Robot()
        {
            m_brick      = new NxtBrick(NxtCommLinkType.Bluetooth, 3);
            m_leftMotor  = new NxtMotor();
            m_rightMotor = new NxtMotor();

            m_brick.MotorB = m_leftMotor;
            m_brick.MotorC = m_rightMotor;

            m_motors = new NxtMotorSync(m_leftMotor, m_rightMotor);
        }
Beispiel #8
0
        static void Main()
        {
            Init();

            brick = new NxtBrick(NxtCommLinkType.USB, 0);
            //brick = new NxtBrick(NxtCommLinkType.Bluetooth, 40);

            var sound = new NxtSoundSensor();
            var touch = new NxtTouchSensor();
            var sonar = new NxtUltrasonicSensor();

            brick.MotorA = new NxtMotor();
            brick.MotorC = new NxtMotor();
            motorPair    = new NxtMotorSync(brick.MotorA, brick.MotorC);

            brick.Sensor1 = sonar;
            brick.Sensor3 = touch;
            brick.Sensor4 = sound;

            sound.PollInterval = 50;
            sound.OnPolled    += sound_OnPolled;

            sonar.PollInterval                 = 50;
            sonar.ThresholdDistanceCm          = 25;
            sonar.OnPolled                    += sonar_OnPolled;
            sonar.OnWithinThresholdDistanceCm += OnWithinThreshold;
            sonar.ContinuousMeasurementCommand();

            touch.PollInterval = 50;
            touch.OnPressed   += OnCollision;

            brick.Connect();

            motorPair.Run(75, 0, 0);

            Console.WriteLine("Press any key to stop.");
            Console.ReadKey();

            brick.Disconnect();
        }
Beispiel #9
0
 static void SetupUSBConnection()
 {
     brick = new NxtBrick(NxtCommLinkType.USB, 0);
     Console.WriteLine("\nUSB connection set up.");
 }
 internal CommandsBase(NxtBrick brick)
 {
     this.brick = brick;
 }
		internal SystemCommands(NxtBrick brick) :
			base(brick)
		{

		}
 internal ConnectionCommands(NxtBrick brick) :
     base(brick)
 {
 }
		internal DirectCommands(NxtBrick brick) :
			base(brick)
		{
		}
Beispiel #14
0
        //Brick connection procedure logic
        private void button_connect_Click(object sender, EventArgs e)
        {
            if (!isConnectedToBrick)
            {
                byte COMport = byte.Parse(COMportInput.Text);

                if (RB_McRXE.Checked)
                {
                    //Create Motor Control NXT Brick and Bluetooth use USB to communicate with it.
                    if (RB_Bluetooth.Checked)
                    {
                        McBrick = new McNxtBrick(NxtCommLinkType.Bluetooth, COMport);
                    }
                    //Create Motor Control NXT Brick, and use USB to communicate with it.
                    if (RB_USB.Checked)
                    {
                        brick = new McNxtBrick(NxtCommLinkType.USB, COMport);
                    }
                    // Create a Motor Control motor.
                    McMotorA = new McNxtMotor();
                    McMotorB = new McNxtMotor();
                    McMotorC = new McNxtMotor();

                    //Synched motors
                    McMotorPair = new McNxtMotorSync(McMotorB, McMotorC);

                    // Attach it to port A of the NXT brick.
                    McBrick.MotorA = McMotorA;
                    McBrick.MotorB = McMotorB;
                    McBrick.MotorC = McMotorC;


                    // Connect to the NXT.
                    McBrick.Connect();

                    if (!McBrick.IsMotorControlRunning())
                    {
                        McBrick.StartMotorControl();
                    }
                    motorControlActive = true;
                }
                else
                {
                    //Create NXT Brick and Bluetooth use USB to communicate with it.
                    if (RB_Bluetooth.Checked)
                    {
                        NxtBrick brick = new NxtBrick(NxtCommLinkType.Bluetooth, COMport);
                    }
                    // Create a NXT brick, and use USB to communicate with it.
                    if (RB_USB.Checked)
                    {
                        NxtBrick brick = new NxtBrick(NxtCommLinkType.USB, COMport);
                    }
                    // Create a motor.
                    motorA = new NxtMotor();
                    motorB = new NxtMotor();
                    motorC = new NxtMotor();

                    // Attach it to port A of the NXT brick.
                    brick.MotorA = motorA;
                    brick.MotorB = motorB;
                    brick.MotorC = motorC;

                    // Connect to the NXT.
                    brick.Connect();
                }
                ConnectedText.Visible = true;
                isConnectedToBrick    = true;
            }
        }