Knock Block using an Arduino board

Arduino Knock Block

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.


Arduino Knock Block

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.

Parts list:
– 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

Exactly how you make your case is up to you, but ours was carved from a block of mahogany by a ShopBot CNC machine. Our design was simple so we made a 2D file and just set depths for the machine to cut (our DXF file is attached below). After routing, we handsanded the whole thing, but especially the edges to make them nice and rounded.We designed the lid to pressfit onto the body so there are no fasteners. 

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)

Arduino Knock Block circuit

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.

Read more: Knock Block using an Arduino board

Leave a Comment

Your email address will not be published. Required fields are marked *