Sunday, July 19, 2009

Shower Curtain Prank




This is a another trick from Halloween '08. When the victim sat down on the toilet, a hand suddenly appeared behind the shower curtain.

This apparatus was set in the bath tub, with the curtain closed. When it was activated, the lamp turned on, back-lighting the curtain, and the cardboard hand rose up and slapped the curtain. It was very surprising, and the goofy cardboard hand profile cast a very convincing shadow. I was proud of the timing of this prank. The light drew your attention, and the rising hand made an amorphous shadow that became recognizable just as the hand made an audible slap against the curtain. There was just enough time for your mind to register a distraction from the light, then something moving toward you, then the sudden recognition of a person where (and when) you really don't expect one. It elicited strong language from some guests.

The motion was provided by the carriage mechanism of an inkjet printer. There is a small motor that runs a long belt; in the printer, the belt pulled the ink carriage across the width of the paper. The motor and belt were supported by a piece of sheet metal that was easy to screw down to a wooden base. I clamped a hinge to the belt with a bolt through two washers, and put the hinge on a strut that lifted the hand. The cardboard hand you see is stapled to another strut, which is hinged to the base at the bottom. The motor was very weak and I used cheap, sticky hinges, so I used a bag of pennies as a counterweight to make the hand rotate smoothly.


The control was done with an Arduino micro controller. It was triggered by a switch on the toilet seat--two wire coils under the seat were separated by a piece of sponge so that pressure on the seat squished the sponge and made the wires touch. The Arduino turned on the light using an H-bridge to control a relay in line with the lamp's power cord. Then it ran the motor to swing the hand out and back again. The motor was also run with an H-bridge (there are two bridges in the one chip in the photos).


The belt couldn't run too far or the hinge would hit the pulleys and probably burn out the motor, so I needed a way to recognize stopping points on each end. This was done using an optical switch from the same printer that provided the motor and belt. The optical switch is shaped like a horse shoe and senses when there is an obstruction between its arms. I connected it to the belt where the arm was hinged and set it to slide along a piece of cardboard. At the far ends of its intended travel, I punched holes in the cardboard. When the optical switch rode over a hole, it turned on and the the Arduino knew that it should stop.

No comments:

Post a Comment