Animatronic Cat Ears

117,459

346

107

Introduction: Animatronic Cat Ears

About: I'm a maker and hobbyist interested in programming, electronics, biology, art, fashion and robotics. I'm an open source advocate and all my work, both technical and artistic, is done under a free/libre license…
  I saw the demo video for the neurowear "necomimi" brain controlled cat ears and I thought they were pretty awesome.  I'm just starting to learn electronics and I thought a fun project to start out would be making my own version.  Sadly, I don't think I'm adept enough yet to take on making my own EEG and I don't think the EEG's that are available are very reasonably priced, so I settled for having a button input to control the cat ears.

  I wanted to build something that wasn't too expensive and was easy enough to be done in a sitting or two.  I picked out some cheap servo motors, some craft supplies, spent a weekend or two developing code to control the servo's from a microcontroller and after much trial and error, I built some kitty ears that I think are pretty decent.

  Here's a video of my lovely assistant using the Kitty Ears:



Step 1: Tools and Materials

Tools:
Safety glasses
Face mask
Hot glue gun (and hot glue): I picked one up for under $5 at a local Michaels Craft store.
Dremel: $18.99 at Harbor Freight Tools (http://www.harborfreight.com/professional-4-speed-rotary-tool-kit-40457.html)
Drill: $18.99 at Harbor Freight Tools (http://www.harborfreight.com/3-8-eighth-inch-variable-speed-reversible-drill-3670.html)
AVR Programmer: USBtinyISP AVR Programmer Kit from adafruit.com $22.00 (http://www.adafruit.com/products/46)
Soldering Iron
Wire strippers
Wire cutters
Flex tubing: $2.88 from WalMart

Materials:
ATTiny13: $1.09 from mouser.com (http://www.mouser.com/ProductDetail/Atmel/ATtiny13V-10PU/?qs=sGAEpiMZZMvu0Nwh4cA1wUVlLgw9m2DPt6IffusRY5Y%3d)
4x micro servo motors (hxt900 compatible): I found a few different places to get these. I've had good luck with hobbyking, but there's also dealextreme.com, suntek.com and ebay.
http://www.hobbyking.com/hobbyking/store/__9549__Turnigy_TG9e_9g_1_5kg_0_10sec_Eco_Micro_Servo.html
http://www.hobbyking.com/hobbyking/store/__662__HXT900_9g_1_6kg_12sec_Micro_Servo.html
Proto Board: $3.19 from Radio Shack (http://www.radioshack.com/product/index.jsp?productId=2102846#)
Wire: Black and Red are good choices for colors
Pushbutton: I like the sub mini pc mount pushbuttons (4 for $1.00) (http://www.allelectronics.com/make-a-store/item/PB-126/SUB-MINI-PC-MOUNT-PUSHBUTTON/1.html)
1k resistor: (brown black red)
Solder
LiPo battery: Anything that will be able to supply 3A worth of current. Here's a good choice from hobbyking for $5.33:
http://www.hobbyking.com/hobbyking/store/__9276__Turnigy_800mAh_2S_20C_Lipo_Pack.html
LiPo battery charger: You might want to shop around on ebay, but Hobby King sells one that I've used and seems to do the job here: http://www.hobbyking.com/hobbyking/store/__8247__Turnigy_2S_3S_Balance_Charger_Direct_110_240v_Input.html ($11.44)
DC-DC regulator: $4.90 from hobby king (http://www.hobbyking.com/hobbyking/store/__10312__Turnigy_5A_8_26v_SBEC_for_Lipo_.html)
Stiff plastic headband: preferably black. I found one at a garage sale, but here's a cheap source I found for them online ($7.49 for 12) (http://factorydirectcraft.com/catalog/products/2346_1302_2533_2297-21165-1_black_plastic_headbands_12pcs.html)
Black fur, white fur and grizzly black fur cloth: I found these three at Joanns for about $5-10 a yard each
Glue for glue gun
Sheet of acrylic (1/8" should do): Picked one up for around $5 at the hardware store
Metal brackets: I used mailbox brackets that I picked up at the hardware store for $7 or so
Gorilla glue

Optional Materials:
Grinder
Sewing Machine
Black insulating tape
Sand Paper

Step 2: Mounting the Base Onto the Headband

First we need to figure out where to put the ears on the headband and how to fasten them so they're firm.  You should have received some arms with the servos you ordered.  Pick out an arm that has a horizontal presence and a smaller vertical presence.  We will fasten this via screws to the head band so that the servo responsible for the left/right twisting motion of the ear will be secured to it.

Once the arm is picked out, figure out where each ear should be placed on the head band.  Drill out three holes for each ear, 6 total (3 on the left, 3 on the right).  Make sure to position the holes in as straight a line as you can, using the arm holes as a guide to the approximate location of the holes in the headband.  The line the holes lie on should be perpindicular to your face: i.e. they should run from ear to ear and not the other way.  I found that 5/64" drill bit worked well as the hole produced was just bigger than the servo screws I was using.

Once the holes are drilled, fasten the servo arm to it.  You can screw the servo into the arm through the middle screw of each arm to make sure things look right and the range of motion is preserved.  If any of the screws that jut up from the bottom interfere with the motion of the servo just use the dremel to shave off the top portion of the screw.

Step 3: Constructing the Servo Arm

Next we will create the arms that attach to the base servos where the "back and forth" servos will be attached, which I will call the "top" servos.  For a particular ear, the second, top, servo is attached to the base via a metal arm.  The top servo will be attached to the arm via a plastic arm that came with the servos.  You might need to cut an arm to fit onto the metal bracket so it doesn't jut out anywhere you don't want it to.  We will be constructing the metal arm that the top servo is attached to from the mail box brackets.

The mail box brackets are much to long so they will need to be cut.   To measure where to cut the metal mail box brackets, place the base servo on its side where at the base of the metal bracket, where it bends.  Next, place the plastic servo arm in line with the metal bracket next to the base servo.  Mark the top on the metal bracket and this is where we will need to cut.  We need to make sure the top is pretty close to the end of the plastic servo arm as any excess will interfere with the back and forth motion of the second servo.

Do this for both of the metal brackets and cut them with your dremel.  Once this is done, place the servo arm on the cut metal brackets.  Mark two dots for each metal arm where the servo arms main screw hold is and where you want the supporting screw to go.  Drill both of these holes in each of the metal brackets.

After you drill the holes for the servo arm, if you notice the corners are too sharp on the metal bracket, you might want to sand them down, either with sandpaper or a grinder.

Once you've drilled the holes in the metal bracket, it's time to glue them to the base servos.  I find gorilla glue to be strong enough.  You need to make sure that the second metal bracket is a mirror image of the the first when gluing it to the second base servo.

I had a hard time clamping them down with something that wouldn't stick to the end product so I just tried my best to position them with some clothesline clips so that the metal brackets dried with as much contact as possible to the base servo.  You need to make absolutely sure that no glue creeps into the shaft of the servo as that will ruin any possible motion.

You can also replace the metal "L" brackets with anything that is strong enough.  I tried some plastic bits that I found at a hardware store in the shape of an L, but they turned out to be not quite long enough.  The only requirement is that they light enough and strong enough to be used as an arm so you might want to experiment with some other hardware bits to see if they work better.

Step 4: Constructing the Top Servo Skeleton

Cut out a pattern in paper of what you want the front of the kitty ears to look like.  Once this is done, trace that pattern twice into the sheet of acrylic and cut it out.  I used the dremel for this and the edges were pretty rough so I had to use some sand paper to even them out.

Position each of the top servos on their respective acrylic ear cutouts so that they are as far down as possible without jutting out from the bottom.  Make sure the shaft is horizonal relative to how the kitty ears will sit.  Once satisfied with the position, glue them to the acrylic.  Make sure that, just like the base servos, you glue the acrylic to the second one so that it's a mirror image of the first.

Step 5: Wiring the Circuit

I like to cut out only what I need from the perf board and then work on that.  I use 14-16 holes across (4 for the 8-pin ic + 6 for the two servos on a side + 2 for the button + 2-4 for power and ground).

You can see my wiring.  It's a little messy, but it works.  After the wiring is done, I like to use the multimeter to test for continuity to make sure everything is connected correctly.

I used right angle (0.1") headers for any connections to the circuit.  This keeps the vertical size down and puts it onto the foot print of where the circuit will sit on the headband.  I like to put the servo connections on the sides with the battery and power connections poking out of the back.

I like to cut out a small piece of perf board and connect the pushbutton to it.  I attached long wires to it to make sure I would be able to comfortably be able to push the button even though it's connected to the circuit that will ultimately sit on my head.

In order to connect the female leads on the battery, the regulator and the circuit board, I had to make a few makeshift male to male connectors from pieces of perf board and resized headers.

You can also check the circuit diagram here at upverter: http://upverter.com/abetusk/2ff4634ff64db304/Kears/

Step 6: Programming the ATTiny13

Download the hex file for the kitty ears project from github and use avrdude (or whatever flavour of programmer you like) to program the ATTiny13. The ihex file can be found here: https://github.com/abetusk/kears/blob/release/kears.ihex.

Once it's programmed, I recommend pluggin in the power (battery through the regulator, of course), a button and a single motor to make sure everything is working as it should.

Go through each servo connection with the motor. For each posiion you should notice the servo motor wanting to be in a single position and fighting you if you try to change it. Pushing the button should also change the position of the motor.

If things aren't working, here are some common things I've found are wrong:

- Make sure continuity is correct for power, for ground, for the signal line from the micro to the signal line in the servo header.
- Make sure your battery is charged and that it's outputing somewhere in the 8-40V range. Make sure the regulator is outputting 5V.
- Make sure all connections are properly soldered on. If moving the board around, moving the servo or moving the power connection makes things jitter, this is a good indicator that a connection is coming loose or hasn't been soldered on well enough.

Whew! A lot of work, but as you'll see, things are starting to takeshape and we're more than half way finished!

Step 7: Calibrating the Servos

The servos could be given to you in a any state or you could have moved them accidentally so it's best to position the servos while they're in 'home' position and so you know that they're not going to run into anything when they're moving.

Make sure the glue has dried for the base servos and the top servos.  I like to shave off the excess gorilla glue that comes out.  When you've made sure the glue has dried, mount the base servos onto the headband.  Connect the top servos to the base servo's arm.  Connect all the servos to the circuit board, making sure to get the position correct.

Depending on your servo, there will be different colors indicating which line out is power, which one is ground and which one is signal.  servodatabase.com (http://www.servodatabase.com/) has a lot of information about the servos commonly encountered, including the HXT900 (http://www.servodatabase.com/servo/hextronik/hxt900) and the TG9e(http://www.servodatabase.com/servo/turnigy/tg9e).  A useful resource I found was here(http://www.societyofrobots.com/actuators_servos.shtml) where they give some common colors and their meaning:

    Servo Wiring
    All servos have three wires:
    Black or Brown is for ground.
    Red is for power (~4.8-6V).
    Yellow, Orange, or White is the signal wire (3-5V).

The programmed ATTiny13 expects the following arrangement (all positions as if we were wearing the kitty ears):

  pin 5 (PB0) - bottom right
  pin 2 (PB3) - top right
  pin 6 (PB1) - bottom left
  pin 7 (PB2) - top left

The datasheet for the ATTiny13 can be found here(http://www.atmel.com/Images/doc2535.pdf).

Once everything's connected, power on the circuit by attaching the battery to the regulator and the regulator to the circuit.  While the circuit is on, position each of the servos so that they rest in the desired home position.  The base servos should be facing forward and the top servos should have the acrylic in the same plane as your face.

Once they've been positioned, run through each of the preset motions to make sure they can move with the full range of motion without hitting the headband, the armiture or the other servos.  This also serves as a final test to make sure the circuit is working properly and gives you the opportunity to debug anything that might have gone wrong up till this point.

The preset motions are as follows:
    Press and hold - "Surprise"
    Tap then press and hold - "Angry/Sad"
    Tap three times - "Ear wink"

You might need to grind down the metal armiture around the edges where it's close to the top servos attached acrylic.

If the top servos motion hits the base servo during one of the preset motions, reposition the top servo forward a bit more so that its full range of backward motion is allowed.

Once the servos have been positioned, turn off the servo by disconnecting the regulator from the circuit.

Step 8: Sewing the Skin

Next we will sew the outer cloth skin of the kitty ears.

Use the same pattern that you use to cut out the acrylic, trace it onto the white fur and cut it out.  The other black fur pieces aren't as important to get their shapes right as they will be mostly following the white front ear piece.

I used a 5x8 index card with a diagonal cut into it for the back ears pattern.  Make sure to have two pairs of mirror images of the back ear cut out of the black fur cloth.  The under skirt for the ear needs to be approximately the length of the bottom ear and an inch or so in height.

Don't worry about getting the black cloth exactly right as we're going to cut it to size when it's positioned on the ears.

When sewing, use the traced pattern on the front white ear as a guide as this will be what's most visible when the ears are assembled.  After you're done sewing make sure to cut the excess seam allowance on the inside.

Step 9: Gluing the Backing for the Top Ears

This step isn't strictly necessary but I like to give the ears a little body, so I glue some foam to the back of the top ears.

First cut out the a small ridge on the bottom so that it fits snugly on the top of the top servo (behind the acrylic of course).  Once you've positioned it, trace out the edge of the acrylic ear onto the foam and cut off the excess.  Cut off the excess foam to give the ear top a little bit of a shape.  Don't worry too much about this as it's going to be obscured by the folds of the cloth skin.

Use gorilla glue to glue it to the back of the acrylic front ears and wait till it dries.

Once it's dried, I like to run through the preset motions again to make sure the backing hasn't obstructed the range of the top servos.  Depending on how thick you made the foam, there might be a little lip at the bottom that will interfere with the base servo.  If it does, just slice off the portion of the foam that hits the base servo.

Step 10: Gluing the Skin Onto the Skeleton

I'm still having trouble with this one so you're going to have to try and do what you think is best should the steps below not work for you.

After the glue has dried from the ear backing it's time to glue the skin onto the skeleton.

I've found that going from the top down works best.  First glue the top half of the skin onto each of the ears using the hot glue gun.  Once that's set and dry, I glue the top of the skirt to the base of the acrylic ear.  Once that's dried, I tilt the top servo into the 'down' position and then cut off the excess bottom of the skirt and trim the sides and back making sure to err on the side of leaving to much.

Once it's trimmed and the ears are still in the 'down' position, I put a dot of glue onto the top of the base servo and attach the skin to it.  You want to make sure there's a little give because if it's too tight the servo will be fighting against the cloth tension when in the down position.  Once that's done, I go through and glue the sides and back of the ear onto the metal arm bracket or the base servo itself.  You just have to make sure not to get any glue in the shaft of the servo as that will obstruct movement.

In all of the gluing, you want to make sure that there's enough give of the fabric for the servos.  If the fabric is wrapped too tight, the servos will be fighting against it when moving.  I'm still having trouble with this step and the end product usually has a few positions where the servos are annoyed at not being in their final position.

At any rate, once the skin is attached and the glue has dried, you should run through the motion to make sure things still look alright.



Step 11: Final Assembly

At this point the kitty ears are almost done.  All that's left is to attach the circuit to the top of the headband (I use electrical tape for this), wrap the headband in some fur to cover up the circuitry and put the wire in some housing.

To start off I wrap the circuit in electrical tape and attach it to the top of the headband.  You just need to make sure the button connection or wire and the power connection come out the back.

Once the circuit is in place I put grizzly fur on the top as it has a little body and looks a bit nicer.  I hot glue on the front half of the grizzly fur to the bottom front of the headband.  I then hot glue a strip of velcro to the other end of the grizzly fur.  I glue the mate of the velcro to the bottom of the headband.  This will allow easy access to the circuitry, should I ever need it.  Cut a hole through the back of the grizzly fur so that you can access the power and button connections and/or wires.

Then hot glue the shorter fur to the sides and front portions of the head band that still show the plastic.

Insert the wire coming out of the back of the kitty ears into the flex tubing.

I like to attach a power button in between the regulator and the battery for convenience, but that's of course not necessary.  Find some housing (I use tick tack boxes) to put the battery and regulator in so that you can put it in your pocket and you're ready to show off your kitty ears!

And there you have it, kitty ears!

I've mentioned it before, but I'll mention it here again:  The three preset motions are
    Press and hold - "Surprise"
    Tap then press and hold - "Angry/Sad"
    Tap three times - "Ear wink"

For those of you brave enough to follow this instructable all the way to the end, here's another video of my lovely assistant using them:


And here's another of an initial prototype:


Good luck and have fun!

ShopBot Challenge

Finalist in the
ShopBot Challenge

Toy Challenge 2

Participated in the
Toy Challenge 2

Make It Real Challenge

Participated in the
Make It Real Challenge

1 Person Made This Project!

Recommendations

  • Game Design: Student Design Challenge

    Game Design: Student Design Challenge
  • Big and Small Contest

    Big and Small Contest
  • For the Home Contest

    For the Home Contest

107 Comments

0
abetusk
abetusk

Reply 3 years ago

Wow, very cool! I was thinking about using those pan/tilt brackets! I'm glad you're experimenting with them. If you figure out a good way to 'skin' those pan/tilt brackets with some cloth/ears/whatever I'd love to see how you did it. You'd probably also have a sweet instructable and potentially a good product to sell.

What servos did you use? They seem really smooth and silent!

0
roman.genkhel
roman.genkhel

Reply 3 years ago

About skin... i thought to use socks...but i`m very bad artist , all of my projects looks semi-finished (another reason - lack of time )
About noise: I`m use cheapest SG-90 servos (~1$ per unit), they quite noisy, but it`s not noticeable on places where they used.

0
SpiffyBlitz
SpiffyBlitz

Question 3 years ago

Hello! Your ears look really cool! Just a quick question: would it be possible to add other animations to these ears using this tutorial? For example, if I wanted the ears to move left to right? I'm not sure as I'm very new to programming.

1
JordanLam5
JordanLam5

5 years ago

This is fantastic! I'm quite hyped about starting this project! But, at step 6, the hex file isn't available anymore with your link. Is there a way to put it back on? I doubt that i might be able to program the whole thing on my own otherwise...

0
abetusk
abetusk

Reply 4 years ago

Sorry for the massively late reply and thanks for pointing out the bad link. I changed the main repo branch to 'release' a while back and forgot to change it here. I've changed the 'ihex' file to point to the new location.

0
Udon
Udon

4 years ago

Wow. It’s very impressive you used such a great and yet minimal system. It’s sometimes hard to have the self control not to use an entire Arduino to do some project, yet you went for the attiny18, which is tight, but just enough obviously. I would love to build something like this, and I have no excuse, as I have all the stuff.

very, very impressed.

0
Beetlezb
Beetlezb

Question 4 years ago on Introduction

Do you sell these anywhere by chance? I’m not tech savvy enough to make my own lol. I have necomimi ears and they’re not half as cool as yours lol

0
Hatcrazy
Hatcrazy

Answer 4 years ago

They're pretty easy to make (I ended up doing a pair myself)! If you prefer not make them yourself though, might I suggest checking out ThinkGeeks "Twitchy Kitty Ears"? They work just like these, so that's cool!

0
pandaborn
pandaborn

6 years ago

i was wonder if you could name a general price for one these? i'm on a budget but i have almost everything i need anyway for the rest of my cosplay, and was wonder if you would be interested in selling them or a pair like them? i can go about $20 or maybe more depending on the supplies you used to make them. but i'll have to draw the line at $40

0
abetusk
abetusk

Reply 6 years ago

Unfortunately $20-$40 is too low for me to justify making these. The materials themselves will run that much. The labor on top of that and the quality of product makes it hard for me to rationalize working on it. I still haven't found a good way to "skin" the ears in cloth so that it looks good, fits well and is easy to make.

That being said, the materials are pretty cheap so this could be done by you for that much if you're willing to construct the ears yourself. If this is something that you'd like to do but have trouble programming the microchip (or have any other questions) then PM me and maybe we can work something out.

0
T0BY
T0BY

6 years ago

I love it! The video is brilliant!

0
NicoleP48
NicoleP48

7 years ago

Hi I'm making this proyect for my electronic class and I'd be thankful if you suggest me what program is good for the attiny13, cause that's the only thing I need and I don't know what program works for the attiny13 I'm king of new for programming

0
abetusk
abetusk

Reply 7 years ago

Hi NicoleP48!

Unfortunately the ATTiny13 is a bit involved to program. There are a few ways to get the program onto the chip that controls the servos (the motors in the ears) and listens to the buttons and I'll list them in order of difficulty below, from easiest to hardest.

The basic idea is that the ATTiny13 chip needs to be programmed with a HEX file. The HEX file is like a binary program for the ATTiny13 (like an EXE on a Windows machine) and can be located here: https://raw.githubusercontent.com/abetusk/kears/release/kears.ihex . Download a copy of that HEX file and save it for later. The next step is to get the HEX file into the ATTiny13.

Maybe the easiest way is to try to use an Arduino as a the device that programs the ATTiny13. Try taking a look at the following links:

https://www.instructables.com/id/Programming-an-ATTiny13A-using-Arduino-servo-int/
https://www.youtube.com/watch?v=p-fieBPj9Ng
https://www.instructables.com/id/ArduinoISP-wire-harness/

The first instructable shows you how to wire the Arduino to the ATTiny13. The third one tells you how to use 'avrdude' to program using the Arduino (don't worry that the third instructable has a different 'target' chip, the wiring is the same as in the first one and the steps are still the same).

Another separate way not using the Arduino is to buy a dedicated USB ISP programmer (the ISP stands for 'in system programmer' which is the method by which the ATTiny13 is programmed). They are fairly cheap and doing a search for 'usb isp' should give you some links as to where to buy them. Here is one that I found though I haven't used it myself:

https://www.sparkfun.com/products/11801

Once you have the programmer and the ATTiny13 chip, you can program it. One program to do that is called 'avrdude' and you can see how to use it with the USBtinyISP (which is the programmer listed above) here:

https://learn.adafruit.com/usbtinyisp/avrdude

Don't worry that they mention 'ATTiny45' or ATTiny85', they should be mostly equivalent to the ATTiny13. If you go this route, you'll need to program the chip by invoking 'avrdude' with something like the following from the command line:

avrdude -c usbtiny -p t13 flash:w:kears.ihex

Where 'usbtiny' is the programmer (the USBtinyISP from Sparkfun), the 't13' is the target chip, in this case the ATTiny13 which as a code of 't13' and the command, which is 'flash', 'w' for write and 'kears.ihex', the HEX file downloaded earlier.

Sorry about it being so complicated! The ATTiny13 is a very nice chip and it's great that it's so small but it's also a real pain to program so it's not very beginner friendly. Most of what's needed is to wire one pin to another and make sure they all match up.

If you want to do a little investigation, I think the following links could be helpful:

http://highlowtech.org/?p=1695
http://www.elecrom.com/2009/04/15/avrdude-tutorial-burning-hex-files-using-usbasp-and-avrdude/
https://learn.adafruit.com/usbtinyisp
http://www.ladyada.net/learn/avr/avrdude.html
https://www.instructables.com/id/Program-an-ATtiny-with-Arduino/
http://highlowtech.org/?p=1229
http://brownsofa.org/blog/2011/01/01/the-compleat-attiny13-led-flasher/

If you can, I would suggest trying to program a simple 'LED flasher' circuit to test that the programmer is working before trying to hook up the servos. Once you get to the point of trying to hook the servos up, I would hook up the button and just one servo to test and make sure it's working on one servo. Once that's successful, you can then hook up the rest of the servos and build the rest of the project.

I'm happy to help if you have any problems, just let me know. Good luck!

0
NicoleP48
NicoleP48

Reply 7 years ago

Thank you sooo much!!!

0
NekoLoveDoll
NekoLoveDoll

7 years ago

How much you sell cat ears for?

0
abetusk
abetusk

Reply 7 years ago

I haven't built any for sale. How much would you pay?

this will be perfect for cosplay and a gift to someone! :D but one question, is the button for the ears on a separate part like a remote or something?