Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   C/C++ (http://www.chiefdelphi.com/forums/forumdisplay.php?f=183)
-   -   Motor Code Help (http://www.chiefdelphi.com/forums/showthread.php?t=82645)

odel 14-02-2010 02:44

Motor Code Help
 
Hi, I would like to do something like:

Joystick1yaxis = Motor[1];
Joystick1yaxis = Motor[2];
Joystick2yaxis = Motor[3];
Joystick2yaxis = Motor[4];


how would I go about this?
Thanks :D

byteit101 14-02-2010 10:22

Re: Motor Code Help
 
have you read http://first.wpi.edu/Images/CMS/Firs...artedWithC.pdf and http://first.wpi.edu/Images/CMS/Firs...sers_Guide.pdf?
I would assume you want something more like this:
Code:

robotDrive.TankDrive(stick1,stick2);

odel 14-02-2010 13:56

Re: Motor Code Help
 
But I need two joysticks running 4 motors, 2 motors to each joystick.

buddyb 14-02-2010 14:46

Re: Motor Code Help
 
Quote:

Originally Posted by odel (Post 919918)
But I need two joysticks running 4 motors, 2 motors to each joystick.

Like ByteIt said, you'll want to do robotDrive.TankDrive(leftJoystick, rightJoystick);

But, the constructor you'll want to use is:
Code:

RobotDrive(SpeedController *frontLeftMotor, SpeedController *rearLeftMotor, SpeedController *frontRightMotor, SpeedController *rearRightMotor, float sensitivity=0.5)
This will give you tank drive for 4 motors from two joysticks.

Good luck! :)

odel 14-02-2010 14:55

Re: Motor Code Help
 
So now I have:
Code:

class RobotDemo : public SimpleRobot
{
        Jaguar frontLeftMotor(1);
        RobotDrive drivetrain(SpeedController *frontLeftMotor, SpeedController *rearLeftMotor, SpeedController *frontRightMotor, SpeedController *rearRightMotor, float sensitivity=0.5)
        Joystick stick; // only joystick

public:
        RobotDemo(void):
                myRobot(1, 2),        // these must be initialized in the same order
                stick(1)                // as they are declared above.
        {
                GetWatchdog().SetExpiration(0.1);
        }

        /**
        * Drive left & right motors for 2 seconds then stop
        */
        void Autonomous(void)
        {
                GetWatchdog().SetEnabled(false);
                drivetrain.Drive(0.5, 0.0);        // drive forwards half speed
                Wait(2.0);                                //    for 2 seconds
                drivetrain.Drive(0.0, 0.0);        // stop robot
        }

        /**
        * Runs the motors with arcade steering.
        */
        void OperatorControl(void)
        {
                GetWatchdog().SetEnabled(true);
                while (IsOperatorControl())
                {
                        GetWatchdog().Feed();
                        robotDrive.TankDrive(stick1,stick2);
                        Wait(0.005);                                // wait for a motor update time
                }
        }
};

START_ROBOT_CLASS(RobotDemo);

I need help declaring the Jaguars now :confused:

buddyb 14-02-2010 15:18

Re: Motor Code Help
 
Quote:

Originally Posted by odel (Post 919937)
So now I have:
<CODE>
I need help declaring the Jaguars now :confused:

This *should* work. Change the values under RobotDemo(void): to change the slots.
Code:

#include "WPILib.h"

class RobotDemo : public SimpleRobot
{
        RobotDrive robotDrive;
        Joystick stick1, stick2;

public:
        RobotDemo(void):
                robotDrive(1,                                //Front Left motor port
                                2,        //Back left motor port
                                3,        //Front right motor port
                                4),        //Back right motor port
                stick1(1),                //Joystick 1 in slot 1
                stick2(2)                //Joystick 2 in slot 2
        {
                GetWatchdog().SetExpiration(0.1);
        }

        /**
        * Drive left & right motors for 2 seconds then stop
        */
        void Autonomous(void)
        {
                GetWatchdog().SetEnabled(false);
                robotDrive.Drive(0.5, 0.0);        // drive forwards half speed
                Wait(2.0);                                                //    for 2 seconds
                robotDrive.Drive(0.0, 0.0);        // stop robot
        }

        /**
        * Runs the motors with arcade steering.
        */
        void OperatorControl(void)
        {
                GetWatchdog().SetEnabled(true);
                while (IsOperatorControl())
                {
                        GetWatchdog().Feed();
                        robotDrive.TankDrive(stick1,stick2);
                        Wait(0.005);                                // wait for a motor update time
                }
        }
};

START_ROBOT_CLASS(RobotDemo);

If it works, yay! If not, play around with the ports, and make sure everything's wired correctly. If all of that is correct, I probably did something stupid. XD

odel 14-02-2010 18:04

Re: Motor Code Help
 
So this is what I have right now, we plugged the left motors into pwm 1 and the right ones into pwm 2 using pwm splitter, and still no luck

Code:

#include "WPILib.h"

class RobotDemo : public SimpleRobot
{
        RobotDrive robotDrive;
        Joystick stick1, stick2;

public:
        RobotDemo(void):
                robotDrive(1,2),       
                stick1(1),                //Joystick 1 in slot 1
                stick2(2)                //Joystick 2 in slot 2
        {
                GetWatchdog().SetExpiration(0.1);
        }

        void Autonomous(void)
        {
                GetWatchdog().SetEnabled(false);
                robotDrive.Drive(0.5, 0.0);        // drive forwards half speed
                Wait(2.0);                                                //    for 2 seconds
                robotDrive.Drive(0.0, 0.0);        // stop robot
        }

        void OperatorControl(void)
        {
                GetWatchdog().SetEnabled(true);
                while (IsOperatorControl())
                {
                        GetWatchdog().Feed();
                        robotDrive.TankDrive(stick1,stick2);
                        Wait(0.005);                                // wait for a motor update time
                }
        }
};

START_ROBOT_CLASS(RobotDemo);


byteit101 14-02-2010 18:22

Re: Motor Code Help
 
are the joysticks configured correctly on the driverstation?
go to setup tab, and on the right side, drag the joysticks to 1 and 2

odel 14-02-2010 18:24

Re: Motor Code Help
 
Got things working now, thanks for all the help guys!

whatabouteve 16-02-2010 20:31

Re: Motor Code Help
 
might i suggest using an ancient technology of split PWM's the go from one port to 2 jaguars or victors. they are extremely helpful.

odel 19-02-2010 13:23

Re: Motor Code Help
 
Quote:

Originally Posted by whatabouteve (Post 921595)
might i suggest using an ancient technology of split PWM's the go from one port to 2 jaguars or victors. they are extremely helpful.

We may or may not have ended up doing this...


All times are GMT -5. The time now is 12:21.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi