4.5 Implementation
CAD Animations
Fabrication and Assembly
The finger and arm assembly both feature a 3D printed baseplate with laser cut linkages and gears. Design decisions are documented 4.3 Design Iterations, manufacturing and assembly details not mentioned there will be highlighted below.
The finger/palm assembly features a COTS linear bearing and 8mm shaft, as well as laser cut gears modified from a McMaster CAD file. Joints are made through M3 bolts with a PTFE washer to reduce friction, as well as locknuts to prevent loosening where possible. The gears and standoff are mounted onto a 6mm shaft clamped onto the assembly with bolts.
The arm assembly has our arm mechanism crank bolted onto a metal coupler to mount onto the DC motor’s D-shaft. This coupler was extremely useful to transmit the torque required in a rigid way. Joints are made through a 6mm shaft and rotary bearings instead of bolts to allow for reduced frictional movement.
The finger assembly is mounted onto the arm assembly through a small acrylic piece that is bolted onto both the palm baseplate and the arm coupler ternary linkage. This final assembly is then clamped onto the table for rigidity.
Electronics and Circuitry
We tried to keep our electronics simple for the most part so the robot could handle their weight as the arm was rotating. We used a DC motor connected to a motor shield, in order to move the arm, which let us control the speed of the rotation. This speed was adjusted to accommodate for the force required to move the arm, while maintaining a realistic looking arm movement. For the hand and finger actuation, we used a 360 servo motor attached to the middle gear. This allowed us to continuously rotate the gears and achieve all three desired states - rock, paper, and scissors - within 720 degrees of continuous rotation.
Software
Our Arduino program combined the motion of the arm and hand together to create a realistic rock paper scissors motion. The DC motor first made three complete revolutions to demonstrate the rocking movement of the arm during game play. Then, the servo was programmed to choose one of the three positions randomly and rotate until the links were extended in that position, or stay in place in the case of rock. The initial position of the hand was in rock, so we determined the required servo rotation to achieve a paper and scissors position. After achieving the desired position, the servo would pause for a few seconds before resetting the hand back to its initial rock position. The randomness was done by having the program randomly generate a number from one to three. Each number was associated with a position, so the hand moved according to the chosen number.