Hug-Me

Introduction: Hug-Me

This project is designed to address the disappearances of physical contact and warmth between relatives who live apart. The strap form device uses vibration motors to provide haptic feedback every time the other side is making a hugging gesture and creating a squeeze effect that is mimicking a hug.

Supplies

* Microcontroller (Lilypad USB) -https://www.sparkfun.com/products/12049

* Vibration Motors X 4 - https://www.amazon.com/tatoko-12000RPM-Wired-Phone...

* Resistor 220 Ohm- https://www.amazon.com/Projects-100EP512220R-220-R...

* Conductive Thread - https://www.amazon.com/Mayata-Conductive-Stainless...

* Needels

* Fabric

* Electric tape (for isolation)

For the fabric sensor:

* Felt

* Velostat- https://www.adafruit.com/product/1361

* Conductive Cloth Fabric Adhesive Tape- https://www.amazon.com/BCP-Conductive-Adhesive-Shi...

Step 1: Making a Soft Pressure Sensor

Materials:

*Velostat (https://www.adafruit.com/product/1361)

*Felt

*Conductive Cloth Fabric Adhesive Tape ( https://www.amazon.com/Conductive-Fabric-Adhesive-... )

*Non-conductive sewing thread

*needle

Velostat is a piezoresistive material, meaning it’s electrical resistance decreases when pressured. When sandwiched between two conductive layers, it can act as a pressure/flex sensor.

Step 2: The Circuit

Step 3: The Code

//const int pushButton = 2;
const int vibeBoard = 10;
const int vibeBoarda = A4;
const int inputPin = A3;

const int numReadings = 10;

int readings[numReadings];
int readIndex = 0;
int total = 0;
int average = 0;

void setup() {

//pinMode(pushButton, INPUT_PULLUP);
pinMode(vibeBoard, OUTPUT);
pinMode(vibeBoarda, OUTPUT);
pinMode (inputPin, INPUT);

Serial.begin(9600);

// initialize all the readings to 0:

for (int thisReading = 0; thisReading < numReadings; thisReading++) {
readings[thisReading] = 0;

}

}

void loop() {

// int buttonState = digitalRead(pushButton);

// subtract the last reading:

total = total - readings[readIndex];
// read from the sensor:
readings[readIndex] = analogRead(inputPin);
// add the reading to the total:
total = total + readings[readIndex];
// advance to the next position in the array:
readIndex = readIndex + 1;

if (readIndex >= numReadings) {
readIndex = 0;
}

average = total / numReadings;
Serial.println(average);

if (average > 400) {
digitalWrite(vibeBoard, HIGH);
digitalWrite(vibeBoarda, HIGH);

delay(1); // delay in between reads for stability

} else {
digitalWrite(vibeBoard, LOW);
digitalWrite(vibeBoarda, LOW);

}

}

Step 4: Testing the Circuit and Code

Step 5: Strap Assembly

Step 6: Demo

Be the First to Share

    Recommendations

    • Back to School: Student Design Challenge

      Back to School: Student Design Challenge
    • First Time Author Contest

      First Time Author Contest
    • Tinkercad Student Design Contest

      Tinkercad Student Design Contest

    Comments