For our Halloween-themed Physical Computing midterm, my partner and I built a hand which accepts candy and drops it in a bucket. We used a stronger 5V servo motor than the standard Arduino ones, due to the weight of the hand. It moves more slowly, but that works well for the interactivity of our device. Here is a video of it in action.
As you can see at the end of the first video, the hand tends to fall off after a couple turns. This is because the hand attaches directly to the servo's connection point, relying only on friction. As the hand turns, its weight pulls it off. So, although we correctly bought a stronger servo to handle the torque of the rotating hand, we failed to anticipate the need for stronger support to hold the hand upright. Had we done so, we could've attached the hand to a supported axle, which would then be turned by the servo.
The hand uses a light sensor to detect the presence of candy on the palm. When anything obscures the sensor, it accepts the candy. However, when we moved our project from the workshop to the classroom for presentation, it did not work consistently without further code editing. This is because we were using a simple threshold to divide the sensor's range into "open" vs "obscured," and the lighting conditions in the classroom were different. We had to adjust the threshold accordingly. To solve this problem, we could've used other sensing algorithms, such as looking for a sudden drop in the sensor value. Alternatively, we could have added a hidden button that one of us would press to establish a baseline lighting level for the room.