Introduction: Hotel Transilvania Shrunken Head

Hello, this is my first instructable. I hope it can be useful to someone.

My goal was to make a bad-tempered shrunken head similar to that hanging to doorknobs in the animation movie Hotel Transylvania. To do that I decided to sculpt a head, make a mask using paper machée / colée, and inside this mask fit the electronics, sensors and sound system. Oh yes, it talks! :)

For electronics platform I am using Arduino Nano v 3.0. Actually next step will provide a complete materials list. Enjoy!

Step 1: Material List

Here goes the main materials list:


1. Arduino v 3.0 and development environment

2. PIR-800 - Infrared motion detector sensor

3. WTV-020sd16p - Wav player

4. PAM8403 - sound amplifier

5. 8 Ohms micro speaker

6. Light detector (resistance)

7. Wires

8. Solder iron

9. IC 7805 voltage regulator 5V

10. Two 10uF ceramic capacitors


1. Tin foil

2. Modelling clay

3. Vaseline

4. White glue (PVA)

5. Paper towel and brown envelope paper

6. Stiletto

7. Black wool for the hair

8. First aid kit Gauze - for fixing the hair

Step 2: Sculpting the Head

For starters I went online to see how people were doing this, since this would be my first attempt of sculpting anything. I found a wonderful tutorial and used a lot of things from there:

So, I made a small ball of tinfoil, covered it in a 5mm thick layer of clay, and started sculpting. As in the tutorial above, I made the eyebrows, mouth, nose, cheekbones and eye by adding more material (clay) to the base oval structure.

The picture above depicts how it looked like when ready.

After sculpting, I put it in the oven to bake. Unfortunately I used a type of clay that required a 700 deg Celsius oven to bake, which I do not possess. So I used my regular oven, with a 150 degrees Celsius temperature and the sculpture broke during the next step.

Step 3: Making the Mask

After the baking, I covered the clay with vaseline and started the paper-machée part. In order to do that I cut some paper towels in small bits, and soaked them in a glue solution, before applying to the clay.

Glue solution:

5 parts of glue, one part of water. I did not use any hardening powder, but I guess it would help. People use some kind of ceramic joiner or such.

After covering the whole front of the head with soaked paper, let it dry completely (use a fan to speed up drying). And then apply another layer. I applied 3 layers, and only in the first I used paper towel. On the other layers I used the harder yellow/brown envelope paper.

When the last layer was dry, I removed the mask from the clay. Here the original clay crumbled, for it wasn't adequately cooked. But the mask went out undamaged. I proceeded to clean the interior, and applied another 2 layers inside, without much concern for details, since those will not show.

Finally, I applied an extra layer around the border of the mask, to strengthen it. Ready to paint!

Step 4: Painting the Mask

To paint the mask I began covering it with an almost black ink. I used simple acrylic paint. Afterwards I proceeded with some dark shades of brown, and added green and yellow. Final result was reasonable, but could be way better.

Colors used:


Dark green




Dark brown


Step 5: Building the Circuit

Well, this is a big step. Please refer to the Fritzing diagram for details. To download the Fritzing tool for Circuits, go to:

Basically I hooked the wav player, PIR sensor and light sensor to the arduino, the sound amp to the wav player and the speaker to the amp. I also adapted a 2AA battery on/off switch to fit a 9V battery, and used that as single power source. In order to do that I had to make a small voltage rectifier circuit, lowering the 9V to 5V to feed the amp (maximum voltage supported 6V). The arduino handles 9V by default.

Everything ready for the next step.

Step 6: Creating the Sound

The WTV-020 module can be a bit cranky sometimes. One must test the memory card to see if it works. I used an old 256 Mb card I had stored. There are several explanations online on how to hook this module up.

To edit the sound, pitching my voice a bit higher, I used Audacity (Windows 7). Simple to use, and served me well. After generating the wav files, I exported them and converted to the weird format the WTV module supports, AD4. To do that I used AD4Converter.exe. Please observe that there are some audio details that have to be observed:

In the wav file:

Mono - 1 channel

32 KHz sample

16-bit PCM

Once it was all done, I copied the files to the card and installed it in the WTV module. Ready to play!

Step 7: Programming the Arduino

With the electronics and sound all set, I uploaded the software to the arduino. Here below is the full code I used.

The angry head will complain about noise and movement (general havoc) anytime the PIR sensor gets activated. I programmed a chill out time to avoid triggering it too often.

The stubborn little head will also yell angrily if any light disturbs its sacred sleep. The light sensor detects light levels from 0 to 256 levels, so I tested debugging the light levels to set the right threshold for complaints.

I created 5 sounds about havoc and another 5 about lights, so the poor culprit caught by that angry beast will know why the barking.


Portas Digitais 2, 3, 4, 6 Analogica A0

Fonte 9V



int resetPin = 2; // The pin number of the reset pin.

int clockPin = 3; // The pin number of the clock pin.

int dataPin = 4; // The pin number of the data pin.

int busyPin = 5; // The pin number of the busy pin.

int detectou_Atividade = 0; // Indica se PIR 800 detectou atividade

int detectou_Luz = 0; // Indica se luz foi detectada

int modo_Busca_ON = 0;

int valor_Luz = 100;

int som_Movimento=0; // de 0 a 4

int som_Luz=5; // de 5 a 9

long agora_mili, fim_mili;

long hora_final_ping, hora_atual_ping;

int intervalo_min_ping = 100;

#define pin_Presenca 6

#define pin_LeituraLuz 0

Wtv020sd16p wtv020sd16p(resetPin,clockPin,dataPin,busyPin);

void setup() {

// Ativa Serial para Debug


// Reseta modulo de som WTV020


// Inicia PIR800 - presenca

pinMode(pin_Presenca, INPUT);

int calibrationTime = 20;

//give the sensor some time to calibrate

Serial.print("Calibrando sensor de presença ");

for(int i = 0; i < calibrationTime; i++){


delay(1000); }

Serial.println(" done");

Serial.println("SENSOR ACTIVE");


} //Setup

void loop() {

// Checa sensor presenca se houver movimento ativa deteccao

int valPresenca;

if (modo_Busca_ON == 0) { valPresenca = digitalRead(pin_Presenca); delay(50); }

if ((valPresenca == LOW) && (modo_Busca_ON == 0)) { delay(450); }

if ((valPresenca == HIGH) && (modo_Busca_ON == 0)) {

detectou_Atividade = 1;

modo_Busca_ON = 1; valPresenca = LOW;

Serial.println("Detectou Atividade !!"); }

//Teste luz int leituraLuz;

leituraLuz = analogRead(pin_LeituraLuz);

Serial.print("LUZ--->"); Serial.println(leituraLuz);

if ((leituraLuz > valor_Luz) && (modo_Busca_ON ==0))

{ // Acenderam a Luz!! detectou_Luz = 1; modo_Busca_ON = 1; }


} // Main Loop

void atualiza_estados() {

// Atualiza estados de todos os componentes

if ((modo_Busca_ON == 1) && (detectou_Atividade == 1)) {

// Achou alguem se mexendo

// Toca som de algu'm se mexendo

Serial.println("Vai tocar musica 0");


if (som_Movimento == 4) { som_Movimento = 0; } else { som_Movimento++;}


Serial.print("Acabou Musica - Movimento - ");


modo_Busca_ON = 0;

detectou_Atividade =0; }

if ((modo_Busca_ON == 1) && (detectou_Luz == 1)) {

// Acenderam a luz

Serial.println("Vai tocar musica 0 por conta da luz");


if (som_Luz == 9) { som_Luz = 5; } else { som_Luz++;}


Serial.print("Acabou Musica - luz - ");


modo_Busca_ON = 0;

detectou_Luz =0;


} // Atualiza Estados


Step 8: Stuffing It All Inside the Head Mask

Positioning the sensors:

PIR-800 -> I designed the head from the beginning to have the PIR instead of an eye. You can see the evil result on the pic.

The light sensor I attached to the head's chin, is is barely visible on these pics, I made a small red annotation to help identify it.

Then I created a hard paper cover, that would fit snugly inside the mask, holding all those wires inside.

Note on the wires: I used way too long wires. That was a big trouble, and a big mistake. Next time, really small connections, to fit better. Or even better, I could have made a small PCB (printed circuit board) to make things tidier.

That's it! The final result you can see in the first picture. All the best and have fun!!

Arduino All The Things! Contest

Participated in the
Arduino All The Things! Contest