AED Bracelet

by Glesias in Circuits > Arduino

39 Views, 1 Favorites, 0 Comments

AED Bracelet

AED.jpg
haptic_result.jpg

An automatic external defibrillator (AED) is a device, often publicly accessible, used to treat life-threatening heart arrhythmias. Quick delivery of an electric shock greatly improves survival chances. AEDs typically use auditory cues to guide rescuers, but this can be ineffective for deaf individuals or in noisy environments.

To address this, some AEDs now include visual displays, which help but require the rescuer to divide their attention between the device and the patient.

We made a bracelet with haptic feedback to provide additional guidance when using AED in noisy environments. The bracelet would indicate when not to touch the patient (constant buzzing), when to perform chest compressions (rhythmic pulses at 100 BPM), and when to give rescue breaths (3-second increasing noise signals).

Supplies

hapticsmaterials.jpg
  • Arduino Micro (Arduino, Turin, Italy)  
  • 2 DRV 2605L controller (Adafruit, New York City, NY, USA)  
  • TCA9548A I2C multiplexer (Adafruit, New York City, NY, USA) 
  • 2 Drake LMR vibrotactile haptic motor (TITAN Haptics Inc., Mississauga, ON, Canada)  
  • Breadboard and wiring

Wiring

ProjectSketch_bb.jpg

This scheme connects the Arduino Micro to the I2C Multiplexer. This multiplexer then connects to 2 motor drives so you can control them both with one Arduino. Not on this scheme, the 2 haptic motors, which are connected below the drives.

Coding

Now the physical connections are made but at this point, the motors will not do anything yet. I added the entire file below for your convenience but in this step I will explain what is in there using code snippets.

SET UP

A lot of code should not be edit, such as "byte TCA = 0x70;",this is the I2C address for the TCA9548A I2C multiplexer, which allows you to control multiple I2C devices with the same address.

"int ports[2] = {1,2}; ", this should only be edited when adding more motors


The for loop below, initializes all the motors, so when uploading your code to the Arduino Micro, they should all vibrate for a short amount of time, if they are properly connected.

for (int i = 0; i < sizeof(ports)/sizeof(int); i++) 

  { 

    TCA9548A(ports[i]); 

    initializeDRV2605(); 

    delay(10); 

    pulse(0.1, 10); 

  } 


In the main loop of the Arduino script:

void loop() {

  // put your main code here, to run repeatedly:

  while (true) - Use while(true) to keep running infinitely.

    {

    TCA9548A(1); - Now motor 1 will perform the action, change this number to change the motor

    initializeDRV2605();

    delay(10);

    pumping(100); - This is one of the functions we wrote especially for this type of motor

    delay(1000); - Add enough delay so the person performing the heart massage is able to react


One of the costum functions we wrote:

void pumping(double BPM) - We want 30 pumps at 100 BPM

{

  double pulse_duration = 60.0 / BPM * 1000; - BPM to ms

  // 100 BPM

  for (int i = 0; i < 30; i++) - 30 Pumps

  {

    pulse(0.9, pulse_duration); - Giving the pulse at a certain intensity (also a costum function, see file below)

  }

}

Bracelet

haptcibraclest.jpg

The standard motor bought is not suitable for our intended use yet. We extend the cable connected to the motor and use a wrist band to hold the motor in place. Now when it starts working, it will give haptic feedback.

Video

Haptics Project 31/05/24

This is what our prototype looks like, the wiring will all be hidden inside an AED and only the bracelet with cable will be used for ease of use