Talking Fabrics: Touch Project (Phyllis)

Title: Sleepy Rabbit

Target: 3-5-year-old Children

Description: This touch project is designed to simulate the process of a mom taking care of a baby (especially calming children down before going to bed). I hope that by playing around with this sleepy rabbit, children may learn to take care of others just as how mom is taking care of them every day.

Documented by: Phyllis

Documented on: May 15th, 2018

Material: RFID*2, RFID Reader*2, Arduino*2, wires, Toy Rabbit, thread, insulating tape, Bluetooth speaker

Demo

Process

Basically, my design of this project is to have the toy first “cry” and then sweetly “fall asleep.” It’s quite common for babies to cry when they want to go to bed. Crying babies need more care, and moms often wipe out their tears. Therefore, I wanted to have an interaction of children wiping tears for their toys as if they are comforting them. When children putting sheets on the toy, it falls asleep, just as how moms calming their babies down at night. After talking with Antonius about my idea, I was suggested using RFID to achieve my goals in this project.

Stage 1: Circuit Building and Testing

I searched for an example code of the RFID and tried to make 2 RFID work at the same time on one Arduino. I spent so much time figuring it out but failed… Below is the code that I tried to work with on basis of the example code that I found on the RFID documentation.

After asking Antonius about it, we tried to figure it out together but failed again… The Arduino was just printing wired numbers/letters that were received from the RFID, which we did not understand at all… and only one of them was working at one time. After trying several times again, Antonius suggested having each RFID work on different Arduinos… Therefore, I broke the circuit into two, and got back to using the original Aruidno code from the RFID documentation.

After directly testing with the sample code, I tried to build serial communication between Arduino and Processing. However, I realized that the way that RFID works is actually really different from what I thought it should be. It turned out that I couldn’t successfully translate what RFID received to processing (I asked Nick for help and we were stuck here for more than a whole day)…

Fortunately, Luis helped me find a processing example code on GitHub for building serial communication with RFID. As is shown in the testing video below, it worked!!! Then I added sound files that I found on freesound (crying sound, snoring sound) in processing.

After making sure that my code was working fine, I tried to make the whole circuit more solid. I used the insulating tape to stabilize the RFID and twined the Arduino with some thread.

    

Stage 2: Moving the Circuit into the Toy

Since I wanted to hide the circuit inside the toy rabbit, I made a huge “hole” on both the back and the head of the toy and took out 40% of the foam.

 

Then I hid the circuits inside the toy. I placed one RFID from the back and one from the head (the USB of the Arduino comes all the way through the toy’s tummy) so that when the toy is facing children, children may interact with it at its right eye and its tummy. I had to be really careful because the space was so limited and I was also afraid of taking my circuit apart.

 

I succeeded finally!! The two USB wires all come out from the back of the toy, which could be hidden by covering the rabbit’s shirt.

Below is a rough testing video after I finished 90% of the final fabrication.

Stage 3: Final Decoration

In order to make the whole project more connected, I sewed one smaller RFID reader in a piece of white fabric so that it seems to be like a napkin.

Then I sewed another card-shape RFID reader into another piece of fabric to make it look more like a sheet. The left photo is actually how the “sheet” looks like in the front, and the right photo is how it looks in the back.

In terms of the way of sewing… I actually sewed a pocket for the RFID reader card. The photo below shows how the pocket looks like on the side (but honestly, it’s not quite intuitive though).

I also sewed the head and the back after placing the circuits inside of the toy (as you may see in the photo below).

This is how my sleepy rabbit looks like after all the fabrication and decoration.

Reflection

I feel that sound choice is really important meanwhile hard to make a good one. Although I spent plenty of time searching for the most appropriate crying audio, I still feel that the crying sound is kind of too creepy for children to play with (I guess…). The current crying audio in this project is actually a cartoonish one, which I consider the best in comparison to the rest… However, if the sound file is not good enough, it might change the whole initial concept of my project.

import processing.serial.*;
import processing.sound.*;

Serial myPort;
String inBuffer = " ";

SoundFile soundfile1; 
SoundFile soundfile2; 

void setup() {
  size(512, 512);
  frameRate(10);
  println(Serial.list());

  //myPort = new Serial(this, Serial.list()[3], 9600);
  myPort = new Serial(this, Serial.list()[4], 9600);

  soundfile1 = new SoundFile(this, "cry_cartoon.wav");
  soundfile2 = new SoundFile(this, "snoring_baby.wav");
  
  //crying
  soundfile1.play();
}

void draw() {
  if (inBuffer != " ") {
    drawTag(inBuffer);
  }
}

void serialEvent(Serial myPort) {
  while (myPort.available() > 13) {
    inBuffer = myPort.readString();   
    inBuffer = inBuffer.trim();
    if (inBuffer != null) {
      println(inBuffer);
    }
  }
}

void drawTag(String tagVal) {
  background(0);

  if (tagVal.equals("18002700C9F6")) {
    fill(255, 0, 0);
    ellipse(width/2, height/2, 100, 100);
    // stop crying with the blue snap
    soundfile1.stop();
    soundfile2.stop();
  }
  
  if (tagVal.equals("0300B4A34155")) {
    fill(255, 255, 0);
    ellipse(width/2, height/2, 100, 100);
    // start snoring
    soundfile2.play();
  }
  inBuffer = " ";
}

Leave a Reply