Wiring and Code

The electrical side of our mechanism was fairly straightforward. Our goal was to develop a simple, intuitive method to control the device. Our desired motion was simple: push down on one button and the motor rotates clockwise to close the pliers. Push down on a second button and the motor rotates counterclockwise to open the pliers. If neither button is pushed, do nothing.

To accomplish this we used the Arduino Uno, in combination with the Pololu Dual MC33926 Motor Driver Shield, as our controller. We used two simple pushbuttons wired in the following manner: one side of the push button was connected to 5V as well as a digital pin on the arduino. The other side of the pushbotton was then connected through a pull-up resistor to ground. The code reads each digtial pins as an input and then drives the motor in the corresponding fashion if it reads that either button is pushed. See below for code used.

We powered our mechanism using 8 AA batteries in series to achieve the 12V desired for the motor. We incorporated a hard switch between the positive terminal of the batteries and the arduino to allow the mechanism to be powered on/off without disconnecting the leads from the arduino itself.

We chose not to incorporate any complex control to stop the pliers when they were fully closed or open, as this would be difficult to implement and would require the controller to know where it was in the range of motion when it was first turned on. Instead, we used nylon set screws between the coupler and the motor shaft. This limited the torque that could be transferred between the motor and coupler, thus stopping the motion of the linkage once a the preset threshold torque was reached. This would prevent the device from destroying itself when it reached either end of its range of motion, or if the user was trying to grip an object with a very high amount of force.

 

Code: