Categories
Interaction Lab

Ezra’s Midterm Project Documentation

The Basketball Claw

Context and Significance 

The Basketball claw was inspired by the servo and potentiometer interaction in class. I was intrigued by how the potentiometer could remotely control the servo. My understanding of interaction stemmed from the idea of manipulating an object and eliciting a reaction from it or another separate thing. An example that comes to mind is a remote control and how you push a button or move a joystick and something changes because of it. We created a project similar to this robot arm, mainly replicating the arm design and changing how the rotation functions within it. I think the idea of automating basketball is very interesting.

Credit: Indian Lifehacker. “How to make robotic arm Using Servo And Adruino | Arduino Project.” YouTube, 26 March 2020, https://www.youtube.com/watch?app=desktop&v=WhcROiZtymQ. Accessed 18 March 2024. 

Although sports will most likely never be automated, I think our project can be seen as a crazy what-if scenario if somehow sports were played by robots. Our project is intended to give sports fans a glimpse into a fictional reality where games are played by controlled robots.

Conception and Design 

Initially, we designed the arm very similar to the video but we want to implement it in a claw machine somehow. We used cardboard to construct essentially the entire thing however things deviated when it came to designing the physical control of it.

Although we used potentiometers, we ended up creating a sort of control panel rather than a lever mechanism for the controller, mainly because the connection between the breadboard and the potentiometers was not the strongest.

Additionally based on the fragile state of the robot for most of its development we pivoted to the basketball design based on feedback from the user testing. We made these concessions during its development to ensure it didn’t break itself and so it could move more fluidly based on user inputs.

Fabrication and Production

I did the coding and circuit for the project and also helped balance the weight of the robot claw.

#include <Servo.h>

Servo servo1;
int serv1;

Servo servo2;
int serv2;

Servo servo3;
int serv3;

Servo servo4;
int serv4;

void setup() {
  servo1.attach(8);
  servo2.attach(9);
  servo3.attach(10);
  servo4.attach(11);
  Serial.begin(9600);
}

void loop() {

  //claw
  serv1 = analogRead(A0);
  serv1 = map(serv1, 0, 1023, 70, 180);
  servo1.write(serv1);
  Serial.println(serv1);
  delay(10);

  //short
  serv2 = analogRead(A1);
  serv2 = map(serv2, 0, 1023, 0, 180);
  servo2.write(serv2);
  //Serial.println(serv2);
  delay(10);

  //long
  serv3 = analogRead(A2);
  serv3 = map(serv3, 0, 1023, 0, 71);
  servo3.write(serv3);
  //Serial.println(serv3);
  delay(10);


  //rotation
  serv4 = analogRead(A3);
  serv4 = map(serv4, 0, 1023, 0, 180);
  servo4.write(serv4);
  //Serial.println(serv4);
  delay(10);
}

/**
* Servo that is controlled by potentiometer 
* This was adapted from a the slideshow found here:
* https://docs.google.com/presentation/d/1yCCIfXoCJEuapk9mgK4SxtSlUBg5GbxcDkBqGK5vkKM/edit#slide=id.g2bb177ec9fa_0_241
*/

Enlarge

circuit

Circuit from 04.2 - Actuators & Mechanisms | Sp24 slide 36

Emberlyn created the arm with cardboard and then we tested it with a servo, usually after this we had to reinforce the servo or fix any damage it caused to our project. When creating the circuit, I had to rewire it several times. At first, the cables were unorganized, and although the robot worked it was impossible to decipher which cable belonged to what. I fixed this issue by using electrical tape to connect each servo’s wires.

However, when my professor recommended I use a 12V power supply for the servos instead I had to reorganize my breadboard and essentially split it in half with one side for servos and one for potentiometers.  

This in turn made them a bit more stable but still very figgidity. Throughout the creation process, we collaborated in creating several design choices like aspects of the basketball court, and also during troubleshooting and testing the functionality of the robot arm.

Another issue that arose was the weight of our claw. The servo and their harsh movements often caused our robot to lose balance. We initially tried to add nuts to the base to weigh it down but that made it too heavy to rotate.

My professor told me instead of using weights to hold it down, I should put a wooden stick in the servo and put a toothpick through it to prevent the base from moving, which ultimately fixed our issue.

User Testing
 
 

During the user testing the main thing that was brought up was this unpredictability of our robot and also the practicality and goal of it. When we presented our prototype it couldn’t lift much of anything; however, we did manage to lift a small cotton ball thus inspiring our desire to create a basketball experience.

 

Looking at the unpredictability of the machine, I realized the issue was with the connection between the cables and the potentiometer Initially, I used 2 F/M cables and linked them to create a longer cable, which was unstable. I fixed this by soldering wires to the potentiometers to create a much stronger connection making the movement very consistent and stable.

Moreover, the design addition of the basketball court gave our project a solid and manageable goal.

Conclusion

 

Our initial goal was to create a remote interaction where users controlled a device to control a separate object. We successfully created this interaction; however, I think the end goal showed me that there is more to interaction than this remote movement. Based on the user testing and seeing other people’s projects, the context, purpose, and goal are also vital parts of an interaction. When it came time to present our project, we had a basketball court with a robot arm controlled by one person, and what felt like an arena of fans cheering them on. I feel like our project captured the feel of what could happen if players were replaced with giant robot claws. If we had more time I feel we could’ve made the claw more sturdy so it could pick up more things and also we could think of a more user-friendly way to control it besides knobs.

Through our setbacks and accomplishments with our interaction, I gained a grasp of the iterative process of creating interaction. Interaction development is very time-consuming and takes many attempts to get the smallest function working. Even though our project wasn’t perfect, I feel as though we achieved our intended purpose and gained more confidence in our ability to create interaction.

Disassembly
Appendix