Introduction: How to Make a "Ghost Knocker"

Picture of How to Make a "Ghost Knocker"
Now you can buy the kit of this instructable from Jameco!

This project is named "Ghost Knocker". You will get the idea if you watch this movie.

It is an easy prototyping. You can use it on toilets, closets, or office doors.
Make your own, and make someone surprised and laugh!

Step 1: Check the Materials You Need.

Picture of Check the Materials You Need.

Below is the list of stuff you need to make it:

1. Arduino
I used an Arduino Pro Mini 3.3V. You also need USB-Serial tether to program it.

2. A battery box
I used a AA x 4 battery box with power line wires.

3. Breadborad
I used a mini breadboard by Sparkfun.

4. ECM (Electet Microphone) Module
I used an ECM module by Sparkfun.

5. RC Servo motor
I used a mini servo motor EK2-0508 by E-Sky.

6. Jumper wires

7. An Aluminum Electrolytic Capacitor
I used a 100uF capacitor.

8. A knocker hammer parts
I used a small wooden ball toy.

9. A flexible metal wire
It is for connecting the servo horn and the knocker hammer.
A steel wire 2mm in diameter will be suitable.

10. Double-stick tape
It is for making the parts bond, and for mounting the device on the door.

Step 2: Make the Knocker Hammer.

Picture of Make the Knocker Hammer.

Make two holes in to servo horn.

Make the wire to be in hole and bend it to fix on the servo horn.

Bond the ball (or whatever you choose for hammer) to the wire.
Drill the hammer if you need.

Step 3: Mount the Breadboard and the Servo on the Battery Box.

Picture of Mount the Breadboard and the Servo on the Battery Box.

Mount the breadboard to battery box with double-stick tape.

And make the RC servo fix on the battery box to move the servo horn can move.

Step 4: Wire the Circuit on the Bread Board.

Picture of Wire the Circuit on the Bread Board.

Wire the circuit on the borad. It is a quite simple circuit. Check the circuit diagram.

Analog input is for the microphone, and Digital Output(PWM) for the servo motor.
The mic module needs the power at Vcc(3.3V) from arduino's Vcc pin.
The servo motor requires  5 to 6V to be driven, so you connect the battery power to it. 

What is the capacitor into VCC and GND? Because I have been suffered from the noise of microphone. The combination of the ECM module by Sparkfun and Arduino seems to be unstable. For instance, when I wrote serial communication code to monitor A/D value, it cause enormous noise and the A/D value keeps high. So the capacitor is to ease my mind.

Step 5: Download the Program.

Picture of Download the Program.

Download the arduino program.

Program code for arduino:

It recognizes the knocking sound and counts them, and move the servo to mimic the knocks.

Step 6: Check and Adjust the Hammer Position.

Picture of Check and Adjust the Hammer Position.

You will need to make the position of hammer.
Bend the wire of hammer to make knock the door face properly.

Step 7: Finished!

Picture of Finished!

OK, all done!

Now put it on the door face with double stick tapes.

It may help the prank to put  a sign "Knock please." on the other side of door.



AdilkhanB (author)2016-03-27

May you write here program code for arduino?

thank you very much :D

AdilkhanB (author)AdilkhanB2016-03-27

because that code which have you given for us doesnt work((

mecha2012 (author)2013-04-10

I managed to figure out the coding problem.It turns out something wrong with my computer. I used the computer and no error show. I'm using arduino pro mini. I already build the circuit according to the pic above but its not working. The servo motor give no reaction whenever I knock something. Also when I open the serial monitor it didn't print out anything. But from the coding given, there should be something printed out. I attached pic of the project so far.

Thank you.

longjie0723 (author)mecha20122013-04-13

At first, if you change my code to comment following lines in, you can see analog value from mic by using "serial monitor".

//Serial.print (val);
//Serial.print ("\n");

If you can not see any message on the serial monitor, the arduino doesn't wrok correctly, and I have no idea what happens... Something wrong with the arduino or PC or the connection.

If you can see value between 0 to 100, it means the audio level of the mic.
Check the value when the mic in silence or knocked sound. If the value doesn't change, something wrong with the mic input. You may need to tune the gain of mic module (sorry I don't know anything about the module you are using).

If the value changes corresponding to the sound loudness, you are very close to the goal.
Change the value "silent_thre" as the output value gets higher than it when you make a knock sound.

And setting the value "debug" to 1 will help you to see what happens.

Good luck,


mecha2012 (author)2013-03-27

Hye there. I tried to do this project for fun. I already got all the parts except the arduino coding. I already download it from the link attached but I can't open it with arduino software. This is error message when I tried to open it.

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0

This is only part of the error message. Almost got it working except for the coding.


mecha2012 (author)mecha20122013-03-27

Is there any way I can get the coding working? Or at least I can open it?

longjie0723 (author)mecha20122013-03-27

Hmm, I tried the code with the newest arduino (1.0.4) on MacOS X, but no error to open. Which platform and version of the arduino are you using?

stringstretcher (author)2012-11-25

I have to restart my Arduino after about 5 cycles or knocks. Why is that? Otherwise, I have gotten it working with a piezo disc and no capacitor. Still I need to adjust the input values a little to get it working well. Love it!
Thank you!

I didn't notice that problem. I'll check it later. Thanks!

Husham Samir (author)2012-06-15

Great Job,

megaduty (author)2012-05-26

Good bathroom fun right there!

ashrat (author)2012-05-05

Good stuff!

Just wodnering, is the capacitor value of 100uF important? How would a higher value affect this?

longjie0723 (author)ashrat2012-05-05

Thank you! The capacitor value is not important. I'm not sure it is really needed. I encountered the problem the combination of sparkfun's MCM module and arduino board causes unstable output. I doubted the power quality from arduino, and added the capacitor. It seems help somehow.

BrownDogGadgets (author)2012-04-23

Sugoi! Imoshiroi Arduino no hatsumei!

Anata no kodomo wa totemo kawaii! Nan sai desu ka?

Gomenasai, sukoshi nihongo wo hanasemasu.

(Instructable no website wa hiragana dekenai. Za nen.)

dunnos (author)BrownDogGadgets2012-04-26

Nice! Interesting Arduino invention!
Your kid is really cute? How old is he?
I am sorry, something about letting something go
(the instructable website doesn't have hiragana. Too bad.)

Was I close? :P

BrownDogGadgets (author)dunnos2012-04-29

I'm sorry, I only can speak a little Japanese. (I've forgotten so much since leaving.)

(Good job.)

Thank you, Arigato !

My son is 3 years old. He is enough brave to see a ghost ^^)

pbecker83 (author)2012-04-26

Havent seen an Arduino Vs yet. Cool. Here is a picaxe Vs a few years back.

longjie0723 (author)pbecker832012-04-27

Thank you! I haven't seen this project, it is brilliant! A lovely small box.

Backpackboy (author)2012-04-23

Where I can GEt The Arduino Control!!!

omnibot (author)Backpackboy2012-04-23

Here is a list of distributors:

Backpackboy (author)omnibot2012-04-26


hasson (author)2012-04-25

Awesome, I'm definitely going to do this!

urosepsis (author)2012-04-24

Great job, I'm always on the look out for good pranks. My two girls will love it. Thank you.

DRH1469 (author)2012-04-23

That is halirous i'm lol lmao lmfao

About This Instructable




More by longjie0723:Roomblock: a Platform for Learning ROS Navigation With Roomba, Raspberry Pi and RPLIDARHow to make a "Ghost Knocker"How to make a HEXBUG nano to be activated by light.
Add instructable to: