A Comfort Toy

Oct.07.19



Team members : Hyelim Lim, Frank Gong 


My team made a stuffed animal which can calculate patients’ pain and alert the dentist during the procedure by using Arduino, a pressure sensor, and Processing.

Going to the dentist is one of the most horrible things that people have to do. People cannot express how painful it is because they have to keep their mouths open. Most doctors suggest that patients raise one arm when they feel pain. However, raising an arm cannot express how much pain they are in. At this point, patients may be scared that the doctor will continue the procedure, ignoring their pain.

In S.Korea and China, there is an interesting way to relieve patients’ pain. A dentist allows people to hug a stuffed animal especially when having a wisdom tooth pulled out. This lets people relax more than holding nothing. I think the toy could be a touchpoint to create an interaction between a dentist and a patient.


I attached a pressure sensor inside the back of the toy. People can hug and press it based on how much pain they feel. Depending on the amount of pressure, six types of facial expressions will appear on the screen. Six graphics are inspired by the universal symptom assessment tool. The tool is intended to help patients describe their symptoms’ intensity.


If pressure reaches a severe level, the buzzer alerts the dentist that the patients are suffering from severe pain.



import processing.serial.*;
Serial myPort;
PImage img0;
PImage img1;
PImage img2;
PImage img3;
PImage img4;
PImage img5;
float bb;void setup()
{
fullScreen();
background(0,0,0);
img0 = loadImage(“smile0.png”);
img1 = loadImage(“smile1.png”);
img2 = loadImage(“smile2.png”);
img3 = loadImage(“smile3.png”);
img4 = loadImage(“smile4.png”);
img5 = loadImage(“smile5.png”);
myPort = new Serial(this, “/dev/cu.usbserial-1450”, 9600);
myPort.bufferUntil( ‘n’);
}void serialEvent (Serial myPort) {
bb = float(myPort.readStringUntil( ‘n’));
}void draw()
{
println(bb);
if (bb >= 834) {
imageMode(CENTER);
image(img5,displayWidth/2,displayHeight/2,1020,1020);
} else if (bb >= 668 && bb < 834){
imageMode(CENTER);
image(img4,displayWidth/2,displayHeight/2,1020,1020);
} else if (bb >= 502 && bb < 668){
imageMode(CENTER);
image(img3,displayWidth/2,displayHeight/2,1020,1020);
} else if (bb >= 336 && bb < 502){
imageMode(CENTER);
image(img2,displayWidth/2,displayHeight/2,1020,1020);
} else if (bb >= 170 && bb < 336){
imageMode(CENTER);
image(img1,displayWidth/2,displayHeight/2,1020,1020);
} else{
imageMode(CENTER);
image(img0,displayWidth/2,displayHeight/2,1020,1020);
}
}
int speakerPin = 10;
const int fsrPin = A0;
int fsrReading;
void setup(void) {
Serial.begin(9600);
pinMode(speakerPin, OUTPUT);
}
void loop(void) {
fsrReading = analogRead(fsrPin);
Serial.println(fsrReading);
delay(10); if (fsrReading >=834) {
long frequency = 300;
tone(speakerPin, frequency );
//delay(200);
noTone(speakerPin);
//delay(100);
}}