The Escape Belt

The Escape Belt is a wearable device that allows you to create opportunities for leaving undesirable situations.

Worn around your waist and hidden under your clothes, pressing the Escape Belt’s button triggers a sound to play from the receiver terminal, which you can place anywhere you like. Is there a long-winded salesperson at your door? Activate the Escape Belt and you’ll hear a blood-curdling scream coming from your living room, giving you an excuse to quickly close the door in their face. Do you have boring dinner guests? Press the button and suddenly the smoke alarm is going off in the kitchen; you’d better go take care of it! The Escape Belt is the ultimate escape plan.

The goal of this project was to transform a provided circuit into a wearable form. The provided technology was a pair of Nudgeables; activating the sensor on one device triggers the actuator on the other. The “wearability” of the device was to be based on the criteria outlined in Gemperle et al.’s 1998 paper “Design for wearability.”

I began brainstorming ideas, focusing less on how two people could communicate within a room and more on how one person might make use of a small, short-range wireless device. I eventually decided to create a wearable object that would allow the user to discretely trigger a sound to play from the receiver device.

I started by assembling and programming the receiver. I made use of an Arduino Uno, a small speaker, and a VS1053 breakout board that I had been experimenting with in another project. If the Nudgeable unit is triggered, the first MP3 track on the breakout board’s microSD card is played once.

Next, I designed the wearable part of the project. By considering the points outlined in “Design for wearability,” I was able to make decisions about how to craft the object:

  1. Placement: I chose to put the device around the user’s hip. A belt is something that most people are familiar with and comfortable wearing. Here, the user can also easily hide the device by wearing it under their shirt, and the button can be discretely pushed from a natural-looking position.
  2. Form: The belt holds the device close to the user’s body. Since the belt is adjustable, the user can move the device to wherever it is least noticeable.
  3. Movement: The waist is an area of relatively low movement and flexion. The device is not put under much stress here.
  4. Human perception of space: The Nudgeable device and its battery are around 2 cm high when stacked – well within the “aura” of personal space. Plus, placing it at the user’s back ensures that it will be almost unnoticeable to the user.
  5. Size variation: The belt is adjustable, so the device can handle almost all waistlines.
  6. Comfortable attachment: Strapping the device to the user is more reliable than a single-point connection.

I obtained a simple belt and began sketching plans for the pouch that would hold the electronics.

Next, I stitched the pouch together (and, surprisingly, didn’t make any major mistakes). I chose cotton for the material because it is comfortable to wear and easy to work with.

Finally, I attached the button to the belt, connected the electronics pouch, and tested the system. Luckily, everything worked as expected.

Receiver code:

/*

 Escape Belt
 
 Description: When nudger on unit A is pressed, unit B responds
 by playing an mp3 track once.
 
 Ryan Maksymic
 
 September 12, 2013
 
 Arduino Wiring:
 * D3 = DREQ
 * D4 = SDCS
 * D5 = notifier input
 * D8 = XDCS
 * D9 = RST
 * D10 = CS
 * D11 = MOSI
 * D12 = MISO
 * D13 = SCLK
 
 VS1053 Wiring:
 * VCC = 5V
 * GND = GND
 * AGND = speaker GND
 * LOUT = speaker in
 
 References:
 * http://learn.adafruit.com/adafruit-vs1053-mp3-aac-ogg-midi-wav-play-and-record-codec-tutorial/overview
 
 */

#include <SPI.h>
#include <Adafruit_VS1053.h>
#include <SD.h>

int dreq = 3;    // VS1053 data request pin (into Arduino)
int cardcs = 4;    // card chip select pin
int notifier = 5;    // notifier input
int dcs = 8;    // VS1053 data/command select pin (output)
int reset = 9;    // VS1053 reset pin (output)
int cs = 10;    // VS1053 chip select pin (output)

Adafruit_VS1053_FilePlayer musicPlayer = Adafruit_VS1053_FilePlayer(reset, cs, dcs, dreq, cardcs);    // create musicPlayer object

void setup()
{
  Serial.begin(9600);

  // initialise the music player:
  if(!musicPlayer.begin())
  {
    Serial.println("VS1053 not found");
    while(1);    // don't do anything more
  }

  // check SD card:
  if(!SD.begin(cardcs))
  {
    Serial.println("SD failed, or not present");
    while(1);  // don't do anything more
  }
  Serial.println("SD OK!");

  musicPlayer.setVolume(1, 1);    // set volume for left, right channels; lower numbers => louder volume

  // check interrupt pin:
  if(! musicPlayer.useInterrupt(VS1053_FILEPLAYER_PIN_INT))
  {
    Serial.println("DREQ pin is not an interrupt pin");
  }

  pinMode(notifier, INPUT);    // notifier input
}

void loop()
{
  if(digitalRead(notifier) == HIGH)    // if notifier is activated
  {
    Serial.println("Notifier activated");

    // start playing mp3 file:
    if(! musicPlayer.startPlayingFile("track001.mp3"))
    {
      Serial.print("Could not open file");
      return;
    }

    Serial.print("Track playing");

    delay(10000);    // wait 10 seconds
  }
}

Comments are closed.