Kuro the Kitten Puppet

by ktran01 in Circuits > Sensors

927 Views, 5 Favorites, 0 Comments

Kuro the Kitten Puppet

KuroDemo
1.jpg
2.jpg
5.jpg
3.jpg
4.jpg
Dia1.jpg
Dia2.png

What is Kuro?

Kuro the Kitten is an interactive hand puppet (approx. 9 inches from paw to paw and 9.5 inches from opening to ears) with tactile and auditory feedback. By inserting their hand into the puppet, the handler can hug little toys (a fish, a mouse, and a bird) and listen for their sounds. Additionally, the top of the puppet’s can be stroked like a kitten, and the handler can both feel for and listen to Kuro’s purring. Both the toys and the puppet are handmade from yarn and soft fabrics, with plastic eyes to adorn the face. A USB cable peeks out from the puppet's opening; this is connected to a device running a P5 program that can output recorded audio for this experience.

How Kuro Works

The circuitry of this puppet boils down to two main interactions: the stroking of the puppet’s head and the hugging of toys to the puppet's chest. 

For the first interaction, the handler can stroke the top of the puppet’s head to simulate petting a kitten. The pressure from this stroking can be detected from a piece of conductive fabric that is inside of the puppet, serving as the input for this interaction. A vibration motor, also inside of the puppet, serves as the output, in which case the motor will be set off from the detected pressure and give some tactile feedback for the handler. The fabric and motor are wired to a Protoboard that has an Arduino Nano 33 IoT microcontroller and appropriate circuit parts soldered to it; an external microUSB to USB connects directly to this microcontroller, and the USB is fed from the protoboard to a device such as a laptop. This laptop can run a P5 program that will play a recorded audio of a cat purring.

For the second interaction, an RFID reader is embedded into the chest of the puppet, and RFID tag buttons are embedded inside each of the toys (total of 3 buttons). When the puppet hugs the toys to its body (or at least the handler taps the toys to the puppet's chest), the reader will detect the tag embedded in each toy and a recorded audio of each respective toy animal’s sound will play out loud. The RFID reader is is connected to a smaller Protoboard with wires extending to the aforementioned Protoboard with the microcontroller.

Each toy is crocheted by hand using acrylic yarn, and ome polyfill will be added to each toy to give it some shape and squish. The puppet is also crocheted by hand, and has cotton fabric lining the inside of it for the comfort of the puppet handler’s hand. Some polyfill will likewise be added to the puppet’s head and arms to give it some shape and squish, as well as help cushion the internal circuitry.

Why Create Kuro?

Kuro’s creation is aimed towards a younger demographic to encourage a playful and sensory-engaging experience. The recorded audio of various animal sounds (in addition to Kuro’s purring sound, there is a fish’s bubbling, a mouse’s squeak, and a bird’s chirp) and the vibration from the motor inside of the puppet work together to entertain and engage the senses of a younger audience. The softness of the puppet’s fabric, both on the outside and on the inside, and its overall cute appearance is kid-friendly and endearing. Hand puppets are not only enjoyable for the handler, but they’re also enjoyable for others who get to see this puppet come to life at the “hand” of a friend or loved one. The inspiration for this idea came from talking to Chris Hill (who has previously created projects involving puppets), from considering my younger cousin’s love for plushies, and a hand puppet I had when I was younger. (Here is a reference image, and here's another).

Supplies

FDUBMQUKX7JQVZ8.jpeg
4.jpg

‒‒‒‒‒ Technical Materials ‒‒‒‒‒

‒‒‒‒‒ General Materials ‒‒‒‒‒

‒‒‒‒‒ Circuitry Materials, Interaction 1: Petting the Puppet, Tactile + Audio Feedback ‒‒‒‒‒

‒‒‒‒‒ Circuitry Materials, Interaction 2: Hug Toys, Audio Feedback ‒‒‒‒‒

‒‒‒‒‒ Enclosure Materials ‒‒‒‒‒

Prepare Conductive Fabric

6.jpg
7.jpg
8.jpg

First up is cutting a nice rectangle of conductive fabric to use for our puppet. My fabric was approx. 3 inches by 2 inches, but the sizing (and shape!) can vary according to your preferences. So long as it's a fabric that can fit inside your puppet for some petting action, you're all set!

You'll also need wire connected to this fabric in order to detect changes in resistance. I used black silicon coated stranded wire, 10 inches in length should be plenty. Strip one end of the wire and place it on the fabric. I decided to run the wire up and down the width of the conductive fabric to give it some structure, and used copper tape right over the stripped end of the wire to hold it down in place against the fabric. This tape will help to ensure the connection from the fabric to the wire. Last thing I did was add some hot glue to the wire to keep it in place and added electrical tape to really make sure that the wire doesn't get detached from the fabric.

Here are some of the sites I referenced in exploring capacitive fabric's applications. This is one, here is another, and yet another. All great Instructables!!

Interested in working more with capacitive sensing at large? Check out this source, and this source, I referenced these.

Prepare the Vibration Motor

9.jpg
10.jpg
11.jpg

Next up is preparing the vibration motor for use. This is a simple vibration motor from SparkFun. I added some hot glue right at the junction between the motor and the small thin wires to prevent any breakage.

The length of these wires is hardly enough, so it's necessary to extend the length of the motor's power and ground wires. I took red and blue silicon coated stranded wires and stripped the ends of each. The next step is to solder the motor's red and blue wires to the respective red and blue silicon wires (of which should also be about 10 inches in length).

To secure these connections after soldering, hot glue can be added around the connections. To REALLY top it off, I taped the connections as well with masking tape. As you can tell, I like to make sure my connections are solid.

Complete and Test the Petting Circuitry

Petting_schem.png
12.jpg
13.jpg
14.jpg
15.jpg

Moving onto the circuitry for the petting interaction, above you'll find the schematic for the wiring. The full size Protoboard is pictured here, but I actually only use approx. 3.5 inches by 3 inches of the board, so I broke the appropriate part off later.

You'll find female header pins soldered onto the breakaway Prototype board above in pictures 2 and 3; this will allow the addition and removal of the microcontroller from the Protoboard, instead of soldering the microcontroller directly to the board. You'll also see two long wires extending out towards the left and to the top of the Protoboard; these are my ground and 5v power wires. I chose to have long wires extending out in this fashion, since I've got several different working components in the overall circuitry of this project that require power and ground connections. This allows the soldering and wire wrapping of components on the Protoboard to occur much more smoothly. On the back of the board, you'll see several yellow solid core wires. I used solid core wire to make connections to the pins on the female headers, and I secured the bends in these wires using hot glue.

The conductive fabric is connected to two female header pins, which are the placement of digital pin 4 and analog pin A2 on the Nano 33 IoT, with a 1k megaohm resistor added (pictures 2 and 3).

As for the vibration motor, it's necessary to include the transistor and diode for this project (pictures 4 and 5). Here's a source with more detail on the circuit. The third leg of the transistor is connected to the ground wire on Arduino. The middle/first leg is connected to a 1K ohm resistor, which is then connected to to the female header pin where analog pin A5 on the Nano 33 IoT would be. The second leg of the transistor is connected to the vibration motor's blue stranded silicon wire and one end of a diode (no stripe). The other end of the diode (with a stripe) is connected to the vibration motor's red stranded silicon wire and the 5v power wire of the Arduino.

NOTE: I do recommend using a breadboard to test out the circuitry first before soldering everything onto a Protoboard, by the way.

Finally, you are free to use this code to test this petting interaction. Touching/bending the conductive fabric should set off the vibration motor when a certain value (1000 or higher) from the fabric is read. You can change this number to be whatever you prefer.

Soldering the RFID Reader

RFID.png
18.jpg
16.jpg
17.jpg

Moving on to soldering the RFID reader! This helpful guide from Sparkfun will walk you through the process of soldering header pins into the RFID breakout. The reader will be soldered onto this breakout board, and we'll later solder this breakout board onto a Protoboard (with additional header pins).

NOTE: Be mindful of which side is the "correct" side for soldering. If you can read the words "RFID Breakout" on the breakout board, you've got the right side or the front side up. The reader will be placed directly on top of the breakout board from here.

From the guide, you'll see that male headers will be soldered to the back of the breakout board (left side will have a 5 pin male header soldered to the back, and the right side will have a 6 pin male header soldered to the back). The guide suggests that you can also solder female headers to the front of the breakout board (6 pin female header on top, 5 pin female header on the bottom). This will prevent you from having to solder the reader directly to the breakout board; however, I didn't have those headers, so I ended up soldering the reader directly to the breakout board.

Either way works! Just ensure you have good connections and your soldering is neat, since it will affect the reader's capabilities if the soldering is messy.

By the way, if you'd like to see more of RFID readers in action, you can check out this and this Instructables!

Complete and Test the Toy Circuitry

RFID_schem.png
19.jpg
20.jpg
21a.jpg
21b.jpg

At last, we've come to the final step in building our puppet's circuitry! Above you'll find the schematic for the RFID reader. The protoboard I ended up using was approx. 1 inch by 2.5 inches. You'll need about 10 inches of the following wires, make sure to strip both ends:

Blue silicon stranded wire connects GND on breakout board to ground on Arduino.

Red silicon stranded wire connects VCC on breakout board to 5v power on Arduino.

Yellow silicon stranded wire connects D0 on breakout board to RX pin on Arduino.

Blue silicon stranded wire connects FORM to ground on Arduino.

You'll see in the pictures with the RFID reader above (pictures 2 and 3), I decided to solder each of the silicon stranded wires to appropriately colored solid core wires. I had stripped both ends of a small piece of solid core wire, and one end had the stranded wire soldered to it and the other was meant to be soldered to the pins on the reader's breakout board. I suggest you do the same unless you're confident in soldering stranded wires to the breakout board's pins (I was not confident :<). I secured these connections with hot glue to prevent any breakage.

With the connections successfully made to the reader, you'll move on to soldering the other ends of the four wires to the Protoboard we worked on in step 3. The long ground and power wires we had previously made in step 3 come in handy here, making it easy to solder the two blue silicon stranded wires directly to the ground wire and the red silicon stranded wire to the power wire. The yellow silicon stranded wire I also ended up soldering to a small piece of yellow solid core wire as well, which was then soldered to the female header pin (where the RX pin of the microcontroller would be).

NOTE: I do recommend using a breadboard to test out the circuitry first before soldering everything onto a Protoboard, by the way.

Finally, You are free to use this code to test this toy hugging interaction. Waving the tags over the RFID reader should print to the monitor the ID's of each tag. You'll want to keep record of these ID's for later when you get the Comprehensive Arduino code (Step 20). There are sample Tag ID's in the code, and you'll change those to match whatever ID's of the tags you have.

Crochet the Toys

22.jpg
23.jpg
24.jpg
25.jpg

Here comes the exciting part: crocheting! Three different toys will be made for this project, but you're free to make as many toys as you'd like (you'd have to get more RFID tags, of course).

We'll be making a mouse, a fish, and a bird for Kuro. Each toy is made using Medium 4 worsted weight acrylic yarn, polyfill, a 3.5 mm hook, and a yarn needle. Each toy comes out to be approx. 2 inches by 1.5 inches in size.

This is the pattern I referenced in making the mouse, this is the pattern I referenced in making the bird, and this is the pattern I referenced in making the fish, but I altered all three of the patterns to make them smaller and less complex. Check out the PDF attached below.

In the picture above, you'll see my process for embedding the tags into a toy. I get about 2/3 of the way through a crochet pattern, begin stuffing the toy lightly, and then add the tag in the center of the toy. You can add the tag anywhere you'd like in the toy, but I felt like putting it right in the center made the most sense. After embedding the tag, you'll add more polyfill to cushion the tag and then finish your pattern and weave in the ends.

NOTE: I recommend testing your RFID reader again to see if it detects your tags, or you need to go back and re-crochet the toys if you've added too much stuffing or the toy ends up being too large.

Creating the Puppet Body, Face, and Ears

9.jpg
10.jpg
11.jpg

Let's tackle the big dog: crocheting the puppet's body! You'll be using the Bernat velvet yarn in both black and white here, as well as the 6.5 mm. hook, polyfill, and yarn needle. The puppet comes out to be approx. 9 inches by 9.5 inches in size, though the opening of the puppet is approx. 7 inches across.

This is the pattern I referenced in making the puppet's body and ears, but I altered the pattern to make it larger, and to round off both the paws of the puppet and the head as well. The altered PDF is attached below.

For the body, you'll be making two of those puppet body shapes, we'll sew these two pieces together later. (If you're referencing the original pattern, stop after you've created the 2x of the puppet body shape.)

For the ears, you'll can reference the original pattern (I also have those details in the altered pattern PDF), and you'll be making four of those cat ear shapes: two in black and two in white. You'll sew one white ear to one black ear, and the other white ear to the other black ear. (OPTIONAL: you can also stuff the ears with some polyfill to give it some shape, which is what I did.)

NOTE: For the ears, I recommend not sewing them onto the puppet right now and instead do so after step 12. The puppet needs to be sewn together first, and I think it's better to figure out where the circuitry should lie inside of the puppet first before worrying about the ears. I personally didn't sew the ears onto body until the very very end, like after step 19, because I wanted to see how the body would be shaped before I sewed on the ears in order to determine placement.

For the face, you can see I've crochet a circle using white yarn (those details are on the altered pattern PDF), and then stitched a little face on it using black yarn. I actually later changed this, and removed the white circle and solely used white yarn to stitch a mouth and whiskers onto the puppet's body directly. You can make the face however you'd like!

For the eyes, I inserted two plastic eyes near the center of the puppet's head. You can use any eye color you'd like, I went for a plain black set of eyes.

Sewing Together the Body

13.jpg
12.jpg

This part is pretty easy. You'll sew together the "wrong faces", or the "wrong sides" of your puppet body with the same yarn you used to crochet the body. You'll want to do this because our next step is embedding the circuitry onto the puppet. At then end, we'll flip the puppet outside in so the cute little face is visible and the circuitry is all inside of the puppet.

Pro Tip: You'll know you're looking at the wrong side of your puppet body if you don't see that cute face you just made and instead see a monstrosity, like in the picture above.

Embedding the Circuitry: Conductive Fabric

15.jpg
14.jpg

Now with our two puppet body shapes sewn together, we'll move on to embedding our circuitry. Taking the conductive fabric you prepared earlier, you'll flip the fabric over so that the side (NOT taped) is touching the puppet's body. Remember we're working with the puppet body that's currently flipped inside out, so we want to be looking at all the ugly, or "wrong" sides of our parts since all of this will be inside of the puppet. (Imagine flipping the puppet outside in so that the cute face is visible on the outside and the circuitry is on the inside; you'll want the conductive fabric to be facing right up alongside the top of the puppet's head to sense someone petting the puppet!)

OPTIONAL: you can use Velcro to help stick the fabric to the puppet's body. However, I found that this didn't work too well because of the softness of the yarn, and the Velcro ended up unsticking anyways.

You'll move on to sewing the sides of the conductive fabric into the top of the head of the puppet. Make sure you don't sew the fabric into both sides of the puppet's body, only just the top of its head. Sticking a hand inside of the puppet to help hold onto the puppet as you sew will help.

Embedding the Circuitry: RFID Reader and Vibration Motor

16.jpg
17.jpg

Up next, we'll determine where to embed our reader and motor in our puppet.

I placed the reader in the chest of the puppet with the Protoboard oriented vertically to allow some movement in the puppet's arms when someone curls their hand inside of the puppet. The vibration motor can honestly be placed anywhere in the puppet, you can glue it to the conductive fabric or to the face of the puppet if you wanted. I decided to glue the motor to an empty spot on the reader's protoboard to keep things simple and tidy with the circuitry. Wherever you place the motor, just make sure to glue it securely to that surface so that the motor doesn't move around so much when the puppet is being handled.

The best way to go about this is to crochet a little pocket the size of the Protoboard right into the chest of the puppet. I did this by crocheting just a little square and then sewing that square with yarn right into the puppet's body. The pattern I used is attached below under Small Pocket, but you are free to adjust the pattern as you'd like to get the correct pocket size (just add more chains or or more rows of double crochets to fit your needs).

Now the reader's Protoboard should fit snugly into the pocket!

NOTE: make sure that the pocket is deep enough to fit at least half of the Protoboard into it, or is at least snug enough so that the board doesn't slip out of the pocket.

Embedding the Circuitry: Microcontroller

18.jpg
19.jpg

Now we'll determine where to embed our larger Protoboard that will house our microcontroller (that will be connected to our device via a USB). This Protoboard will be situated at the back of the puppet, unlike the RFID reader Protoboard which was situated at the puppet's chest in the front. Flip over your puppet, and we'll place our larger Protoboard at the lower center of the puppet, near the puppet's opening.

Our wires will wrap around the side of the puppet (near it's shoulders) at this point, and if you feel like the wires are way too long and messy, you can go ahead and add a twist tie for some wire management. My wires are much longer than 10 inches, so I ended up using two twist ties.

Similar to the previous step, we'll crochet a larger pocket the size of the Protoboard. The pattern for crocheting this larger square is nearly identical to the previous pattern, I just added in more chains and more rows of double crochets. It's in the PDF attached below, under Large Pocket. Afterwards, you'll sew that square with yarn right into the puppet's body. Again, feel free to adjust the pattern as you'd like to get the correct pocket size.

NOTE: While sewing the this larger pocket into the puppet's body, MAKE SURE to leave a hole near the bottom of the pocket, i.e. don't sew it completely to the puppet's body along the bottom of the pocket. We want to leave a little slot at the bottom of the pocket to allow for the USB to connect to the microcontroller that's placed on this Protoboard.

Now this larger Protoboard should fit snugly into the pocket, again make sure that the pocket is deep/snug enough to prevent the board from slipping out of it.

Flipping Puppet Outside In

20.jpg
21.jpg

Now to flip the puppet outside in (remember, it's currently flipped inside out!). I recommend taking out the circuitry and then flipping the puppet outside in (only the conductive fabric will stay in place because you sewed it earlier). If you're savvy enough, you can flip the puppet with the circuitry inside, but I certainly couldn't. After this, you'll have to feel your way and carefully reinsert your circuitry into the pockets you created.

Add Polyfill to Head, Arms, and Chest

22.jpg

Here comes the fun part: adding polyfill to your puppet! I suggest taking small amounts of polyfill and carefully stuffing the head of the puppet first. Be mindful of your circuitry and wires! You also don't need to fully stuff the puppet, just a decent amount to where the puppet holds some shape. You can move onto the arms after this, be sure to stuff the ends of the arms in particular. The last part is adding polyfill to the puppet's chest area near the RFID reader. This polyfill helps give the puppet some overall shape, but also helps keep your circuitry/wires in place too.

Trace Puppet Body Shape Onto Cotton Fabric

23.jpg
24.jpg

Moving on to the last major portion of making this puppet: creating the inner fabric lining of the puppet! This lining is necessary to prevent someone bumping into the embedded circuitry and hurting themselves or ruining the wiring. With cotton fabric (or any kind of non-static generating fabric), trace out and then cut two general shapes of your puppet. You'll be sewing these two fabric shapes together next.

Sewing Together the Fabric Pieces

25.jpg
26.jpg

Here comes another round of sewing, only this time with regular sewing thread and a regular (fabric) sewing needle. You'll be sewing together the two fabric pieces you just cut, with the "wrong" sides facing outward, like with the puppet's crocheted body. Using pins to hold the fabric pieces in place while you sew would help, but I just held them still with my other hand.

Using a sewing machine would definitely speed up the process, but if you're like me, you resorted to hand stitching, so your stitching won't be perfect (purr-fect). Don't worry too much about the stitching, because we'll be flipping the fabric inside out anyways afterwards. You're free to use a cream colored thread rather than the black thread though, if you'd prefer that.

Flip the Fabric Inside Out

27.jpg

Much like how we flipped the puppet's crocheted body inside out, the next step is flipping the fabric inside out. You can see in the picture, after sewing the fabric pieces together, how the fabric matches the crocheted body. The messy stitches are still visible, but again they don't matter since this fabric will serve as the inner lining of the puppet, so it won't be really visible.

Inserting the Lining Into the Puppet

28.jpg

Here comes the trickiest part with the lining: inserting it into the puppet. You'll want to be careful not to bump around the circuitry you've worked so hard to embed into your puppet! Additionally, you'll want to avoid shifting around the polyfill too much. The best way to go about this is to stick your hand into the lining and then carefully maneuver and push it around to the top of your puppet first.

You can get a feel for how far up you should go into your puppet by looking at the puppet's opening; the fabric should either be slightly peeking over at the edge of the puppet's opening, or it's hidden from sight but still pretty close to the puppet's opening on the inside. Next, you can carefully poke your fingers into the arms of the lining to shape it to the crocheted arms. A pen or pencil may help with this part!

Sewing the Lining Into the Puppet

29.jpg

Now moving onto sewing the lining into the puppet! This part is pretty straightforward, you can use the sewing needle and black sewing thread that you've been using to sew the lining right at the opening of the puppet. I gripped the puppet's body and the lining together with one hand and hand-sewn the lining to the puppet with the other hand. A sewing machine will work, but I think hand sewing this part isn't too time-consuming nor hard, and you would get a better feel of stitching across the puppet's opening.

Try to keep the lining from peeking out from the opening of the puppet, it is supposed to be "inner" lining, after all. But if you find that some of the lining is visible from the outside, you can carefully trim that part with scissors.

The nice thing about the lining for this puppet is that you only sew right at the puppet's opening. Technically the arms and the head of the puppet's lining are suspended inside of the puppet since the lining isn't sewn into the puppet anywhere else other than the opening, but the polyfill helps prevent the fabric from moving around so much inside of the puppet. Plus, sticking your hands into the puppet helps push the fabric around where it's supposed to be, so that's a bonus.

(optional) Additional Fabric at the Bottom

30.jpg

I decided to add an additional strip of fabric right at the puppet's opening using fabric glue. This little strip of fabric really only served the purpose of covering up my (messy) stitching of the lining to the puppet's body. Not necessary since the lining and stitching is on the inside of the puppet, but you can add this strip if you'd like. You can trim any additional fraying of fabric with scissors, as well.

Complete Arduino Code and Utilizing P5

5.jpg
end1.png
end2.png

A comprehensive Arduino program of both interactions can be found here. (This code differs from the earlier two Arduino codes). Additionally, a link to the P5 sketch can be found here. Make sure that you are running the p5.serialcontrol app before running the sketch on P5!

P5 serves to output audio for these interactions with Kuro. Petting the puppet will set off both the vibration motor and the purring audio in the P5 sketch. Using Kuro to hug the toys (or, at least, tapping the toys to Kuro's chest) will set off the respective mouse, bird, and fish audios.

I downloaded audio samples off of YouTube and used this URL to WAV converter to get .wav files to work with in P5. This handy .wav editor was great for editing my audios.

NOTE: I have both in the Arduino code and the P5 sketch that the vibration motor (in Arduino program) and the purring audio (in the P5 sketch) will be set off if the number detected from the conductive fabric is greater than 800. Whatever number you use is a matter of preference, I just want to remind you that if you do change this number you will have to change it both in the Arduino code and in the P5 sketch for consistency's sake.

If you need any help working with sound in P5, this is a great resource.

That's all for this project, I hope you enjoy making your own hand puppets! Kuro would love some friends. :)