Skip to content

willhk10/RobotArm

Repository files navigation

RobotArm

Quick links -

Note: examples lacking. provide inspiration. look at trebuchet pumpkin chuckers and other robotic arms


Project Planning

  1. Create your question:

     a) What’s the problem you’re trying to solve?
         Some people are too lazy to go outside and play with their dog or they are incapable of doing so. 
         
     b) How will you determine if you’ve solved your problem?  (make sure your problem is specific and testable!)
         We will have constructed a working robot arm that is capable of throwing a ball at a set distance. 
    
  2. Break down your problem:

    a) Criteria (goals):

     i) How does it solve the problem?
         It solves the problem by throwing a ball set distances. The distances can be changed manually.
         
     ii) What is it going to do?
         It is going to throw the ball using servos and different joints.
    

    b) Constraints (limitations)

     i) Don’t hurt anyone
     
     ii) Budget:
         Ideally $0. 
         
     iii) Time frame (roughly 2 months)
         Roughly 2 months.
         
     iv) Size (laser cutter: 300mm x 600mm , 3d Printer 8”x8”x9”)
         Size laser cutter 300mm x 600mm, 3d Printer 8”x8”x9”
         
     v) Any knowledge limitations that you’ll need to correct?
         no. our knowledge is infinite. (This is a joke, there will be obstacles we encounter that we may not know the answer to.)
    

PseudoCode

Move servo back and forth startup the servo button stuff if we want to use button import board import time import pulseio # Not sure if this is needed import servo import touchio # if we want to use capacitive touch. If not we will just use buttons

int buttonPin1 - 9; int buttonPin2 - 10;

pwm = pulseio.PWMOut(board.A3, duty_cycle=2 ** 15, frequency=50)

my_servo = servo.ContinousServo(pwm)

Using touch for telling the robot arm to throw

touch_A1 = touchio.TouchIn(board.A1)

# Use IF statements to determine if a button is being pressed
    
    # IF first button pressed, distance increase
    
    # IF second button pressed, distance decreases

# Possible errors:
    # If ball does not release, how do we change that
        # Object being thrown will be important to figuring out this issue
        
# Use IF statements to determine if the capacitive touch wire is being touched
    # IF wire is touched, arm moves and throws the ball.
    
# How do we stop the servo? Will need to find a way to stop it if something gets caught in it because it makes loud, annoying noises.
# Maybe we make it self-destruct for laughs.

Week1

2.12.21

Further planning and research -

  • Picked up a 25kg digital servo motor
  • Continued OnShape work
  • Furthered our knowledge with the coding aspect of the project
  • Next step is to work on programming the motor and determing the angular velocity and acceleration to make sure it will meet the requirements to throw a ball.
  • Will make a prototype base and arm


Week2

2.22.21

Progress made -

  • Purchased a servo tester to mess with the servo without having to use code. This speeds up the testing and debugging process
  • Determined that the use of 2 servos would be necessary in order to throw the ball at least 15 feet using calculus and angular momentum and force laws.
  • Used angular velocity to determine the horizontal displacement of the ball using the length of the arm, rotation speed, and the velocity of the arm at the launch point.
  • Purchased additional servo
  • Began prototyping arms
  • Determined the velocity and timing of second servo for optimal launch velocity and angle using calculus and force laws.


Week3

3.1.21

Progress made -

  • Received the servo tester
  • Attached it to the servo arm and cut additional pieces of Sheetmetal for prototyping
  • Began to format code and figure out how code works.
  • We have planned to meet in person to work on our project, of course while abiding by COVID precautions, and hope to come close to creating a finished Robot Arm.

3.3.21

  • We congregated at William's house, while of course abiding by COVID precautions, to revise our arm.
  • Programmed our arm to throw a set distance into a cup.
  • Revised code and prototype to make sure this action was repeatable.
  • Spoke with Mr. H about how to improve our arm.

Week4

3.8.21

Progress made -

  • We congregated at William's house again to continue working on our arm.
  • Continued work on OnShape and Circuit Python.
  • Mr. H gave us the idea to use a rotary encoder to make our project easier to use and less complicated for the user.
  • Using the rotary encoder, you can turn it the desired amount and click down on the switch to run the code. This allows us to complete the same functions that a potentiometer and button are able to complete with one switch as opposed to two.

This is an image of the sport Jai Alai. The throwing arm used in the sport is the inspiration for the "hand" of our arm.

Week5

3.15.21

Progress made -

  • Met at William's house again on Wednesday, March 17th.
  • Revised our GitHub and made sure it was up to date.
  • Wired and programmed LCD Screen and rotary encoder.

Week6

4.12.21

Progress made -

  • Today was the first day back in school since March 13th, 2020!
  • Revised our OnShape to include the correct servo, as well as adding the appropriate mates in order to complete our prototype.
  • Decided to add counter weight to reduce stress on the servo.

Week7

4.19.21

Progress made -

  • Made revisions to our model on OnShape.
  • We revised the legs, arms, and hand of our model.
  • In order to improve the structural integrity of our project, we made our legs extend further outward from the base of our arm, as well as lessen the distance from the bottom of our base to the top of our legs.
  • William revised our bottom arm to incorporate a slide that can hold a counterweight. The slide allows the counterweight move up and down to better reduce the stress on the servos.
  • The original model of our hand had an appearance similar to what we desired, but it did not accomplish the goal needed. We wanted our hand to curve, similar to that of a jai alai. To do so, we used the sweep feature, allowing us to extrude along a curved line and accomplish our goal of a curved hand.

Week8

4.26.21

Progress made -

  • Made revisions to our OnShape model in order to make it lighter.
  • By hollowing out certain parts of our arms and legs, we reduced the amount of material that is going to be used to print our parts.
  • Since hollowing out the parts would reduce the structural integrity of our project, William thought of the idea to add beams to better bear the weight of our base.

Week9

5.3.21

Progress made -

  • When attempting to print our lower arm on Monday May 3rd, we encountered an error. When inserting our arm into GrabCAD in order to 3D print it, we realized it was too long and would be unable to print. In order to fix this we broke the arm into two pieces, making the piece that held the counterweight a seperate part.
  • Removed cross sections trusses on our arms in order to streamline the printing process.
  • Added friction fit feet pieces to the bottom of the legs in order to better stabilize our model.

Week10

5.10.21

Progress made -

  • Since Lucas was in person on the 10th, with the assistance of Dr. Shields, he started 3D printing our parts. Unfortunately, during the printing process the printer malfunctioned and our parts were not able to be completed. However, on Wednesday the 12th, Mr. H was kind enough to resume the printing process for us since we were both asynchronous and unable to do so.
  • Made revisions to our CAD model so our project was more resource efficient.

Week11

5.17.21

Progress made -

  • Printing!!! And working on code at William's house
  • Dr. Shields made recommended edits to our OnShape model, more specifically our hand, in order to make the printing process more streamlined and make the assembling our project easier.

Week12

5.24.21

Progress made -

  • This week Lucas started the some of final steps to completing our project, the laser cutting of the legs and feet needed to support our project.
  • We congregated again at William's house in order to continue the assembly of our project and discuss the final steps needed for its completion.

Week13

5.31.21

Progress made -

  • Sadly with both William and Lucas having to take AP Exams, time is dwindling down. Since we had made so much progress we didn't want to give up on our project entirely so we decided to scrap the idea of having a base and legs that would be able to support our arm. Instead, we will anchor our lower servo to a piece of wood and use our newly fabricated arm and hand pieces to create our finished project.
  • We are going to do this the following week when we can meet at William's house.

Week14

6.7.21

Progress made -

  • William and Lucas congregated for the final times at William's house in order to finish our project.

  • We came to the consensus that we would rather have a finished project with not all of the components we initially wanted to include, than a memorial for an incomplete project. Furthermore, in order to create a finished project we had to remove less important aspects such as the counterweight and the LCD screen.

  • Here is the TinkerCAD for our circuit. It is extremely simple and straightforward.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages