Knock Block using an Arduino board
Knock Block: a modern knocking framework
Man has long wrestled with Time. Also, with knocking on things and not getting the time of day. We propose a knocking platform through which these fundamental needs are met. This is illustrated with the Knock Block KUI and accompanying Clock Knock Block application. The Knock Block possesses realistic knocking action with a human-like variation in frequency and amplitude of knocks.
Just knock on the Knock Block, or even the surface on which it’s resting, and it will knock back the time to you. First it will knock the number of hours, and then the quarter hours.
If you knock several times, the Mock Knock Block application will take over, and repeat back your knocking pattern.
Step 1: Inside the Knock Block
What’s inside that rich mahogany exterior? An Arduino that reads vibrations from a piezoelectric sensor and relays back information with a solenoid tapping against the resonant lid of the block. It’s all powered by one or two 9V batteries.
– any Arduino can handle this
– a TIP31C high current transistor for the switch
– the exotically named Jameco 191172-001 solenoid, prized for its low price ($3!) and current
– a Measurement Specialties DT-series piezo film element (pretty sure that’s the model)
– a 1M ohm resistor (your mileage may vary)
– 9V battery
– block case of your choice
Step 2: Choose your block
As long as it’s hard and has some space to allow the knocking to reverbrate through the body, you’re fine. We also cut an acrylic bracket that holds the parts (especially the solenoid) in place and away from the sides where they might dampen the sound.
We gave it a tongue for a nice tone, with the idea that we could make several blocks each with a different size tongue for a variety of tones.
Step 3: Wire the circuit (piezo)
Tape the piezo at the base to something hard, so it can vibrate more freely. A cheap substitute for the piezo element is an old speaker, which also can produce voltage in response to vibrations.
Schematic for wiring to an Arduino is attached.
Step 4: Wire the circuit (solenoid)
You’ll need to get a high-current transistor (we used a TIP31C) to act as a switch for the solenoid – if it’s connected directly to the Arduino it may reset the whole thing every time it activates, since it draws too much current for the Arduino to supply. Then the Arduino is only turning the base on and off, and the collector/emitter circuit is sourced by the 9V directly. The solenoid we used was designed for 12V but it has some tolerance for lower voltage at the cost of knocking volume.
Schematic and board overview attached. Notes:
– We wired the battery right into the Vin and GND pins on the Arduino (right under the resistor).
– The middle pin of the transistor is bent out so it’s not in the Arduino, and is only connected to the solenoid via the blue wire.
For more detail: Knock Block using an Arduino board