V5 Drive Program Issues

  1. 2 weeks ago

    csiv23

    Jan 9 Hopkinton, MA, 01748 2602J

    Hey guys, I've had a very weird issue. I've been making a simple program that maps the motors of a drivetrain to joysticks, and then when a button is pressed, run one of the motors (very simple, I know).

    The Joystick part would work fine, but when I would add in the button line, it either not work, or the joystick part would start bugging out (or not work entirely).

    Any solutions? I've never experienced this before. Maybe a firmware update? Idk.

    #include "robot-config.h"
              
    
    int main() {
      
    
        while(true){ //while loop (infinite)
         //   maps the controller axis to each motor, tank control
              RearRight.spin(directionType::fwd,Controller1.Axis2.position(percentUnits::pct),velocityUnits::pct);
              FrontRight.spin(directionType::fwd,Controller1.Axis2.position(percentUnits::pct),velocityUnits::pct);
              RearLeft.spin(directionType::fwd,Controller1.Axis3.position(percentUnits::pct),velocityUnits::pct);
              FrontLeft.spin(directionType::fwd,Controller1.Axis3.position(percentUnits::pct),velocityUnits::pct);
            
            if(Controller1.ButtonB.pressing()){
                FrontRight.spin(directionType::fwd, 50, velocityUnits::pct);
            }
            
       }  
    }
  2. goofnrox

    Jan 9 Jenison MI Jenison Robotics
    Edited last week by goofnrox

    You're changing the speed and possibly direction on FrontRight very rapidly when the button is pressed. Generally this is not good practice.

    Try something like:

    If ButtonPressed
    Do button motor stuff
    Else
    Do joystick motor stuff
    End if

    Also, you should probably add a sleep at the end of the loop so the program isn't hogging the CPU.

  3. last week

    csiv23

    Jan 10 Hopkinton, MA, 01748 2602J

    My problem is that no matter what motor I program it to, it still bugs out (i.e if I set it to my team's arm, the same issue persists).

    TLDR I can't drive while using buttons for some weird reason

  4. Read what goofnrox wrote again. There is a problem with control structure. This problem will follow whatever motor you put in that problematic control structure. You are trying to control a motor with a joystick and a button at the same time. One solution to this conflict is to only ever respect either the button or the joystick, which is what goofnrox suggested. Another solution would be to add some number to the joystick if the button was pressed.

    What I think you may have done is changed it so it ignores ALL of your joysticks when the button is pressed, when goofnrox was only suggesting you have it ignore the conflicting joystick.

 

or Sign Up to reply!