Advertisement
Guest User

Bot.java

a guest
Jan 7th, 2017
651
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.03 KB | None | 0 0
  1. package org.firstinspires.ftc.teamcode;
  2.  
  3. import com.qualcomm.robotcore.hardware.DcMotor;
  4. import com.qualcomm.robotcore.hardware.HardwareMap;
  5. import com.qualcomm.robotcore.util.ElapsedTime;
  6.  
  7. /**
  8.  * Created by aburur on 1/5/17.
  9.  */
  10.  
  11. public class Bot
  12. {
  13.     //Instance Fields
  14.     private DcMotor FL;
  15.     private DcMotor BL;
  16.     private DcMotor FR;
  17.     private DcMotor BR;
  18.     //private DcMotor elevator;
  19.     //private DcMotor shooter;
  20.     //private ColorSensor colorSensor;
  21.     //private CRServo lServo;
  22.     //private CRServo rServo;
  23.  
  24.     private boolean runningToTarget;
  25.     ElapsedTime timer = new ElapsedTime(0);
  26.  
  27.     HardwareMap hwMap;
  28.     //Class Fields
  29.  
  30.     //Constructor(s)
  31.     public Bot()
  32.     {
  33.  
  34.     }
  35.  
  36.     // Initialization Method
  37.     public void init (HardwareMap hwm)
  38.     {
  39.         hwMap = hwm;
  40.  
  41.         // Defining the motors/sensors/etc.
  42.         FL = hwMap.dcMotor.get("FL");
  43.         BL = hwMap.dcMotor.get("BL");
  44.         FR = hwMap.dcMotor.get("FR");
  45.         BR = hwMap.dcMotor.get("BR");
  46.         //elevator = hwMap.dcMotor.get("elevator");
  47.         //shooter = hwMap.dcMotor.get("shooter");
  48.         //colorSensor = hwMap.colorSensor.get("colorSensor");
  49.         //lServo = hwMap.crservo.get("lServo");
  50.         //rServo = hwMap.crservo.get("rServo");
  51.  
  52.         // Set motor/servo modes
  53.         FL.setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER);
  54.         BL.setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER);
  55.         FR.setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER);
  56.         BR.setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER);
  57.  
  58.         // FL.setMode(DcMotor.RunMode.RUN_USING_ENCODER);
  59.         //BL.setMode(DcMotor.RunMode.RUN_USING_ENCODER);
  60.         //FR.setMode(DcMotor.RunMode.RUN_USING_ENCODER);
  61.         //BR.setMode(DcMotor.RunMode.RUN_USING_ENCODER);
  62.         //elevator.setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER);
  63.         //shooter.setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER);
  64.         //lServo.setDirection(DcMotorSimple.Direction.REVERSE);
  65.         //rServo.setDirection(DcMotorSimple.Direction.FORWARD);
  66.  
  67.         // Running to target false
  68.         runningToTarget = false;
  69.  
  70.         // Set color sensor
  71.         //colorSensor.enableLed(false);
  72.     }
  73.  
  74.     // Driving Methods
  75.     // TODO: brian's idea for driving - implement in teleop program
  76.     public void drive(direction d, double power) {
  77.         switch (d) {
  78.             case FOR: {
  79.                 driveForwards(power);
  80.             }
  81.             case BACK: {
  82.                 driveBackwards(power);
  83.             }
  84.             case LEFT: {
  85.                 driveLeft(power);
  86.             }
  87.             case RIGHT: {
  88.                 driveRight(power);
  89.             }
  90.             case TURNL: {
  91.                 turnLeft(power);
  92.             }
  93.             case TURNR: {
  94.                 turnRight(power);
  95.             }
  96.         }
  97.     }
  98.  
  99.     // 0
  100.     private void driveForwards(double power)
  101.     {
  102.         FL.setPower(power);
  103.         BL.setPower(power);
  104.         FR.setPower(power);
  105.         BR.setPower(power);
  106.     }
  107.  
  108.     // 1
  109.     private void driveBackwards(double power)
  110.     {
  111.         FL.setPower(-power);
  112.         BL.setPower(-power);
  113.         FR.setPower(-power);
  114.         BR.setPower(-power);
  115.     }
  116.  
  117.     // 2
  118.     private void driveLeft(double power)
  119.     {
  120.         FL.setPower(-power);
  121.         BL.setPower(power);
  122.         FR.setPower(power);
  123.         BR.setPower(-power);
  124.     }
  125.  
  126.     // 3
  127.     private void driveRight(double power)
  128.     {
  129.         FL.setPower(power);
  130.         BL.setPower(-power);
  131.         FR.setPower(power);
  132.         BR.setPower(-power);
  133.     }
  134.  
  135.     // 4
  136.     private void turnRight(double power)
  137.     {
  138.         FL.setPower(power);
  139.         BL.setPower(power);
  140.         FR.setPower(-power);
  141.         BR.setPower(-power);
  142.     }
  143.  
  144.     // 5
  145.     private void turnLeft(double power)
  146.     {
  147.         FL.setPower(-power);
  148.         BL.setPower(-power);
  149.         FR.setPower(power);
  150.         BR.setPower(power);
  151.     }
  152.  
  153.     // Move-to Methods
  154.  
  155.     public void runToPosition(direction direction, double power, double target)
  156.     {
  157.         int targetInt = distanceToRevs(target);
  158.         stopAndReset();
  159.  
  160.         FL.setMode(DcMotor.RunMode.RUN_TO_POSITION);
  161.         BL.setMode(DcMotor.RunMode.RUN_TO_POSITION);
  162.         FR.setMode(DcMotor.RunMode.RUN_TO_POSITION);
  163.         BR.setMode(DcMotor.RunMode.RUN_TO_POSITION);
  164.  
  165.         FL.setTargetPosition(targetInt);
  166.         BL.setTargetPosition(targetInt);
  167.         FR.setTargetPosition(targetInt);
  168.         BR.setTargetPosition(targetInt);
  169.  
  170.         drive(direction, power);
  171.     }
  172.  
  173.     private void stopAndReset()
  174.     {
  175.         try {Thread.sleep(500);} catch (InterruptedException e) {}
  176.         runningToTarget = true;
  177.         FL.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
  178.         BL.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
  179.         FR.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
  180.         BR.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
  181.     }
  182.  
  183.     public void runUsingEncoders()
  184.     {
  185.         try {Thread.sleep(500);} catch (InterruptedException e) {}
  186.         runningToTarget = false;
  187.         FL.setMode(DcMotor.RunMode.RUN_USING_ENCODER);
  188.         BL.setMode(DcMotor.RunMode.RUN_USING_ENCODER);
  189.         FR.setMode(DcMotor.RunMode.RUN_USING_ENCODER);
  190.         BR.setMode(DcMotor.RunMode.RUN_USING_ENCODER);
  191.     }
  192.  
  193.     // Motor Methods
  194.     //public void setElevator(int power)
  195.     //{
  196.         //elevator.setPower(power);
  197.     //}
  198.  
  199.     //public void  setShooter(int power)
  200.     //{
  201.         //shooter.setPower(power);
  202.     //}
  203.  
  204.     // Servo Methods
  205.     //public void leftServoOut()
  206.     //{
  207.         //lServo.setDirection(DcMotorSimple.Direction.REVERSE);
  208.         //lServo.setPower(1.0);
  209.     //}
  210.  
  211.     //public void leftServoIn()
  212.     //{
  213.         //lServo.setDirection(DcMotorSimple.Direction.FORWARD);
  214.         //lServo.setPower(1.0);
  215.     //}
  216.  
  217.     //public void leftServoStop()
  218.     //{
  219.         //lServo.setPower(0);
  220.     //}
  221.  
  222.     //public void rightServoOut()
  223.     //{
  224.         //rServo.setDirection(DcMotorSimple.Direction.FORWARD);
  225.         //rServo.setPower(1.0);
  226.     //}
  227.  
  228.     //public void rightServoIn()
  229.     //{
  230.         //rServo.setDirection(DcMotorSimple.Direction.REVERSE);
  231.         //rServo.setPower(1.0);
  232.     //}
  233.  
  234.     //public void rightServoStop()
  235.     //{
  236.         //rServo.setPower(0);
  237.     //}
  238.  
  239.     // Sensor Methods
  240.     //public int getRed()
  241.     //{
  242.         //return colorSensor.red();
  243.     //}
  244.  
  245.     //public int getBlue()
  246.     //{
  247.         //return colorSensor.blue();
  248.     //}
  249.  
  250.     // Helper Methods
  251.     public int distanceToRevs (double distance)
  252.     {
  253.         // TODO: REMEASURE THINGIES (CIRCUMFERENCE)
  254.         //MAKE SURE DISTANCE IS GIVEN IN CENTIMETERS
  255.         final double wheelCirc = 31.9185813;
  256.         final double gearMotorTickThing = 833.33;
  257.         return (int)(gearMotorTickThing * (distance / wheelCirc));
  258.     }
  259.  
  260.     public boolean getIsRunningToTarget()
  261.     {
  262.         return runningToTarget;
  263.     }
  264.  
  265.     public double getCurrentTimeMs() { return timer.milliseconds(); }
  266.  
  267.     public void resetCurrentTime() { timer.reset(); }
  268. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement