Glad to move away from the clothing domain, I built a simple single degree of freedom robotic arm. All of the materials used to make the arm were scavenged from various scrap bins laying around the CMU Robotics Club. I also used this excercise to practice a little “improvisational building”, that is, I had no predefined design or plan of what this arm was going to look like, rather, I just started building and the form of the arm evolved as I built. The robot uses two servos, one to control the position of the arm, and the other to control the opening and closing of the gripper.
The arm has two modes, which are selected by throwing a 3 postion switch to the left or right (the middle position is neutral). Flipping the switch to the right puts the arm in automatic mode. Explaining the automatic mode requires a bit of additional information about the area the robotic arm operates in. There is a small wooden block with a rounded recess for placing a small copper ball into. This rounded recess contains two wires, creating an open switch. When the copper ball is placed in the recess, the circuit is completed and the switch activated. The code running the robot then moves the robotic arm into a position so it can grab the ball from the block. After moving into position and pausing for a second, the gripper closes and grabs the ball. Then , the arm moves to a position to drop the ball into a square box. After dropping the ball, the arm returns to an idle position, and then conintues reading the checking the ball switch to see if another ball has set on the block. The robot will continuously pick and place the balls as long as it is fed them.
Flipping the mode selector switch to the left activates the manual control mode, giving the user control over the arm. Pressing the push button on the control panel toggles the gripper between the open and closed positions. Turing the knob, which is connected to a potentiometer, sets the position of the arm.
The code to operate the arm can be viewed here (.txt). It uses the ServoTimer1 library for controlling the servos.
Here is a short video demonstrating the robot’s capabilities: