Does anyone know how to code an arcade drive with 4 motors?
in robotc you could do this:
task main(){
while(true){
motor[leftFront] = vexRT[Ch2] + vexRT[Ch1];
motor[leftRear] = vexRT[Ch2] + vexRT[Ch1];
motor[rightFront] = vexRT[Ch2] - vexRT[Ch1];
motor[rightRear] = vexRT[Ch2] - vexRT[Ch1];
}
}
if you’re using v5 this would work:
int main() {
while(true){
leftFront.spin(vex::directionType::fwd, Controller1.Axis2.position(vex::percentUnits::pct) + Controller1.Axis1.position(vex::percentUnits::pct), vex::velocityUnits::pct);
leftRear.spin(vex::directionType::fwd, Controller1.Axis2.position(vex::percentUnits::pct) + Controller1.Axis1.position(vex::percentUnits::pct), vex::velocityUnits::pct);
rightFront.spin(vex::directionType::fwd, Controller1.Axis2.position(vex::percentUnits::pct) - Controller1.Axis1.position(vex::percentUnits::pct), vex::velocityUnits::pct);
rightRear.spin(vex::directionType::fwd, Controller1.Axis2.position(vex::percentUnits::pct) - Controller1.Axis1.position(vex::percentUnits::pct), vex::velocityUnits::pct);
}
}
I hope this works, thanks in advance!
Michael, if you want it to utilize 2 joysticks instead of one, which is how Mark drives:
fLeft.spin(vex::directionType::fwd, (Controller.Axis3.value() + Controller.Axis1.value())/2, vex::velocityUnits::pct);
bLeft.spin(vex::directionType::fwd, (Controller.Axis3.value() + Controller.Axis1.value())/2, vex::velocityUnits::pct);
fRight.spin(vex::directionType::fwd, (Controller.Axis3.value() - Controller.Axis1.value())/2, vex::velocityUnits::pct);
bRight.spin(vex::directionType::fwd, (Controller.Axis3.value() - Controller.Axis1.value())/2, vex::velocityUnits::pct);
ps you can always ask me questions in person, it’s kind of my job
I just got the idea after the meeting, I’ll let you know if I have any more questions though, thanks!