Girl Scouts - Everywhere!!!

Girl Scouting builds girls of courage, confidence, and character, who make the world a better place.

www.usfirst.org

For Inspiration and Recognition of Science and Technology

March 10, 2019
2:30-5:45

Engineering

The Beginning - New Members

Attendance

Harper H. Tempy H.

Task For The Day

  • Learning what we do at a FIRST Tech Challenge Meeting
  • Moved the Motors to either end of the robot
  • Put on the mecanum wheels
  • Test drive the robot

Journey Of The Day

 

Learning all about the Engineering Notebook and what goes in the book. We also learned about the tools we will be using to change the robot. After we learned about the tools we started using them by changing the wheels on the robot and moving two motors to the front. Then we added the mecanum wheels.

We also created a new program so we could test the driving of the robot. We worked together with the coach to get this task accomplished.  

  

Getting under the hood of Princess Charlie to change out the wheels in the front of the robot. We had to bolt the hubs to the wheels and then attach them to the robot.

 

 

 

Following is the code snipet for controlling the wheels:

   int drive_mode = 2;
   if (gamepad1.right_stick_y != 0 ||                       
        gamepad1.left_stick_y != 0 ||
        gamepad1.right_stick_x != 0 || 
        gamepad1.left_stick_x != 0) {
       // left y goes forward and backward
       // left x turns right and left
       // right x moves right and left
       // parameters  turns, front/back, moves

// scale and clip the front motors, then the aft

       double r = Math.hypot(gamepad1.right_stick_x, gamepad1.right_stick_y);
       double robotAngle = Math.atan2(gamepad1.right_stick_y, 
                                  gamepad1.right_stick_x) - Math.PI/4;
       double leftx = gamepad1.left_stick_x;
       V3 = (float)(r * Math.cos(robotAngle) + leftx);
       V4 = (float)(r * Math.sin(robotAngle) - leftx);
       V1 = (float)(r * Math.sin(robotAngle) + leftx);
       V2 = (float)(r * Math.cos(robotAngle)- leftx);
       SetDrivePower( V1, V2, V3, V4, drive_mode);
       robot.status = 0;
     } else {
       robot.right = 0;
       robot.left = 0;
     // scale the joystick value to make it easier to control
     // the robot more precisely at slower speeds.
       robot.right_frontpwr = (float) scaleInput(robot.right);
       robot.left_frontpwr = (float) scaleInput(robot.left);
       robot.right_backpwr = (float) scaleInput(robot.right);
       robot.left_backpwr = (float) scaleInput(robot.left);
       // write the values to the motors
       setDrivePower( robot.left_frontpwr, robot.right_frontpwr, robot.left_backpwr, 
                      robot.right_backpwr, drive_mode);
      }

We tried to drive the robot. While she would go forwards and backwards, it did not strafe right or left very well. After looking again, we noticed that the wheels did not have the "X" pattern from one wheel to the opposite corner. The wheels on the right side needed to be switched (front to back). After we changed that things worked a little better.