Elle+and+Catherine

= ﻿ //**Catherine Brescia and Elle Chrupcala**//=

Bot Description:



 * Front of Bot (Digital Designer) **




 * Birds Eye View (Digital Designer)**


 * Side of Bot (Digital Designer)**




 * Real Robot (taken on Mr. Alexander's phone)**


 * // For building instructions please go to... //**

-After many failed designs, we decided to try a low to the ground bot design. In total the bot has two wheels. The two motors extend off the front of the brick, and one wheel is connected to each motor by an axle passing through the middle of a wheel and then a motor. This design offers more stability to our bot, as well as a more intimidating appearance to others. The back wheel (as seen above), is our take on a swivel wheel. We took a ball (digital designer did, like the ones in the arena) and trapped it between two lift arms and multiple axles. It allows our bot to be more mobile/agile, in the arena. Our swivel wheel differentiates our bot from our classmate's bots. Our inspiration for this design was found online in Google images. We tried to imitate some of the designs we saw, but as there were no instructions, we took the basic idea and created our own version. Later, we watched as our classmates practiced driving their bots around the arena. We soon learned that in order to be a contender in the game we would need to devise a way to trap the balls. This led us to building our "trapper". We added a third motor to the bot, so the trapper could move up and down (while a button was pressed). We tried to use as few as parts as possible (you may think this was for design purposes, but it was us being lazy!) In the end our trapper worked well. When a button (on the joystick) is pressed, the trapper drops, and pulls the ball into its body. When we are prepared to release the ball, we would press a new button to make the trapper raise up, and allows the ball to move freely. We have found that our sleek trapper design gives our robot the appearance of an "insect." All in all we are thrilled with how the bot works and its appearance.

**Design/Building Process:**
-We faced many challenges during the design/building process of this final project. We used Constructopedia for possible bot designs. At first we tried a compact design, thinking it would be harder for other robots to flip in the arena. The design entailed a total of three wheels, two large wheels on either side of the front of the brick, and a small (stationary) wheel on the back. It posed many problems immediately upon use. The stationary back wheel did not allow the bot to spin freely; making our bot more vulnerable in the arena. Later when we engaged in practice with other robots, my partner and i noticed that if someone could pin the bot then it was only a matter of seconds before our robot was flipped. As disappointed as we were we understood that we had to start over. -The small compact idea was a bust, so we tried a lower-to-the-ground design; hoping it would be stable. It too had three wheels. But the front two wheels extend off the front end of the brick. While we liked this design, the back wheel again posed many problems for our team. After many failed attempts we finally reached a design that fulfilled all of our needs. We used a ball, like the ones in the arena, and trapped it. We then connected this to the back of our bot. It allowed the bot to spin freely without any restraint. Later we added a trapper with its own motor, to secure balls as our robot scored points for our team.

Autonomous Mode:

 * //(We struggled with autonomous mode, so instead of trying to bring balls to the mat, we decided to use our robot as a mechanical "lineman". We were going to block the other team's robots from getting the balls.)//**


 * 1) pragma config(Motor, motorB, rightB, tmotorNormal, PIDControl, encoder)
 * 2) pragma config(Motor, motorC, leftC, tmotorNormal, PIDControl, encoder)
 * !!Code automatically generated by 'ROBOTC' configuration wizard !!*

void driveForward (int lMotor, int rMotor, int rotations) //moving forward// { nMotorEncoder [leftC] = 0; nMotorEncoder [rightB] = 0; while (nMotorEncoder [rightB] < rotations) { motor[leftC] = lMotor; motor[rightB] = rMotor; } } void turning (int lMotor, int rMotor, int rotations) turning when it's greater than so many rotations { nMotorEncoder [leftC] = 0; nMotorEncoder [rightB] = 0; while (nMotorEncoder [rightB] > rotations) { motor[leftC] = lMotor; motor[rightB] = rMotor; } } task main { turning (50,-25,-200); //turning towards blue goal// driveForward (100,100,2400); drives forward to blue balls driveForward (0,0,0); //bot stops (all motors off)// }

Joystick Mode:

 * (JoyBtn2 handles the trapper, motorC is the left motor, motorB is the right motor)**//.//
 * 1) pragma config(Motor, motorA, lift, tmotorNormal, PIDControl, encoder)
 * 2) pragma config(Motor, motorB, motorB, tmotorNormal, PIDControl, encoder)
 * 3) pragma config(Motor, motorC, motorC, tmotorNormal, PIDControl, encoder)
 * !!Code automatically generated by 'ROBOTC' configuration wizard !!*

void joyDrive { if(joystick.joy1_y1 > 15 || joystick.joy1_y1 < -15) ignores the dead land- to make sure the bot won't move when no one is using the joystick { motor[motorC] = joystick.joy1_y1; } else { motor[motorC] = 0; } if(joystick.joy1_y2 > 10 || joystick.joy1_y2 < -15) { motor[motorB] = joystick.joy1_y2; } else { motor[motorB] = 0; } }
 * 1) include "JoystickDriver.c"

void drop { //Joy1-Button 2 --> the trapper portion of the robot// if(joy1Btn(2) == 1) drop trapper { motor[lift] = 50; } else if(joy1Btn (3) == 1) // raise trapper { motor[lift] = -50; } else { motor[lift] = 0; } } task main { while(true) { getJoystickSettings(joystick); joyDrive; drop; } }